From 45eec9058dbffcc71d2baa640854937830fffe2b Mon Sep 17 00:00:00 2001 From: Golo Roden Date: Sat, 23 Nov 2024 14:04:30 +0100 Subject: [PATCH] Add build. --- .gitignore | 1 - build/lib/Documentation.d.ts | 3 + build/lib/Documentation.js | 130 + build/lib/NextApp.d.ts | 8 + build/lib/NextApp.js | 20 + build/lib/NextDocument.d.ts | 6 + build/lib/NextDocument.js | 35 + build/lib/bin/getHandlers.d.ts | 3 + build/lib/bin/getHandlers.js | 27 + build/lib/bin/ux.d.ts | 2 + build/lib/bin/ux.js | 23 + build/lib/cli/RootOptions.d.ts | 3 + build/lib/cli/RootOptions.js | 2 + build/lib/cli/noop.d.ts | 2 + build/lib/cli/noop.js | 7 + .../optimizeImages/OptimizeImagesOptions.d.ts | 5 + .../optimizeImages/OptimizeImagesOptions.js | 2 + .../cli/optimizeImages/optimizeImages.d.ts | 6 + .../lib/cli/optimizeImages/optimizeImages.js | 45 + .../optimizeImages/optimizeImagesCommand.d.ts | 4 + .../optimizeImages/optimizeImagesCommand.js | 41 + build/lib/cli/optimizeImages/optimizeJpg.d.ts | 6 + build/lib/cli/optimizeImages/optimizeJpg.js | 20 + build/lib/cli/optimizeImages/optimizePng.d.ts | 6 + build/lib/cli/optimizeImages/optimizePng.js | 20 + build/lib/cli/optimizeImages/optimizeSvg.d.ts | 6 + build/lib/cli/optimizeImages/optimizeSvg.js | 19 + build/lib/cli/rootCommand.d.ts | 4 + build/lib/cli/rootCommand.js | 30 + build/lib/cli/verifyLinks/BrokenUrl.d.ts | 4 + build/lib/cli/verifyLinks/BrokenUrl.js | 2 + .../cli/verifyLinks/VerifyLinksOptions.d.ts | 6 + .../lib/cli/verifyLinks/VerifyLinksOptions.js | 2 + .../lib/cli/verifyLinks/getAbsolutePath.d.ts | 5 + build/lib/cli/verifyLinks/getAbsolutePath.js | 18 + build/lib/cli/verifyLinks/getBrokenUrls.d.ts | 14 + build/lib/cli/verifyLinks/getBrokenUrls.js | 55 + .../verifyLinks/getExternalUrlsFromPage.d.ts | 6 + .../verifyLinks/getExternalUrlsFromPage.js | 35 + build/lib/cli/verifyLinks/getPage.d.ts | 8 + build/lib/cli/verifyLinks/getPage.js | 36 + .../cli/verifyLinks/getUrlsFromSitemap.d.ts | 15 + .../lib/cli/verifyLinks/getUrlsFromSitemap.js | 73 + .../cli/verifyLinks/verifyLinksCommand.d.ts | 4 + .../lib/cli/verifyLinks/verifyLinksCommand.js | 85 + build/lib/components/Background.d.ts | 1 + build/lib/components/Background.js | 2 + .../animation/Transition/Documentation.d.ts | 3 + .../animation/Transition/Documentation.js | 81 + .../animation/Transition/TransitionType.d.ts | 1 + .../animation/Transition/TransitionType.js | 2 + .../animation/Transition/index.d.ts | 8 + .../components/animation/Transition/index.js | 14 + .../animation/Transition/types/Fade.d.ts | 4 + .../animation/Transition/types/Fade.js | 28 + .../Transition/types/FadeInLeft.d.ts | 4 + .../animation/Transition/types/FadeInLeft.js | 30 + .../Transition/types/FadeInRight.d.ts | 4 + .../animation/Transition/types/FadeInRight.js | 30 + .../animation/Transition/types/Grow.d.ts | 4 + .../animation/Transition/types/Grow.js | 30 + .../Transition/types/TransitionProps.d.ts | 4 + .../Transition/types/TransitionProps.js | 2 + .../animation/Transition/types/Zoom.d.ts | 4 + .../animation/Transition/types/Zoom.js | 32 + .../animation/Transition/types/defaults.d.ts | 5 + .../animation/Transition/types/defaults.js | 8 + .../animation/Transition/types/index.d.ts | 8 + .../animation/Transition/types/index.js | 16 + .../TransitionGroup/Documentation.d.ts | 3 + .../TransitionGroup/Documentation.js | 70 + .../animation/TransitionGroup/index.d.ts | 7 + .../animation/TransitionGroup/index.js | 15 + .../branding/Brand/Documentation.d.ts | 3 + .../branding/Brand/Documentation.js | 99 + .../lib/components/branding/Brand/index.d.ts | 9 + build/lib/components/branding/Brand/index.js | 19 + .../lib/components/branding/Brand/styles.d.ts | 4 + build/lib/components/branding/Brand/styles.js | 14 + .../branding/MadeBy/Documentation.d.ts | 3 + .../branding/MadeBy/Documentation.js | 41 + .../lib/components/branding/MadeBy/index.d.ts | 12 + build/lib/components/branding/MadeBy/index.js | 34 + .../components/branding/MadeBy/styles.d.ts | 4 + .../lib/components/branding/MadeBy/styles.js | 26 + .../branding/Pattern/Documentation.d.ts | 3 + .../branding/Pattern/Documentation.js | 19 + .../components/branding/Pattern/index.d.ts | 6 + .../lib/components/branding/Pattern/index.js | 17 + .../components/branding/Pattern/styles.d.ts | 4 + .../lib/components/branding/Pattern/styles.js | 16 + .../branding/PoweredBy/Documentation.d.ts | 3 + .../branding/PoweredBy/Documentation.js | 19 + .../components/branding/PoweredBy/index.d.ts | 7 + .../components/branding/PoweredBy/index.js | 19 + .../components/branding/PoweredBy/styles.d.ts | 4 + .../components/branding/PoweredBy/styles.js | 23 + .../branding/Product/Documentation.d.ts | 3 + .../branding/Product/Documentation.js | 43 + .../components/branding/Product/index.d.ts | 9 + .../lib/components/branding/Product/index.js | 38 + .../components/branding/Product/styles.d.ts | 4 + .../lib/components/branding/Product/styles.js | 75 + .../documentation/Code/Documentation.d.ts | 3 + .../documentation/Code/Documentation.js | 85 + .../documentation/Code/getPrismStyles.d.ts | 3 + .../documentation/Code/getPrismStyles.js | 121 + .../components/documentation/Code/index.d.ts | 11 + .../components/documentation/Code/index.js | 80 + .../components/documentation/Code/styles.d.ts | 4 + .../components/documentation/Code/styles.js | 34 + .../documentation/ComponentPreview/index.d.ts | 10 + .../documentation/ComponentPreview/index.js | 31 + .../ComponentPreview/styles.d.ts | 4 + .../documentation/ComponentPreview/styles.js | 17 + .../documentation/Property/index.d.ts | 8 + .../documentation/Property/index.js | 20 + .../documentation/SplitView/index.d.ts | 8 + .../documentation/SplitView/index.js | 59 + .../documentation/SplitView/styles.d.ts | 4 + .../documentation/SplitView/styles.js | 113 + .../documentation/formatAsPrettyString.d.ts | 2 + .../documentation/formatAsPrettyString.js | 48 + .../feedback/BusyIndicator/Documentation.d.ts | 3 + .../feedback/BusyIndicator/Documentation.js | 19 + .../feedback/BusyIndicator/index.d.ts | 7 + .../feedback/BusyIndicator/index.js | 22 + .../feedback/BusyIndicator/styles.d.ts | 4 + .../feedback/BusyIndicator/styles.js | 42 + .../components/feedback/Dialogs/index.d.ts | 9 + .../lib/components/feedback/Dialogs/index.js | 81 + .../components/feedback/Dialogs/styles.d.ts | 3 + .../lib/components/feedback/Dialogs/styles.js | 16 + .../feedback/HighlightText/Documentation.d.ts | 3 + .../feedback/HighlightText/Documentation.js | 18 + .../feedback/HighlightText/index.d.ts | 8 + .../feedback/HighlightText/index.js | 62 + .../feedback/HighlightText/styles.d.ts | 4 + .../feedback/HighlightText/styles.js | 19 + .../feedback/Message/Documentation.d.ts | 3 + .../feedback/Message/Documentation.js | 50 + .../components/feedback/Message/index.d.ts | 8 + .../lib/components/feedback/Message/index.js | 34 + .../components/feedback/Message/styles.d.ts | 4 + .../lib/components/feedback/Message/styles.js | 39 + .../feedback/Modal/Documentation.d.ts | 3 + .../feedback/Modal/Documentation.js | 104 + .../lib/components/feedback/Modal/index.d.ts | 15 + build/lib/components/feedback/Modal/index.js | 126 + .../lib/components/feedback/Modal/styles.d.ts | 4 + build/lib/components/feedback/Modal/styles.js | 152 + .../components/feedback/ModalRow/index.d.ts | 3 + .../lib/components/feedback/ModalRow/index.js | 16 + .../components/feedback/ModalRow/styles.d.ts | 4 + .../components/feedback/ModalRow/styles.js | 10 + .../feedback/NonIdealState/Documentation.d.ts | 3 + .../feedback/NonIdealState/Documentation.js | 20 + .../feedback/NonIdealState/index.d.ts | 8 + .../feedback/NonIdealState/index.js | 20 + .../feedback/NonIdealState/styles.d.ts | 4 + .../feedback/NonIdealState/styles.js | 39 + .../Notifications/Notification/index.d.ts | 8 + .../Notifications/Notification/index.js | 19 + .../Notifications/Notification/styles.d.ts | 4 + .../Notifications/Notification/styles.js | 21 + .../feedback/Notifications/index.d.ts | 9 + .../feedback/Notifications/index.js | 68 + .../feedback/Notifications/styles.d.ts | 4 + .../feedback/Notifications/styles.js | 14 + .../feedback/Tags/Documentation.d.ts | 3 + .../components/feedback/Tags/Documentation.js | 25 + build/lib/components/feedback/Tags/index.d.ts | 8 + build/lib/components/feedback/Tags/index.js | 52 + .../lib/components/feedback/Tags/styles.d.ts | 4 + build/lib/components/feedback/Tags/styles.js | 18 + .../forms/ControlGroup/Documentation.d.ts | 3 + .../forms/ControlGroup/Documentation.js | 99 + .../components/forms/ControlGroup/index.d.ts | 7 + .../components/forms/ControlGroup/index.js | 20 + .../components/forms/ControlGroup/styles.d.ts | 4 + .../components/forms/ControlGroup/styles.js | 10 + .../forms/ControlGroupDivider/index.d.ts | 3 + .../forms/ControlGroupDivider/index.js | 16 + .../forms/ControlGroupDivider/styles.d.ts | 4 + .../forms/ControlGroupDivider/styles.js | 18 + .../forms/ControlGroupItem/index.d.ts | 10 + .../forms/ControlGroupItem/index.js | 47 + .../forms/ControlGroupItem/styles.d.ts | 4 + .../forms/ControlGroupItem/styles.js | 56 + .../components/forms/Form/Documentation.d.ts | 3 + .../components/forms/Form/Documentation.js | 97 + build/lib/components/forms/Form/index.d.ts | 7 + build/lib/components/forms/Form/index.js | 19 + build/lib/components/forms/Form/styles.d.ts | 4 + build/lib/components/forms/Form/styles.js | 9 + .../components/forms/FormActions/index.d.ts | 7 + .../lib/components/forms/FormActions/index.js | 20 + .../components/forms/FormActions/styles.d.ts | 4 + .../components/forms/FormActions/styles.js | 24 + build/lib/components/forms/FormRow/index.d.ts | 3 + build/lib/components/forms/FormRow/index.js | 16 + .../lib/components/forms/FormRow/styles.d.ts | 4 + build/lib/components/forms/FormRow/styles.js | 10 + .../graphics/Icon/Documentation.d.ts | 3 + .../components/graphics/Icon/Documentation.js | 160 + build/lib/components/graphics/Icon/index.d.ts | 12 + build/lib/components/graphics/Icon/index.js | 31 + .../lib/components/graphics/Icon/styles.d.ts | 4 + build/lib/components/graphics/Icon/styles.js | 59 + .../lib/components/graphics/Icons/index.d.ts | 3 + build/lib/components/graphics/Icons/index.js | 78 + .../graphics/LogoFull/Documentation.d.ts | 3 + .../graphics/LogoFull/Documentation.js | 26 + .../components/graphics/LogoFull/index.d.ts | 6 + .../lib/components/graphics/LogoFull/index.js | 38 + .../components/graphics/LogoFull/styles.d.ts | 4 + .../components/graphics/LogoFull/styles.js | 33 + .../graphics/LogoMinimal/Documentation.d.ts | 3 + .../graphics/LogoMinimal/Documentation.js | 26 + .../graphics/LogoMinimal/index.d.ts | 8 + .../components/graphics/LogoMinimal/index.js | 29 + .../graphics/LogoMinimal/styles.d.ts | 4 + .../components/graphics/LogoMinimal/styles.js | 52 + build/lib/components/graphics/LogoProps.d.ts | 5 + build/lib/components/graphics/LogoProps.js | 2 + .../LogoTheNativeWeb/Documentation.d.ts | 3 + .../LogoTheNativeWeb/Documentation.js | 26 + .../graphics/LogoTheNativeWeb/index.d.ts | 4 + .../graphics/LogoTheNativeWeb/index.js | 31 + .../graphics/LogoTheNativeWeb/styles.d.ts | 4 + .../graphics/LogoTheNativeWeb/styles.js | 29 + .../graphics/LogoWolkenkit/Documentation.d.ts | 3 + .../graphics/LogoWolkenkit/Documentation.js | 30 + .../graphics/LogoWolkenkit/index.d.ts | 4 + .../graphics/LogoWolkenkit/index.js | 42 + .../graphics/LogoWolkenkit/styles.d.ts | 4 + .../graphics/LogoWolkenkit/styles.js | 58 + .../input/Button/Documentation.d.ts | 3 + .../components/input/Button/Documentation.js | 57 + build/lib/components/input/Button/index.d.ts | 19 + build/lib/components/input/Button/index.js | 35 + build/lib/components/input/Button/styles.d.ts | 5 + build/lib/components/input/Button/styles.js | 148 + .../components/input/ButtonHint/index.d.ts | 3 + .../lib/components/input/ButtonHint/index.js | 16 + .../components/input/ButtonHint/styles.d.ts | 4 + .../lib/components/input/ButtonHint/styles.js | 11 + .../input/CheckBox/Documentation.d.ts | 3 + .../input/CheckBox/Documentation.js | 51 + .../lib/components/input/CheckBox/index.d.ts | 11 + build/lib/components/input/CheckBox/index.js | 16 + .../lib/components/input/CheckBox/styles.d.ts | 4 + build/lib/components/input/CheckBox/styles.js | 9 + .../input/Dropdown/Documentation.d.ts | 3 + .../input/Dropdown/Documentation.js | 59 + .../lib/components/input/Dropdown/index.d.ts | 18 + build/lib/components/input/Dropdown/index.js | 63 + .../lib/components/input/Dropdown/styles.d.ts | 4 + build/lib/components/input/Dropdown/styles.js | 79 + .../components/input/Link/Documentation.d.ts | 3 + .../components/input/Link/Documentation.js | 37 + build/lib/components/input/Link/index.d.ts | 12 + build/lib/components/input/Link/index.js | 45 + build/lib/components/input/Link/styles.d.ts | 4 + build/lib/components/input/Link/styles.js | 14 + .../input/TextArea/Documentation.d.ts | 3 + .../input/TextArea/Documentation.js | 70 + .../lib/components/input/TextArea/index.d.ts | 22 + build/lib/components/input/TextArea/index.js | 29 + .../lib/components/input/TextArea/styles.d.ts | 4 + build/lib/components/input/TextArea/styles.js | 39 + .../input/TextBox/Documentation.d.ts | 3 + .../components/input/TextBox/Documentation.js | 77 + build/lib/components/input/TextBox/index.d.ts | 22 + build/lib/components/input/TextBox/index.js | 80 + .../lib/components/input/TextBox/styles.d.ts | 4 + build/lib/components/input/TextBox/styles.js | 43 + .../input/Toggle/Documentation.d.ts | 3 + .../components/input/Toggle/Documentation.js | 106 + build/lib/components/input/Toggle/index.d.ts | 13 + build/lib/components/input/Toggle/index.js | 58 + .../input/Toggle/renderDefaultToggle.d.ts | 10 + .../input/Toggle/renderDefaultToggle.js | 10 + build/lib/components/input/Toggle/styles.d.ts | 4 + build/lib/components/input/Toggle/styles.js | 32 + .../layout/Container/Documentation.d.ts | 3 + .../layout/Container/Documentation.js | 100 + .../components/layout/Container/index.d.ts | 14 + .../lib/components/layout/Container/index.js | 31 + .../components/layout/Container/styles.d.ts | 4 + .../lib/components/layout/Container/styles.js | 85 + .../layout/Footer/Documentation.d.ts | 3 + .../components/layout/Footer/Documentation.js | 95 + build/lib/components/layout/Footer/index.d.ts | 15 + build/lib/components/layout/Footer/index.js | 54 + .../lib/components/layout/Footer/styles.d.ts | 4 + build/lib/components/layout/Footer/styles.js | 54 + .../components/layout/Grid/Documentation.d.ts | 3 + .../components/layout/Grid/Documentation.js | 131 + build/lib/components/layout/Grid/index.d.ts | 12 + build/lib/components/layout/Grid/index.js | 28 + .../layout/Grid/spaceDependentProperties.d.ts | 3 + .../layout/Grid/spaceDependentProperties.js | 25 + build/lib/components/layout/Grid/styles.d.ts | 4 + build/lib/components/layout/Grid/styles.js | 55 + .../lib/components/layout/GridItem/index.d.ts | 13 + build/lib/components/layout/GridItem/index.js | 24 + .../GridItem/spaceDependentProperties.d.ts | 3 + .../GridItem/spaceDependentProperties.js | 15 + .../components/layout/GridItem/styles.d.ts | 3 + .../lib/components/layout/GridItem/styles.js | 28 + .../layout/HorizontalBar/Documentation.d.ts | 3 + .../layout/HorizontalBar/Documentation.js | 127 + .../layout/HorizontalBar/index.d.ts | 14 + .../components/layout/HorizontalBar/index.js | 34 + .../layout/HorizontalBar/styles.d.ts | 4 + .../components/layout/HorizontalBar/styles.js | 78 + .../layout/Sidebar/Documentation.d.ts | 3 + .../layout/Sidebar/Documentation.js | 55 + .../lib/components/layout/Sidebar/index.d.ts | 6 + build/lib/components/layout/Sidebar/index.js | 16 + .../lib/components/layout/Sidebar/styles.d.ts | 4 + build/lib/components/layout/Sidebar/styles.js | 17 + .../components/layout/SidebarBrand/index.d.ts | 3 + .../components/layout/SidebarBrand/index.js | 16 + .../layout/SidebarBrand/styles.d.ts | 4 + .../components/layout/SidebarBrand/styles.js | 10 + .../layout/SidebarFooter/index.d.ts | 3 + .../components/layout/SidebarFooter/index.js | 16 + .../layout/SidebarFooter/styles.d.ts | 4 + .../components/layout/SidebarFooter/styles.js | 15 + .../components/layout/SidebarItem/index.d.ts | 12 + .../components/layout/SidebarItem/index.js | 37 + .../components/layout/SidebarItem/styles.d.ts | 4 + .../components/layout/SidebarItem/styles.js | 84 + .../layout/Space/Documentation.d.ts | 3 + .../components/layout/Space/Documentation.js | 108 + build/lib/components/layout/Space/index.d.ts | 16 + build/lib/components/layout/Space/index.js | 23 + build/lib/components/layout/Space/styles.d.ts | 5 + build/lib/components/layout/Space/styles.js | 59 + .../navigation/Breadcrumbs/Documentation.d.ts | 3 + .../navigation/Breadcrumbs/Documentation.js | 65 + .../navigation/Breadcrumbs/getStyles.d.ts | 4 + .../navigation/Breadcrumbs/getStyles.js | 40 + .../navigation/Breadcrumbs/index.d.ts | 11 + .../navigation/Breadcrumbs/index.js | 32 + .../MobileToggle/Documentation.d.ts | 3 + .../navigation/MobileToggle/Documentation.js | 55 + .../navigation/MobileToggle/index.d.ts | 9 + .../navigation/MobileToggle/index.js | 78 + .../navigation/MobileToggle/styles.d.ts | 4 + .../navigation/MobileToggle/styles.js | 92 + .../PageNavigation/Documentation.d.ts | 3 + .../PageNavigation/Documentation.js | 131 + .../navigation/PageNavigation/Page/index.d.ts | 9 + .../navigation/PageNavigation/Page/index.js | 26 + .../PageNavigation/Page/styles.d.ts | 4 + .../navigation/PageNavigation/Page/styles.js | 41 + .../PageNavigation/PageGroup/index.d.ts | 10 + .../PageNavigation/PageGroup/index.js | 66 + .../PageNavigation/PageGroup/styles.d.ts | 4 + .../PageNavigation/PageGroup/styles.js | 102 + .../PageNavigation/SearchResults/index.d.ts | 9 + .../PageNavigation/SearchResults/index.js | 33 + .../PageNavigation/SearchResults/styles.d.ts | 4 + .../PageNavigation/SearchResults/styles.js | 30 + .../navigation/PageNavigation/index.d.ts | 13 + .../navigation/PageNavigation/index.js | 85 + .../navigation/PageNavigation/styles.d.ts | 4 + .../navigation/PageNavigation/styles.js | 40 + .../navigation/PageTree/PageSearch.d.ts | 8 + .../navigation/PageTree/PageSearch.js | 30 + .../navigation/PageTree/PageTreeItem.d.ts | 5 + .../navigation/PageTree/PageTreeItem.js | 2 + .../PageTree/PageTreeItemWithMetadata.d.ts | 9 + .../PageTree/PageTreeItemWithMetadata.js | 2 + .../components/navigation/PageTree/index.d.ts | 16 + .../components/navigation/PageTree/index.js | 58 + .../navigation/useRouteChange/index.d.ts | 2 + .../navigation/useRouteChange/index.js | 17 + .../roots/Application/Documentation.d.ts | 3 + .../roots/Application/Documentation.js | 29 + .../components/roots/Application/index.d.ts | 10 + .../lib/components/roots/Application/index.js | 23 + .../components/roots/Application/styles.d.ts | 4 + .../components/roots/Application/styles.js | 20 + .../roots/StyleCollector/index.d.ts | 7 + .../components/roots/StyleCollector/index.js | 14 + .../roots/ThemeProvider/Documentation.d.ts | 3 + .../roots/ThemeProvider/Documentation.js | 43 + .../components/roots/ThemeProvider/index.d.ts | 7 + .../components/roots/ThemeProvider/index.js | 12 + .../roots/Website/Documentation.d.ts | 3 + .../components/roots/Website/Documentation.js | 25 + build/lib/components/roots/Website/index.d.ts | 8 + build/lib/components/roots/Website/index.js | 46 + .../typography/Headline/Documentation.d.ts | 3 + .../typography/Headline/Documentation.js | 29 + .../components/typography/Headline/index.d.ts | 11 + .../components/typography/Headline/index.js | 41 + .../typography/Headline/styles.d.ts | 4 + .../components/typography/Headline/styles.js | 92 + .../components/typography/Label/index.d.ts | 7 + .../lib/components/typography/Label/index.js | 16 + .../components/typography/Label/styles.d.ts | 4 + .../lib/components/typography/Label/styles.js | 15 + .../typography/Paragraph/Documentation.d.ts | 3 + .../typography/Paragraph/Documentation.js | 32 + .../typography/Paragraph/index.d.ts | 8 + .../components/typography/Paragraph/index.js | 17 + .../typography/Paragraph/styles.d.ts | 4 + .../components/typography/Paragraph/styles.js | 51 + .../typography/Text/Documentation.d.ts | 3 + .../typography/Text/Documentation.js | 33 + .../lib/components/typography/Text/index.d.ts | 11 + build/lib/components/typography/Text/index.js | 23 + .../components/typography/Text/styles.d.ts | 4 + .../lib/components/typography/Text/styles.js | 30 + build/lib/components/useAutoFocus.d.ts | 6 + build/lib/components/useAutoFocus.js | 25 + build/lib/components/useForceUpdate.d.ts | 2 + build/lib/components/useForceUpdate.js | 11 + build/lib/createRedirect.d.ts | 6 + build/lib/createRedirect.js | 31 + build/lib/index.d.ts | 79 + build/lib/index.js | 158 + .../DocumentationPage/Documentation.d.ts | 3 + .../DocumentationPage/Documentation.js | 66 + .../lib/layouts/DocumentationPage/index.d.ts | 13 + build/lib/layouts/DocumentationPage/index.js | 116 + .../lib/layouts/DocumentationPage/styles.d.ts | 4 + build/lib/layouts/DocumentationPage/styles.js | 125 + .../services/DialogService/Documentation.d.ts | 3 + .../services/DialogService/Documentation.js | 53 + build/lib/services/DialogService/index.d.ts | 26 + build/lib/services/DialogService/index.js | 54 + .../services/ExecutionEnvironmentService.d.ts | 5 + .../services/ExecutionEnvironmentService.js | 16 + .../NotificationService/Documentation.d.ts | 3 + .../NotificationService/Documentation.js | 71 + .../services/NotificationService/index.d.ts | 27 + .../lib/services/NotificationService/index.js | 39 + build/lib/services/getPortalRootNode.d.ts | 2 + build/lib/services/getPortalRootNode.js | 15 + build/lib/services/index.d.ts | 9 + build/lib/services/index.js | 16 + build/lib/services/slugify.d.ts | 2 + build/lib/services/slugify.js | 10 + build/lib/styles/Documentation.d.ts | 3 + build/lib/styles/Documentation.js | 64 + build/lib/styles/ServerSideStyles.d.ts | 10 + build/lib/styles/ServerSideStyles.js | 21 + build/lib/styles/StaticGlobalStyles.d.ts | 11 + build/lib/styles/StaticGlobalStyles.js | 40 + build/lib/styles/classNames.d.ts | 2 + build/lib/styles/classNames.js | 8 + build/lib/styles/createUseStyles.d.ts | 8 + build/lib/styles/createUseStyles.js | 6 + build/lib/styles/index.d.ts | 8 + build/lib/styles/index.js | 17 + build/lib/styles/minifyCss.d.ts | 2 + build/lib/styles/minifyCss.js | 8 + build/lib/styles/removeServerSideStyles.d.ts | 2 + build/lib/styles/removeServerSideStyles.js | 14 + build/lib/styles/useCustomTheme.d.ts | 3 + build/lib/styles/useCustomTheme.js | 8 + build/lib/styles/useDevice.d.ts | 3 + build/lib/styles/useDevice.js | 42 + build/lib/styles/utils.d.ts | 25 + build/lib/styles/utils.js | 55 + build/lib/themes/BrandColors.d.ts | 9 + build/lib/themes/BrandColors.js | 2 + build/lib/themes/Breakpoints.d.ts | 27 + build/lib/themes/Breakpoints.js | 90 + build/lib/themes/DivisionColors.d.ts | 9 + build/lib/themes/DivisionColors.js | 2 + build/lib/themes/Documentation/index.d.ts | 3 + build/lib/themes/Documentation/index.js | 117 + build/lib/themes/Documentation/themes.d.ts | 13 + build/lib/themes/Documentation/themes.js | 53 + build/lib/themes/FontSizes.d.ts | 9 + build/lib/themes/FontSizes.js | 2 + build/lib/themes/InteractionColors.d.ts | 4 + build/lib/themes/InteractionColors.js | 2 + build/lib/themes/Pattern.d.ts | 4 + build/lib/themes/Pattern.js | 2 + build/lib/themes/Size.d.ts | 1 + build/lib/themes/Size.js | 2 + build/lib/themes/TheNativeWeb.d.ts | 5 + build/lib/themes/TheNativeWeb.js | 30 + build/lib/themes/Theme.d.ts | 92 + build/lib/themes/Theme.js | 103 + build/lib/themes/Wolkenkit.d.ts | 5 + build/lib/themes/Wolkenkit.js | 30 + build/lib/themes/index.d.ts | 8 + build/lib/themes/index.js | 12 + build/lib/types/ComponentClassNames.d.ts | 2 + build/lib/types/ComponentClassNames.js | 2 + build/lib/types/CssProperties.d.ts | 4 + build/lib/types/CssProperties.js | 2 + build/lib/types/IconSize.d.ts | 1 + build/lib/types/IconSize.js | 2 + build/lib/types/Language.d.ts | 1 + build/lib/types/Language.js | 2 + build/lib/types/LayoutComponent.d.ts | 4 + build/lib/types/LayoutComponent.js | 2 + build/lib/types/Length.d.ts | 1 + build/lib/types/Length.js | 2 + build/lib/types/MultiLanguagePageTree.d.ts | 2 + build/lib/types/MultiLanguagePageTree.js | 2 + build/lib/types/NestedCssProperties.d.ts | 5 + build/lib/types/NestedCssProperties.js | 2 + .../lib/types/ResponsiveSpaceDefinition.d.ts | 8 + build/lib/types/ResponsiveSpaceDefinition.js | 2 + build/lib/types/ResponsiveSpaceFactor.d.ts | 1 + build/lib/types/ResponsiveSpaceFactor.js | 2 + build/lib/types/ResponsiveSpaceProp.d.ts | 2 + build/lib/types/ResponsiveSpaceProp.js | 2 + build/lib/utils/getLanguageFromUrl.d.ts | 3 + build/lib/utils/getLanguageFromUrl.js | 8 + build/lib/utils/isDomNode.d.ts | 3 + build/lib/utils/isDomNode.js | 11 + build/lib/utils/isReactElement.d.ts | 2 + build/lib/utils/isReactElement.js | 11 + build/lib/utils/scrollToAnchor.d.ts | 3 + build/lib/utils/scrollToAnchor.js | 17 + build/lib/utils/toArray.d.ts | 2 + build/lib/utils/toArray.js | 5 + build/test/cli/getBrokenUrlsTests.d.ts | 1 + build/test/cli/getBrokenUrlsTests.js | 85 + build/test/cli/getPageTests.d.ts | 1 + build/test/cli/getPageTests.js | 11 + build/test/cli/getUrlsFromSitemapTests.d.ts | 1 + build/test/cli/getUrlsFromSitemapTests.js | 122 + .../optimizeImages/optimizeImagesTests.d.ts | 1 + .../cli/optimizeImages/optimizeImagesTests.js | 65 + .../components/layout/ContainerTests.d.ts | 1 + .../components/layout/ContainerTests.js | 34 + .../components/layout/GridItemTests.d.ts | 1 + .../components/layout/GridItemTests.js | 49 + .../components/layout/SidebarItemTests.d.ts | 1 + .../components/layout/SidebarItemTests.js | 41 + .../components/layout/SidebarTests.d.ts | 1 + .../components/layout/SidebarTests.js | 23 + .../components/layout/SpaceTests.d.ts | 1 + .../components/layout/SpaceTests.js | 104 + build/test/integration/post.d.ts | 1 + build/test/integration/post.js | 9 + build/test/integration/pre.d.ts | 1 + build/test/integration/pre.js | 46 + .../integration/rendering/clientTests.d.ts | 1 + .../test/integration/rendering/clientTests.js | 43 + .../integration/rendering/serverTests.d.ts | 1 + .../test/integration/rendering/serverTests.js | 30 + .../integration/services/dialogsTests.d.ts | 1 + .../test/integration/services/dialogsTests.js | 70 + .../services/notificationsTests.d.ts | 1 + .../services/notificationsTests.js | 23 + .../integration/styles/classNamesTests.d.ts | 1 + .../integration/styles/classNamesTests.js | 21 + .../integration/themes/breakpointTests.d.ts | 1 + .../integration/themes/breakpointTests.js | 65 + .../test/integration/themes/extendTests.d.ts | 1 + build/test/integration/themes/extendTests.js | 20 + build/test/shared/act.d.ts | 2 + build/test/shared/act.js | 10 + build/test/shared/browser.d.ts | 33 + build/test/shared/browser.js | 33 + build/test/shared/containers/nginx.d.ts | 11 + build/test/shared/containers/nginx.js | 43 + build/test/shared/environment.d.ts | 11 + build/test/shared/environment.js | 28 + build/test/shared/eventDispatchers.d.ts | 4 + build/test/shared/eventDispatchers.js | 15 + build/test/shared/mocha/setupVirtualDom.d.ts | 1 + build/test/shared/mocha/setupVirtualDom.js | 19 + build/test/styleguide/brokenUrlsTests.d.ts | 1 + build/test/styleguide/brokenUrlsTests.js | 77 + build/test/styleguide/pre.d.ts | 1 + build/test/styleguide/pre.js | 28 + build/test/unit/branding/BrandTests.d.ts | 1 + build/test/unit/branding/BrandTests.js | 72 + build/test/unit/branding/MadeByTests.d.ts | 1 + build/test/unit/branding/MadeByTests.js | 62 + build/test/unit/branding/PatternTests.d.ts | 1 + build/test/unit/branding/PatternTests.js | 29 + build/test/unit/branding/PoweredByTests.d.ts | 1 + build/test/unit/branding/PoweredByTests.js | 47 + build/test/unit/branding/ProductTests.d.ts | 1 + build/test/unit/branding/ProductTests.js | 84 + build/test/unit/documentation/CodeTests.d.ts | 1 + build/test/unit/documentation/CodeTests.js | 67 + .../formatAsPrettyStringTests.d.ts | 1 + .../formatAsPrettyStringTests.js | 29 + .../unit/feedback/BusyIndicatorTests.d.ts | 1 + .../test/unit/feedback/BusyIndicatorTests.js | 36 + build/test/unit/feedback/DialogsTests.d.ts | 1 + build/test/unit/feedback/DialogsTests.js | 101 + .../unit/feedback/HighlightTextTests.d.ts | 1 + .../test/unit/feedback/HighlightTextTests.js | 35 + build/test/unit/feedback/MessageTests.d.ts | 1 + build/test/unit/feedback/MessageTests.js | 48 + build/test/unit/feedback/ModalTests.d.ts | 1 + build/test/unit/feedback/ModalTests.js | 133 + .../unit/feedback/NonIdealStateTests.d.ts | 1 + .../test/unit/feedback/NonIdealStateTests.js | 33 + .../unit/feedback/NotificationsTests.d.ts | 1 + .../test/unit/feedback/NotificationsTests.js | 79 + .../unit/forms/ControlGroupDividerTests.d.ts | 1 + .../unit/forms/ControlGroupDividerTests.js | 28 + .../unit/forms/ControlGroupItemTests.d.ts | 1 + .../test/unit/forms/ControlGroupItemTests.js | 62 + build/test/unit/forms/ControlGroupTests.d.ts | 1 + build/test/unit/forms/ControlGroupTests.js | 36 + build/test/unit/forms/FormActionsTests.d.ts | 1 + build/test/unit/forms/FormActionsTests.js | 28 + build/test/unit/forms/FormRowTests.d.ts | 1 + build/test/unit/forms/FormRowTests.js | 28 + build/test/unit/forms/FormTests.d.ts | 1 + build/test/unit/forms/FormTests.js | 44 + build/test/unit/graphics/IconTests.d.ts | 1 + build/test/unit/graphics/IconTests.js | 74 + build/test/unit/graphics/LogoFullTests.d.ts | 1 + build/test/unit/graphics/LogoFullTests.js | 42 + .../test/unit/graphics/LogoMinimalTests.d.ts | 1 + build/test/unit/graphics/LogoMinimalTests.js | 64 + .../unit/graphics/LogoTheNativeWebTests.d.ts | 1 + .../unit/graphics/LogoTheNativeWebTests.js | 52 + .../unit/graphics/LogoWolkenkitTests.d.ts | 1 + .../test/unit/graphics/LogoWolkenkitTests.js | 52 + build/test/unit/input/ButtonHintTests.d.ts | 1 + build/test/unit/input/ButtonHintTests.js | 29 + build/test/unit/input/ButtonTests.d.ts | 1 + build/test/unit/input/ButtonTests.js | 135 + build/test/unit/input/CheckboxTests.d.ts | 1 + build/test/unit/input/CheckboxTests.js | 64 + build/test/unit/input/DropdownTests.d.ts | 1 + build/test/unit/input/DropdownTests.js | 39 + build/test/unit/input/LinkTests.d.ts | 1 + build/test/unit/input/LinkTests.js | 84 + build/test/unit/input/TextAreaTests.d.ts | 1 + build/test/unit/input/TextAreaTests.js | 80 + build/test/unit/input/TextBoxTests.d.ts | 1 + build/test/unit/input/TextBoxTests.js | 89 + build/test/unit/input/ToggleTests.d.ts | 1 + build/test/unit/input/ToggleTests.js | 60 + build/test/unit/layout/ContainerTests.d.ts | 1 + build/test/unit/layout/ContainerTests.js | 114 + build/test/unit/layout/FooterTests.d.ts | 1 + build/test/unit/layout/FooterTests.js | 112 + build/test/unit/layout/GridItemTests.d.ts | 1 + build/test/unit/layout/GridItemTests.js | 75 + build/test/unit/layout/GridTests.d.ts | 1 + build/test/unit/layout/GridTests.js | 79 + .../test/unit/layout/HorizontalBarTests.d.ts | 1 + build/test/unit/layout/HorizontalBarTests.js | 123 + build/test/unit/layout/SidebarBrandTests.d.ts | 1 + build/test/unit/layout/SidebarBrandTests.js | 28 + .../test/unit/layout/SidebarFooterTests.d.ts | 1 + build/test/unit/layout/SidebarFooterTests.js | 28 + build/test/unit/layout/SidebarItemTests.d.ts | 1 + build/test/unit/layout/SidebarItemTests.js | 89 + build/test/unit/layout/SidebarTests.d.ts | 1 + build/test/unit/layout/SidebarTests.js | 29 + build/test/unit/layout/SpaceTests.d.ts | 1 + build/test/unit/layout/SpaceTests.js | 69 + .../unit/navigation/BreadcrumbsTests.d.ts | 1 + .../test/unit/navigation/BreadcrumbsTests.js | 75 + .../unit/navigation/PageNavigationTests.d.ts | 1 + .../unit/navigation/PageNavigationTests.js | 123 + .../PageTree/PageTreeSearchTests.d.ts | 1 + .../PageTree/PageTreeSearchTests.js | 87 + build/test/unit/roots/ApplicationTests.d.ts | 1 + build/test/unit/roots/ApplicationTests.js | 28 + build/test/unit/roots/WebsiteTests.d.ts | 1 + build/test/unit/roots/WebsiteTests.js | 39 + build/test/unit/typography/HeadlineTests.d.ts | 1 + build/test/unit/typography/HeadlineTests.js | 77 + build/test/unit/typography/LabelTests.d.ts | 1 + build/test/unit/typography/LabelTests.js | 29 + build/test/unit/typography/TextTests.d.ts | 1 + build/test/unit/typography/TextTests.js | 57 + package-lock.json | 21756 ++++++++-------- package.json | 5 +- 685 files changed, 27291 insertions(+), 10970 deletions(-) create mode 100644 build/lib/Documentation.d.ts create mode 100644 build/lib/Documentation.js create mode 100644 build/lib/NextApp.d.ts create mode 100644 build/lib/NextApp.js create mode 100644 build/lib/NextDocument.d.ts create mode 100644 build/lib/NextDocument.js create mode 100644 build/lib/bin/getHandlers.d.ts create mode 100644 build/lib/bin/getHandlers.js create mode 100644 build/lib/bin/ux.d.ts create mode 100644 build/lib/bin/ux.js create mode 100644 build/lib/cli/RootOptions.d.ts create mode 100644 build/lib/cli/RootOptions.js create mode 100644 build/lib/cli/noop.d.ts create mode 100644 build/lib/cli/noop.js create mode 100644 build/lib/cli/optimizeImages/OptimizeImagesOptions.d.ts create mode 100644 build/lib/cli/optimizeImages/OptimizeImagesOptions.js create mode 100644 build/lib/cli/optimizeImages/optimizeImages.d.ts create mode 100644 build/lib/cli/optimizeImages/optimizeImages.js create mode 100644 build/lib/cli/optimizeImages/optimizeImagesCommand.d.ts create mode 100644 build/lib/cli/optimizeImages/optimizeImagesCommand.js create mode 100644 build/lib/cli/optimizeImages/optimizeJpg.d.ts create mode 100644 build/lib/cli/optimizeImages/optimizeJpg.js create mode 100644 build/lib/cli/optimizeImages/optimizePng.d.ts create mode 100644 build/lib/cli/optimizeImages/optimizePng.js create mode 100644 build/lib/cli/optimizeImages/optimizeSvg.d.ts create mode 100644 build/lib/cli/optimizeImages/optimizeSvg.js create mode 100644 build/lib/cli/rootCommand.d.ts create mode 100644 build/lib/cli/rootCommand.js create mode 100644 build/lib/cli/verifyLinks/BrokenUrl.d.ts create mode 100644 build/lib/cli/verifyLinks/BrokenUrl.js create mode 100644 build/lib/cli/verifyLinks/VerifyLinksOptions.d.ts create mode 100644 build/lib/cli/verifyLinks/VerifyLinksOptions.js create mode 100644 build/lib/cli/verifyLinks/getAbsolutePath.d.ts create mode 100644 build/lib/cli/verifyLinks/getAbsolutePath.js create mode 100644 build/lib/cli/verifyLinks/getBrokenUrls.d.ts create mode 100644 build/lib/cli/verifyLinks/getBrokenUrls.js create mode 100644 build/lib/cli/verifyLinks/getExternalUrlsFromPage.d.ts create mode 100644 build/lib/cli/verifyLinks/getExternalUrlsFromPage.js create mode 100644 build/lib/cli/verifyLinks/getPage.d.ts create mode 100644 build/lib/cli/verifyLinks/getPage.js create mode 100644 build/lib/cli/verifyLinks/getUrlsFromSitemap.d.ts create mode 100644 build/lib/cli/verifyLinks/getUrlsFromSitemap.js create mode 100644 build/lib/cli/verifyLinks/verifyLinksCommand.d.ts create mode 100644 build/lib/cli/verifyLinks/verifyLinksCommand.js create mode 100644 build/lib/components/Background.d.ts create mode 100644 build/lib/components/Background.js create mode 100644 build/lib/components/animation/Transition/Documentation.d.ts create mode 100644 build/lib/components/animation/Transition/Documentation.js create mode 100644 build/lib/components/animation/Transition/TransitionType.d.ts create mode 100644 build/lib/components/animation/Transition/TransitionType.js create mode 100644 build/lib/components/animation/Transition/index.d.ts create mode 100644 build/lib/components/animation/Transition/index.js create mode 100644 build/lib/components/animation/Transition/types/Fade.d.ts create mode 100644 build/lib/components/animation/Transition/types/Fade.js create mode 100644 build/lib/components/animation/Transition/types/FadeInLeft.d.ts create mode 100644 build/lib/components/animation/Transition/types/FadeInLeft.js create mode 100644 build/lib/components/animation/Transition/types/FadeInRight.d.ts create mode 100644 build/lib/components/animation/Transition/types/FadeInRight.js create mode 100644 build/lib/components/animation/Transition/types/Grow.d.ts create mode 100644 build/lib/components/animation/Transition/types/Grow.js create mode 100644 build/lib/components/animation/Transition/types/TransitionProps.d.ts create mode 100644 build/lib/components/animation/Transition/types/TransitionProps.js create mode 100644 build/lib/components/animation/Transition/types/Zoom.d.ts create mode 100644 build/lib/components/animation/Transition/types/Zoom.js create mode 100644 build/lib/components/animation/Transition/types/defaults.d.ts create mode 100644 build/lib/components/animation/Transition/types/defaults.js create mode 100644 build/lib/components/animation/Transition/types/index.d.ts create mode 100644 build/lib/components/animation/Transition/types/index.js create mode 100644 build/lib/components/animation/TransitionGroup/Documentation.d.ts create mode 100644 build/lib/components/animation/TransitionGroup/Documentation.js create mode 100644 build/lib/components/animation/TransitionGroup/index.d.ts create mode 100644 build/lib/components/animation/TransitionGroup/index.js create mode 100644 build/lib/components/branding/Brand/Documentation.d.ts create mode 100644 build/lib/components/branding/Brand/Documentation.js create mode 100644 build/lib/components/branding/Brand/index.d.ts create mode 100644 build/lib/components/branding/Brand/index.js create mode 100644 build/lib/components/branding/Brand/styles.d.ts create mode 100644 build/lib/components/branding/Brand/styles.js create mode 100644 build/lib/components/branding/MadeBy/Documentation.d.ts create mode 100644 build/lib/components/branding/MadeBy/Documentation.js create mode 100644 build/lib/components/branding/MadeBy/index.d.ts create mode 100644 build/lib/components/branding/MadeBy/index.js create mode 100644 build/lib/components/branding/MadeBy/styles.d.ts create mode 100644 build/lib/components/branding/MadeBy/styles.js create mode 100644 build/lib/components/branding/Pattern/Documentation.d.ts create mode 100644 build/lib/components/branding/Pattern/Documentation.js create mode 100644 build/lib/components/branding/Pattern/index.d.ts create mode 100644 build/lib/components/branding/Pattern/index.js create mode 100644 build/lib/components/branding/Pattern/styles.d.ts create mode 100644 build/lib/components/branding/Pattern/styles.js create mode 100644 build/lib/components/branding/PoweredBy/Documentation.d.ts create mode 100644 build/lib/components/branding/PoweredBy/Documentation.js create mode 100644 build/lib/components/branding/PoweredBy/index.d.ts create mode 100644 build/lib/components/branding/PoweredBy/index.js create mode 100644 build/lib/components/branding/PoweredBy/styles.d.ts create mode 100644 build/lib/components/branding/PoweredBy/styles.js create mode 100644 build/lib/components/branding/Product/Documentation.d.ts create mode 100644 build/lib/components/branding/Product/Documentation.js create mode 100644 build/lib/components/branding/Product/index.d.ts create mode 100644 build/lib/components/branding/Product/index.js create mode 100644 build/lib/components/branding/Product/styles.d.ts create mode 100644 build/lib/components/branding/Product/styles.js create mode 100644 build/lib/components/documentation/Code/Documentation.d.ts create mode 100644 build/lib/components/documentation/Code/Documentation.js create mode 100644 build/lib/components/documentation/Code/getPrismStyles.d.ts create mode 100644 build/lib/components/documentation/Code/getPrismStyles.js create mode 100644 build/lib/components/documentation/Code/index.d.ts create mode 100644 build/lib/components/documentation/Code/index.js create mode 100644 build/lib/components/documentation/Code/styles.d.ts create mode 100644 build/lib/components/documentation/Code/styles.js create mode 100644 build/lib/components/documentation/ComponentPreview/index.d.ts create mode 100644 build/lib/components/documentation/ComponentPreview/index.js create mode 100644 build/lib/components/documentation/ComponentPreview/styles.d.ts create mode 100644 build/lib/components/documentation/ComponentPreview/styles.js create mode 100644 build/lib/components/documentation/Property/index.d.ts create mode 100644 build/lib/components/documentation/Property/index.js create mode 100644 build/lib/components/documentation/SplitView/index.d.ts create mode 100644 build/lib/components/documentation/SplitView/index.js create mode 100644 build/lib/components/documentation/SplitView/styles.d.ts create mode 100644 build/lib/components/documentation/SplitView/styles.js create mode 100644 build/lib/components/documentation/formatAsPrettyString.d.ts create mode 100644 build/lib/components/documentation/formatAsPrettyString.js create mode 100644 build/lib/components/feedback/BusyIndicator/Documentation.d.ts create mode 100644 build/lib/components/feedback/BusyIndicator/Documentation.js create mode 100644 build/lib/components/feedback/BusyIndicator/index.d.ts create mode 100644 build/lib/components/feedback/BusyIndicator/index.js create mode 100644 build/lib/components/feedback/BusyIndicator/styles.d.ts create mode 100644 build/lib/components/feedback/BusyIndicator/styles.js create mode 100644 build/lib/components/feedback/Dialogs/index.d.ts create mode 100644 build/lib/components/feedback/Dialogs/index.js create mode 100644 build/lib/components/feedback/Dialogs/styles.d.ts create mode 100644 build/lib/components/feedback/Dialogs/styles.js create mode 100644 build/lib/components/feedback/HighlightText/Documentation.d.ts create mode 100644 build/lib/components/feedback/HighlightText/Documentation.js create mode 100644 build/lib/components/feedback/HighlightText/index.d.ts create mode 100644 build/lib/components/feedback/HighlightText/index.js create mode 100644 build/lib/components/feedback/HighlightText/styles.d.ts create mode 100644 build/lib/components/feedback/HighlightText/styles.js create mode 100644 build/lib/components/feedback/Message/Documentation.d.ts create mode 100644 build/lib/components/feedback/Message/Documentation.js create mode 100644 build/lib/components/feedback/Message/index.d.ts create mode 100644 build/lib/components/feedback/Message/index.js create mode 100644 build/lib/components/feedback/Message/styles.d.ts create mode 100644 build/lib/components/feedback/Message/styles.js create mode 100644 build/lib/components/feedback/Modal/Documentation.d.ts create mode 100644 build/lib/components/feedback/Modal/Documentation.js create mode 100644 build/lib/components/feedback/Modal/index.d.ts create mode 100644 build/lib/components/feedback/Modal/index.js create mode 100644 build/lib/components/feedback/Modal/styles.d.ts create mode 100644 build/lib/components/feedback/Modal/styles.js create mode 100644 build/lib/components/feedback/ModalRow/index.d.ts create mode 100644 build/lib/components/feedback/ModalRow/index.js create mode 100644 build/lib/components/feedback/ModalRow/styles.d.ts create mode 100644 build/lib/components/feedback/ModalRow/styles.js create mode 100644 build/lib/components/feedback/NonIdealState/Documentation.d.ts create mode 100644 build/lib/components/feedback/NonIdealState/Documentation.js create mode 100644 build/lib/components/feedback/NonIdealState/index.d.ts create mode 100644 build/lib/components/feedback/NonIdealState/index.js create mode 100644 build/lib/components/feedback/NonIdealState/styles.d.ts create mode 100644 build/lib/components/feedback/NonIdealState/styles.js create mode 100644 build/lib/components/feedback/Notifications/Notification/index.d.ts create mode 100644 build/lib/components/feedback/Notifications/Notification/index.js create mode 100644 build/lib/components/feedback/Notifications/Notification/styles.d.ts create mode 100644 build/lib/components/feedback/Notifications/Notification/styles.js create mode 100644 build/lib/components/feedback/Notifications/index.d.ts create mode 100644 build/lib/components/feedback/Notifications/index.js create mode 100644 build/lib/components/feedback/Notifications/styles.d.ts create mode 100644 build/lib/components/feedback/Notifications/styles.js create mode 100644 build/lib/components/feedback/Tags/Documentation.d.ts create mode 100644 build/lib/components/feedback/Tags/Documentation.js create mode 100644 build/lib/components/feedback/Tags/index.d.ts create mode 100644 build/lib/components/feedback/Tags/index.js create mode 100644 build/lib/components/feedback/Tags/styles.d.ts create mode 100644 build/lib/components/feedback/Tags/styles.js create mode 100644 build/lib/components/forms/ControlGroup/Documentation.d.ts create mode 100644 build/lib/components/forms/ControlGroup/Documentation.js create mode 100644 build/lib/components/forms/ControlGroup/index.d.ts create mode 100644 build/lib/components/forms/ControlGroup/index.js create mode 100644 build/lib/components/forms/ControlGroup/styles.d.ts create mode 100644 build/lib/components/forms/ControlGroup/styles.js create mode 100644 build/lib/components/forms/ControlGroupDivider/index.d.ts create mode 100644 build/lib/components/forms/ControlGroupDivider/index.js create mode 100644 build/lib/components/forms/ControlGroupDivider/styles.d.ts create mode 100644 build/lib/components/forms/ControlGroupDivider/styles.js create mode 100644 build/lib/components/forms/ControlGroupItem/index.d.ts create mode 100644 build/lib/components/forms/ControlGroupItem/index.js create mode 100644 build/lib/components/forms/ControlGroupItem/styles.d.ts create mode 100644 build/lib/components/forms/ControlGroupItem/styles.js create mode 100644 build/lib/components/forms/Form/Documentation.d.ts create mode 100644 build/lib/components/forms/Form/Documentation.js create mode 100644 build/lib/components/forms/Form/index.d.ts create mode 100644 build/lib/components/forms/Form/index.js create mode 100644 build/lib/components/forms/Form/styles.d.ts create mode 100644 build/lib/components/forms/Form/styles.js create mode 100644 build/lib/components/forms/FormActions/index.d.ts create mode 100644 build/lib/components/forms/FormActions/index.js create mode 100644 build/lib/components/forms/FormActions/styles.d.ts create mode 100644 build/lib/components/forms/FormActions/styles.js create mode 100644 build/lib/components/forms/FormRow/index.d.ts create mode 100644 build/lib/components/forms/FormRow/index.js create mode 100644 build/lib/components/forms/FormRow/styles.d.ts create mode 100644 build/lib/components/forms/FormRow/styles.js create mode 100644 build/lib/components/graphics/Icon/Documentation.d.ts create mode 100644 build/lib/components/graphics/Icon/Documentation.js create mode 100644 build/lib/components/graphics/Icon/index.d.ts create mode 100644 build/lib/components/graphics/Icon/index.js create mode 100644 build/lib/components/graphics/Icon/styles.d.ts create mode 100644 build/lib/components/graphics/Icon/styles.js create mode 100644 build/lib/components/graphics/Icons/index.d.ts create mode 100644 build/lib/components/graphics/Icons/index.js create mode 100644 build/lib/components/graphics/LogoFull/Documentation.d.ts create mode 100644 build/lib/components/graphics/LogoFull/Documentation.js create mode 100644 build/lib/components/graphics/LogoFull/index.d.ts create mode 100644 build/lib/components/graphics/LogoFull/index.js create mode 100644 build/lib/components/graphics/LogoFull/styles.d.ts create mode 100644 build/lib/components/graphics/LogoFull/styles.js create mode 100644 build/lib/components/graphics/LogoMinimal/Documentation.d.ts create mode 100644 build/lib/components/graphics/LogoMinimal/Documentation.js create mode 100644 build/lib/components/graphics/LogoMinimal/index.d.ts create mode 100644 build/lib/components/graphics/LogoMinimal/index.js create mode 100644 build/lib/components/graphics/LogoMinimal/styles.d.ts create mode 100644 build/lib/components/graphics/LogoMinimal/styles.js create mode 100644 build/lib/components/graphics/LogoProps.d.ts create mode 100644 build/lib/components/graphics/LogoProps.js create mode 100644 build/lib/components/graphics/LogoTheNativeWeb/Documentation.d.ts create mode 100644 build/lib/components/graphics/LogoTheNativeWeb/Documentation.js create mode 100644 build/lib/components/graphics/LogoTheNativeWeb/index.d.ts create mode 100644 build/lib/components/graphics/LogoTheNativeWeb/index.js create mode 100644 build/lib/components/graphics/LogoTheNativeWeb/styles.d.ts create mode 100644 build/lib/components/graphics/LogoTheNativeWeb/styles.js create mode 100644 build/lib/components/graphics/LogoWolkenkit/Documentation.d.ts create mode 100644 build/lib/components/graphics/LogoWolkenkit/Documentation.js create mode 100644 build/lib/components/graphics/LogoWolkenkit/index.d.ts create mode 100644 build/lib/components/graphics/LogoWolkenkit/index.js create mode 100644 build/lib/components/graphics/LogoWolkenkit/styles.d.ts create mode 100644 build/lib/components/graphics/LogoWolkenkit/styles.js create mode 100644 build/lib/components/input/Button/Documentation.d.ts create mode 100644 build/lib/components/input/Button/Documentation.js create mode 100644 build/lib/components/input/Button/index.d.ts create mode 100644 build/lib/components/input/Button/index.js create mode 100644 build/lib/components/input/Button/styles.d.ts create mode 100644 build/lib/components/input/Button/styles.js create mode 100644 build/lib/components/input/ButtonHint/index.d.ts create mode 100644 build/lib/components/input/ButtonHint/index.js create mode 100644 build/lib/components/input/ButtonHint/styles.d.ts create mode 100644 build/lib/components/input/ButtonHint/styles.js create mode 100644 build/lib/components/input/CheckBox/Documentation.d.ts create mode 100644 build/lib/components/input/CheckBox/Documentation.js create mode 100644 build/lib/components/input/CheckBox/index.d.ts create mode 100644 build/lib/components/input/CheckBox/index.js create mode 100644 build/lib/components/input/CheckBox/styles.d.ts create mode 100644 build/lib/components/input/CheckBox/styles.js create mode 100644 build/lib/components/input/Dropdown/Documentation.d.ts create mode 100644 build/lib/components/input/Dropdown/Documentation.js create mode 100644 build/lib/components/input/Dropdown/index.d.ts create mode 100644 build/lib/components/input/Dropdown/index.js create mode 100644 build/lib/components/input/Dropdown/styles.d.ts create mode 100644 build/lib/components/input/Dropdown/styles.js create mode 100644 build/lib/components/input/Link/Documentation.d.ts create mode 100644 build/lib/components/input/Link/Documentation.js create mode 100644 build/lib/components/input/Link/index.d.ts create mode 100644 build/lib/components/input/Link/index.js create mode 100644 build/lib/components/input/Link/styles.d.ts create mode 100644 build/lib/components/input/Link/styles.js create mode 100644 build/lib/components/input/TextArea/Documentation.d.ts create mode 100644 build/lib/components/input/TextArea/Documentation.js create mode 100644 build/lib/components/input/TextArea/index.d.ts create mode 100644 build/lib/components/input/TextArea/index.js create mode 100644 build/lib/components/input/TextArea/styles.d.ts create mode 100644 build/lib/components/input/TextArea/styles.js create mode 100644 build/lib/components/input/TextBox/Documentation.d.ts create mode 100644 build/lib/components/input/TextBox/Documentation.js create mode 100644 build/lib/components/input/TextBox/index.d.ts create mode 100644 build/lib/components/input/TextBox/index.js create mode 100644 build/lib/components/input/TextBox/styles.d.ts create mode 100644 build/lib/components/input/TextBox/styles.js create mode 100644 build/lib/components/input/Toggle/Documentation.d.ts create mode 100644 build/lib/components/input/Toggle/Documentation.js create mode 100644 build/lib/components/input/Toggle/index.d.ts create mode 100644 build/lib/components/input/Toggle/index.js create mode 100644 build/lib/components/input/Toggle/renderDefaultToggle.d.ts create mode 100644 build/lib/components/input/Toggle/renderDefaultToggle.js create mode 100644 build/lib/components/input/Toggle/styles.d.ts create mode 100644 build/lib/components/input/Toggle/styles.js create mode 100644 build/lib/components/layout/Container/Documentation.d.ts create mode 100644 build/lib/components/layout/Container/Documentation.js create mode 100644 build/lib/components/layout/Container/index.d.ts create mode 100644 build/lib/components/layout/Container/index.js create mode 100644 build/lib/components/layout/Container/styles.d.ts create mode 100644 build/lib/components/layout/Container/styles.js create mode 100644 build/lib/components/layout/Footer/Documentation.d.ts create mode 100644 build/lib/components/layout/Footer/Documentation.js create mode 100644 build/lib/components/layout/Footer/index.d.ts create mode 100644 build/lib/components/layout/Footer/index.js create mode 100644 build/lib/components/layout/Footer/styles.d.ts create mode 100644 build/lib/components/layout/Footer/styles.js create mode 100644 build/lib/components/layout/Grid/Documentation.d.ts create mode 100644 build/lib/components/layout/Grid/Documentation.js create mode 100644 build/lib/components/layout/Grid/index.d.ts create mode 100644 build/lib/components/layout/Grid/index.js create mode 100644 build/lib/components/layout/Grid/spaceDependentProperties.d.ts create mode 100644 build/lib/components/layout/Grid/spaceDependentProperties.js create mode 100644 build/lib/components/layout/Grid/styles.d.ts create mode 100644 build/lib/components/layout/Grid/styles.js create mode 100644 build/lib/components/layout/GridItem/index.d.ts create mode 100644 build/lib/components/layout/GridItem/index.js create mode 100644 build/lib/components/layout/GridItem/spaceDependentProperties.d.ts create mode 100644 build/lib/components/layout/GridItem/spaceDependentProperties.js create mode 100644 build/lib/components/layout/GridItem/styles.d.ts create mode 100644 build/lib/components/layout/GridItem/styles.js create mode 100644 build/lib/components/layout/HorizontalBar/Documentation.d.ts create mode 100644 build/lib/components/layout/HorizontalBar/Documentation.js create mode 100644 build/lib/components/layout/HorizontalBar/index.d.ts create mode 100644 build/lib/components/layout/HorizontalBar/index.js create mode 100644 build/lib/components/layout/HorizontalBar/styles.d.ts create mode 100644 build/lib/components/layout/HorizontalBar/styles.js create mode 100644 build/lib/components/layout/Sidebar/Documentation.d.ts create mode 100644 build/lib/components/layout/Sidebar/Documentation.js create mode 100644 build/lib/components/layout/Sidebar/index.d.ts create mode 100644 build/lib/components/layout/Sidebar/index.js create mode 100644 build/lib/components/layout/Sidebar/styles.d.ts create mode 100644 build/lib/components/layout/Sidebar/styles.js create mode 100644 build/lib/components/layout/SidebarBrand/index.d.ts create mode 100644 build/lib/components/layout/SidebarBrand/index.js create mode 100644 build/lib/components/layout/SidebarBrand/styles.d.ts create mode 100644 build/lib/components/layout/SidebarBrand/styles.js create mode 100644 build/lib/components/layout/SidebarFooter/index.d.ts create mode 100644 build/lib/components/layout/SidebarFooter/index.js create mode 100644 build/lib/components/layout/SidebarFooter/styles.d.ts create mode 100644 build/lib/components/layout/SidebarFooter/styles.js create mode 100644 build/lib/components/layout/SidebarItem/index.d.ts create mode 100644 build/lib/components/layout/SidebarItem/index.js create mode 100644 build/lib/components/layout/SidebarItem/styles.d.ts create mode 100644 build/lib/components/layout/SidebarItem/styles.js create mode 100644 build/lib/components/layout/Space/Documentation.d.ts create mode 100644 build/lib/components/layout/Space/Documentation.js create mode 100644 build/lib/components/layout/Space/index.d.ts create mode 100644 build/lib/components/layout/Space/index.js create mode 100644 build/lib/components/layout/Space/styles.d.ts create mode 100644 build/lib/components/layout/Space/styles.js create mode 100644 build/lib/components/navigation/Breadcrumbs/Documentation.d.ts create mode 100644 build/lib/components/navigation/Breadcrumbs/Documentation.js create mode 100644 build/lib/components/navigation/Breadcrumbs/getStyles.d.ts create mode 100644 build/lib/components/navigation/Breadcrumbs/getStyles.js create mode 100644 build/lib/components/navigation/Breadcrumbs/index.d.ts create mode 100644 build/lib/components/navigation/Breadcrumbs/index.js create mode 100644 build/lib/components/navigation/MobileToggle/Documentation.d.ts create mode 100644 build/lib/components/navigation/MobileToggle/Documentation.js create mode 100644 build/lib/components/navigation/MobileToggle/index.d.ts create mode 100644 build/lib/components/navigation/MobileToggle/index.js create mode 100644 build/lib/components/navigation/MobileToggle/styles.d.ts create mode 100644 build/lib/components/navigation/MobileToggle/styles.js create mode 100644 build/lib/components/navigation/PageNavigation/Documentation.d.ts create mode 100644 build/lib/components/navigation/PageNavigation/Documentation.js create mode 100644 build/lib/components/navigation/PageNavigation/Page/index.d.ts create mode 100644 build/lib/components/navigation/PageNavigation/Page/index.js create mode 100644 build/lib/components/navigation/PageNavigation/Page/styles.d.ts create mode 100644 build/lib/components/navigation/PageNavigation/Page/styles.js create mode 100644 build/lib/components/navigation/PageNavigation/PageGroup/index.d.ts create mode 100644 build/lib/components/navigation/PageNavigation/PageGroup/index.js create mode 100644 build/lib/components/navigation/PageNavigation/PageGroup/styles.d.ts create mode 100644 build/lib/components/navigation/PageNavigation/PageGroup/styles.js create mode 100644 build/lib/components/navigation/PageNavigation/SearchResults/index.d.ts create mode 100644 build/lib/components/navigation/PageNavigation/SearchResults/index.js create mode 100644 build/lib/components/navigation/PageNavigation/SearchResults/styles.d.ts create mode 100644 build/lib/components/navigation/PageNavigation/SearchResults/styles.js create mode 100644 build/lib/components/navigation/PageNavigation/index.d.ts create mode 100644 build/lib/components/navigation/PageNavigation/index.js create mode 100644 build/lib/components/navigation/PageNavigation/styles.d.ts create mode 100644 build/lib/components/navigation/PageNavigation/styles.js create mode 100644 build/lib/components/navigation/PageTree/PageSearch.d.ts create mode 100644 build/lib/components/navigation/PageTree/PageSearch.js create mode 100644 build/lib/components/navigation/PageTree/PageTreeItem.d.ts create mode 100644 build/lib/components/navigation/PageTree/PageTreeItem.js create mode 100644 build/lib/components/navigation/PageTree/PageTreeItemWithMetadata.d.ts create mode 100644 build/lib/components/navigation/PageTree/PageTreeItemWithMetadata.js create mode 100644 build/lib/components/navigation/PageTree/index.d.ts create mode 100644 build/lib/components/navigation/PageTree/index.js create mode 100644 build/lib/components/navigation/useRouteChange/index.d.ts create mode 100644 build/lib/components/navigation/useRouteChange/index.js create mode 100644 build/lib/components/roots/Application/Documentation.d.ts create mode 100644 build/lib/components/roots/Application/Documentation.js create mode 100644 build/lib/components/roots/Application/index.d.ts create mode 100644 build/lib/components/roots/Application/index.js create mode 100644 build/lib/components/roots/Application/styles.d.ts create mode 100644 build/lib/components/roots/Application/styles.js create mode 100644 build/lib/components/roots/StyleCollector/index.d.ts create mode 100644 build/lib/components/roots/StyleCollector/index.js create mode 100644 build/lib/components/roots/ThemeProvider/Documentation.d.ts create mode 100644 build/lib/components/roots/ThemeProvider/Documentation.js create mode 100644 build/lib/components/roots/ThemeProvider/index.d.ts create mode 100644 build/lib/components/roots/ThemeProvider/index.js create mode 100644 build/lib/components/roots/Website/Documentation.d.ts create mode 100644 build/lib/components/roots/Website/Documentation.js create mode 100644 build/lib/components/roots/Website/index.d.ts create mode 100644 build/lib/components/roots/Website/index.js create mode 100644 build/lib/components/typography/Headline/Documentation.d.ts create mode 100644 build/lib/components/typography/Headline/Documentation.js create mode 100644 build/lib/components/typography/Headline/index.d.ts create mode 100644 build/lib/components/typography/Headline/index.js create mode 100644 build/lib/components/typography/Headline/styles.d.ts create mode 100644 build/lib/components/typography/Headline/styles.js create mode 100644 build/lib/components/typography/Label/index.d.ts create mode 100644 build/lib/components/typography/Label/index.js create mode 100644 build/lib/components/typography/Label/styles.d.ts create mode 100644 build/lib/components/typography/Label/styles.js create mode 100644 build/lib/components/typography/Paragraph/Documentation.d.ts create mode 100644 build/lib/components/typography/Paragraph/Documentation.js create mode 100644 build/lib/components/typography/Paragraph/index.d.ts create mode 100644 build/lib/components/typography/Paragraph/index.js create mode 100644 build/lib/components/typography/Paragraph/styles.d.ts create mode 100644 build/lib/components/typography/Paragraph/styles.js create mode 100644 build/lib/components/typography/Text/Documentation.d.ts create mode 100644 build/lib/components/typography/Text/Documentation.js create mode 100644 build/lib/components/typography/Text/index.d.ts create mode 100644 build/lib/components/typography/Text/index.js create mode 100644 build/lib/components/typography/Text/styles.d.ts create mode 100644 build/lib/components/typography/Text/styles.js create mode 100644 build/lib/components/useAutoFocus.d.ts create mode 100644 build/lib/components/useAutoFocus.js create mode 100644 build/lib/components/useForceUpdate.d.ts create mode 100644 build/lib/components/useForceUpdate.js create mode 100644 build/lib/createRedirect.d.ts create mode 100644 build/lib/createRedirect.js create mode 100644 build/lib/index.d.ts create mode 100644 build/lib/index.js create mode 100644 build/lib/layouts/DocumentationPage/Documentation.d.ts create mode 100644 build/lib/layouts/DocumentationPage/Documentation.js create mode 100644 build/lib/layouts/DocumentationPage/index.d.ts create mode 100644 build/lib/layouts/DocumentationPage/index.js create mode 100644 build/lib/layouts/DocumentationPage/styles.d.ts create mode 100644 build/lib/layouts/DocumentationPage/styles.js create mode 100644 build/lib/services/DialogService/Documentation.d.ts create mode 100644 build/lib/services/DialogService/Documentation.js create mode 100644 build/lib/services/DialogService/index.d.ts create mode 100644 build/lib/services/DialogService/index.js create mode 100644 build/lib/services/ExecutionEnvironmentService.d.ts create mode 100644 build/lib/services/ExecutionEnvironmentService.js create mode 100644 build/lib/services/NotificationService/Documentation.d.ts create mode 100644 build/lib/services/NotificationService/Documentation.js create mode 100644 build/lib/services/NotificationService/index.d.ts create mode 100644 build/lib/services/NotificationService/index.js create mode 100644 build/lib/services/getPortalRootNode.d.ts create mode 100644 build/lib/services/getPortalRootNode.js create mode 100644 build/lib/services/index.d.ts create mode 100644 build/lib/services/index.js create mode 100644 build/lib/services/slugify.d.ts create mode 100644 build/lib/services/slugify.js create mode 100644 build/lib/styles/Documentation.d.ts create mode 100644 build/lib/styles/Documentation.js create mode 100644 build/lib/styles/ServerSideStyles.d.ts create mode 100644 build/lib/styles/ServerSideStyles.js create mode 100644 build/lib/styles/StaticGlobalStyles.d.ts create mode 100644 build/lib/styles/StaticGlobalStyles.js create mode 100644 build/lib/styles/classNames.d.ts create mode 100644 build/lib/styles/classNames.js create mode 100644 build/lib/styles/createUseStyles.d.ts create mode 100644 build/lib/styles/createUseStyles.js create mode 100644 build/lib/styles/index.d.ts create mode 100644 build/lib/styles/index.js create mode 100644 build/lib/styles/minifyCss.d.ts create mode 100644 build/lib/styles/minifyCss.js create mode 100644 build/lib/styles/removeServerSideStyles.d.ts create mode 100644 build/lib/styles/removeServerSideStyles.js create mode 100644 build/lib/styles/useCustomTheme.d.ts create mode 100644 build/lib/styles/useCustomTheme.js create mode 100644 build/lib/styles/useDevice.d.ts create mode 100644 build/lib/styles/useDevice.js create mode 100644 build/lib/styles/utils.d.ts create mode 100644 build/lib/styles/utils.js create mode 100644 build/lib/themes/BrandColors.d.ts create mode 100644 build/lib/themes/BrandColors.js create mode 100644 build/lib/themes/Breakpoints.d.ts create mode 100644 build/lib/themes/Breakpoints.js create mode 100644 build/lib/themes/DivisionColors.d.ts create mode 100644 build/lib/themes/DivisionColors.js create mode 100644 build/lib/themes/Documentation/index.d.ts create mode 100644 build/lib/themes/Documentation/index.js create mode 100644 build/lib/themes/Documentation/themes.d.ts create mode 100644 build/lib/themes/Documentation/themes.js create mode 100644 build/lib/themes/FontSizes.d.ts create mode 100644 build/lib/themes/FontSizes.js create mode 100644 build/lib/themes/InteractionColors.d.ts create mode 100644 build/lib/themes/InteractionColors.js create mode 100644 build/lib/themes/Pattern.d.ts create mode 100644 build/lib/themes/Pattern.js create mode 100644 build/lib/themes/Size.d.ts create mode 100644 build/lib/themes/Size.js create mode 100644 build/lib/themes/TheNativeWeb.d.ts create mode 100644 build/lib/themes/TheNativeWeb.js create mode 100644 build/lib/themes/Theme.d.ts create mode 100644 build/lib/themes/Theme.js create mode 100644 build/lib/themes/Wolkenkit.d.ts create mode 100644 build/lib/themes/Wolkenkit.js create mode 100644 build/lib/themes/index.d.ts create mode 100644 build/lib/themes/index.js create mode 100644 build/lib/types/ComponentClassNames.d.ts create mode 100644 build/lib/types/ComponentClassNames.js create mode 100644 build/lib/types/CssProperties.d.ts create mode 100644 build/lib/types/CssProperties.js create mode 100644 build/lib/types/IconSize.d.ts create mode 100644 build/lib/types/IconSize.js create mode 100644 build/lib/types/Language.d.ts create mode 100644 build/lib/types/Language.js create mode 100644 build/lib/types/LayoutComponent.d.ts create mode 100644 build/lib/types/LayoutComponent.js create mode 100644 build/lib/types/Length.d.ts create mode 100644 build/lib/types/Length.js create mode 100644 build/lib/types/MultiLanguagePageTree.d.ts create mode 100644 build/lib/types/MultiLanguagePageTree.js create mode 100644 build/lib/types/NestedCssProperties.d.ts create mode 100644 build/lib/types/NestedCssProperties.js create mode 100644 build/lib/types/ResponsiveSpaceDefinition.d.ts create mode 100644 build/lib/types/ResponsiveSpaceDefinition.js create mode 100644 build/lib/types/ResponsiveSpaceFactor.d.ts create mode 100644 build/lib/types/ResponsiveSpaceFactor.js create mode 100644 build/lib/types/ResponsiveSpaceProp.d.ts create mode 100644 build/lib/types/ResponsiveSpaceProp.js create mode 100644 build/lib/utils/getLanguageFromUrl.d.ts create mode 100644 build/lib/utils/getLanguageFromUrl.js create mode 100644 build/lib/utils/isDomNode.d.ts create mode 100644 build/lib/utils/isDomNode.js create mode 100644 build/lib/utils/isReactElement.d.ts create mode 100644 build/lib/utils/isReactElement.js create mode 100644 build/lib/utils/scrollToAnchor.d.ts create mode 100644 build/lib/utils/scrollToAnchor.js create mode 100644 build/lib/utils/toArray.d.ts create mode 100644 build/lib/utils/toArray.js create mode 100644 build/test/cli/getBrokenUrlsTests.d.ts create mode 100644 build/test/cli/getBrokenUrlsTests.js create mode 100644 build/test/cli/getPageTests.d.ts create mode 100644 build/test/cli/getPageTests.js create mode 100644 build/test/cli/getUrlsFromSitemapTests.d.ts create mode 100644 build/test/cli/getUrlsFromSitemapTests.js create mode 100644 build/test/cli/optimizeImages/optimizeImagesTests.d.ts create mode 100644 build/test/cli/optimizeImages/optimizeImagesTests.js create mode 100644 build/test/integration/components/layout/ContainerTests.d.ts create mode 100644 build/test/integration/components/layout/ContainerTests.js create mode 100644 build/test/integration/components/layout/GridItemTests.d.ts create mode 100644 build/test/integration/components/layout/GridItemTests.js create mode 100644 build/test/integration/components/layout/SidebarItemTests.d.ts create mode 100644 build/test/integration/components/layout/SidebarItemTests.js create mode 100644 build/test/integration/components/layout/SidebarTests.d.ts create mode 100644 build/test/integration/components/layout/SidebarTests.js create mode 100644 build/test/integration/components/layout/SpaceTests.d.ts create mode 100644 build/test/integration/components/layout/SpaceTests.js create mode 100644 build/test/integration/post.d.ts create mode 100644 build/test/integration/post.js create mode 100644 build/test/integration/pre.d.ts create mode 100644 build/test/integration/pre.js create mode 100644 build/test/integration/rendering/clientTests.d.ts create mode 100644 build/test/integration/rendering/clientTests.js create mode 100644 build/test/integration/rendering/serverTests.d.ts create mode 100644 build/test/integration/rendering/serverTests.js create mode 100644 build/test/integration/services/dialogsTests.d.ts create mode 100644 build/test/integration/services/dialogsTests.js create mode 100644 build/test/integration/services/notificationsTests.d.ts create mode 100644 build/test/integration/services/notificationsTests.js create mode 100644 build/test/integration/styles/classNamesTests.d.ts create mode 100644 build/test/integration/styles/classNamesTests.js create mode 100644 build/test/integration/themes/breakpointTests.d.ts create mode 100644 build/test/integration/themes/breakpointTests.js create mode 100644 build/test/integration/themes/extendTests.d.ts create mode 100644 build/test/integration/themes/extendTests.js create mode 100644 build/test/shared/act.d.ts create mode 100644 build/test/shared/act.js create mode 100644 build/test/shared/browser.d.ts create mode 100644 build/test/shared/browser.js create mode 100644 build/test/shared/containers/nginx.d.ts create mode 100644 build/test/shared/containers/nginx.js create mode 100644 build/test/shared/environment.d.ts create mode 100644 build/test/shared/environment.js create mode 100644 build/test/shared/eventDispatchers.d.ts create mode 100644 build/test/shared/eventDispatchers.js create mode 100644 build/test/shared/mocha/setupVirtualDom.d.ts create mode 100644 build/test/shared/mocha/setupVirtualDom.js create mode 100644 build/test/styleguide/brokenUrlsTests.d.ts create mode 100644 build/test/styleguide/brokenUrlsTests.js create mode 100644 build/test/styleguide/pre.d.ts create mode 100644 build/test/styleguide/pre.js create mode 100644 build/test/unit/branding/BrandTests.d.ts create mode 100644 build/test/unit/branding/BrandTests.js create mode 100644 build/test/unit/branding/MadeByTests.d.ts create mode 100644 build/test/unit/branding/MadeByTests.js create mode 100644 build/test/unit/branding/PatternTests.d.ts create mode 100644 build/test/unit/branding/PatternTests.js create mode 100644 build/test/unit/branding/PoweredByTests.d.ts create mode 100644 build/test/unit/branding/PoweredByTests.js create mode 100644 build/test/unit/branding/ProductTests.d.ts create mode 100644 build/test/unit/branding/ProductTests.js create mode 100644 build/test/unit/documentation/CodeTests.d.ts create mode 100644 build/test/unit/documentation/CodeTests.js create mode 100644 build/test/unit/documentation/formatAsPrettyStringTests.d.ts create mode 100644 build/test/unit/documentation/formatAsPrettyStringTests.js create mode 100644 build/test/unit/feedback/BusyIndicatorTests.d.ts create mode 100644 build/test/unit/feedback/BusyIndicatorTests.js create mode 100644 build/test/unit/feedback/DialogsTests.d.ts create mode 100644 build/test/unit/feedback/DialogsTests.js create mode 100644 build/test/unit/feedback/HighlightTextTests.d.ts create mode 100644 build/test/unit/feedback/HighlightTextTests.js create mode 100644 build/test/unit/feedback/MessageTests.d.ts create mode 100644 build/test/unit/feedback/MessageTests.js create mode 100644 build/test/unit/feedback/ModalTests.d.ts create mode 100644 build/test/unit/feedback/ModalTests.js create mode 100644 build/test/unit/feedback/NonIdealStateTests.d.ts create mode 100644 build/test/unit/feedback/NonIdealStateTests.js create mode 100644 build/test/unit/feedback/NotificationsTests.d.ts create mode 100644 build/test/unit/feedback/NotificationsTests.js create mode 100644 build/test/unit/forms/ControlGroupDividerTests.d.ts create mode 100644 build/test/unit/forms/ControlGroupDividerTests.js create mode 100644 build/test/unit/forms/ControlGroupItemTests.d.ts create mode 100644 build/test/unit/forms/ControlGroupItemTests.js create mode 100644 build/test/unit/forms/ControlGroupTests.d.ts create mode 100644 build/test/unit/forms/ControlGroupTests.js create mode 100644 build/test/unit/forms/FormActionsTests.d.ts create mode 100644 build/test/unit/forms/FormActionsTests.js create mode 100644 build/test/unit/forms/FormRowTests.d.ts create mode 100644 build/test/unit/forms/FormRowTests.js create mode 100644 build/test/unit/forms/FormTests.d.ts create mode 100644 build/test/unit/forms/FormTests.js create mode 100644 build/test/unit/graphics/IconTests.d.ts create mode 100644 build/test/unit/graphics/IconTests.js create mode 100644 build/test/unit/graphics/LogoFullTests.d.ts create mode 100644 build/test/unit/graphics/LogoFullTests.js create mode 100644 build/test/unit/graphics/LogoMinimalTests.d.ts create mode 100644 build/test/unit/graphics/LogoMinimalTests.js create mode 100644 build/test/unit/graphics/LogoTheNativeWebTests.d.ts create mode 100644 build/test/unit/graphics/LogoTheNativeWebTests.js create mode 100644 build/test/unit/graphics/LogoWolkenkitTests.d.ts create mode 100644 build/test/unit/graphics/LogoWolkenkitTests.js create mode 100644 build/test/unit/input/ButtonHintTests.d.ts create mode 100644 build/test/unit/input/ButtonHintTests.js create mode 100644 build/test/unit/input/ButtonTests.d.ts create mode 100644 build/test/unit/input/ButtonTests.js create mode 100644 build/test/unit/input/CheckboxTests.d.ts create mode 100644 build/test/unit/input/CheckboxTests.js create mode 100644 build/test/unit/input/DropdownTests.d.ts create mode 100644 build/test/unit/input/DropdownTests.js create mode 100644 build/test/unit/input/LinkTests.d.ts create mode 100644 build/test/unit/input/LinkTests.js create mode 100644 build/test/unit/input/TextAreaTests.d.ts create mode 100644 build/test/unit/input/TextAreaTests.js create mode 100644 build/test/unit/input/TextBoxTests.d.ts create mode 100644 build/test/unit/input/TextBoxTests.js create mode 100644 build/test/unit/input/ToggleTests.d.ts create mode 100644 build/test/unit/input/ToggleTests.js create mode 100644 build/test/unit/layout/ContainerTests.d.ts create mode 100644 build/test/unit/layout/ContainerTests.js create mode 100644 build/test/unit/layout/FooterTests.d.ts create mode 100644 build/test/unit/layout/FooterTests.js create mode 100644 build/test/unit/layout/GridItemTests.d.ts create mode 100644 build/test/unit/layout/GridItemTests.js create mode 100644 build/test/unit/layout/GridTests.d.ts create mode 100644 build/test/unit/layout/GridTests.js create mode 100644 build/test/unit/layout/HorizontalBarTests.d.ts create mode 100644 build/test/unit/layout/HorizontalBarTests.js create mode 100644 build/test/unit/layout/SidebarBrandTests.d.ts create mode 100644 build/test/unit/layout/SidebarBrandTests.js create mode 100644 build/test/unit/layout/SidebarFooterTests.d.ts create mode 100644 build/test/unit/layout/SidebarFooterTests.js create mode 100644 build/test/unit/layout/SidebarItemTests.d.ts create mode 100644 build/test/unit/layout/SidebarItemTests.js create mode 100644 build/test/unit/layout/SidebarTests.d.ts create mode 100644 build/test/unit/layout/SidebarTests.js create mode 100644 build/test/unit/layout/SpaceTests.d.ts create mode 100644 build/test/unit/layout/SpaceTests.js create mode 100644 build/test/unit/navigation/BreadcrumbsTests.d.ts create mode 100644 build/test/unit/navigation/BreadcrumbsTests.js create mode 100644 build/test/unit/navigation/PageNavigationTests.d.ts create mode 100644 build/test/unit/navigation/PageNavigationTests.js create mode 100644 build/test/unit/navigation/PageTree/PageTreeSearchTests.d.ts create mode 100644 build/test/unit/navigation/PageTree/PageTreeSearchTests.js create mode 100644 build/test/unit/roots/ApplicationTests.d.ts create mode 100644 build/test/unit/roots/ApplicationTests.js create mode 100644 build/test/unit/roots/WebsiteTests.d.ts create mode 100644 build/test/unit/roots/WebsiteTests.js create mode 100644 build/test/unit/typography/HeadlineTests.d.ts create mode 100644 build/test/unit/typography/HeadlineTests.js create mode 100644 build/test/unit/typography/LabelTests.d.ts create mode 100644 build/test/unit/typography/LabelTests.js create mode 100644 build/test/unit/typography/TextTests.d.ts create mode 100644 build/test/unit/typography/TextTests.js diff --git a/.gitignore b/.gitignore index 9001427e..a73d1ea0 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,6 @@ *node_modules/ # Build artefacts -*build/ .next/ styleguide/out test/shared/sampleApplication/out diff --git a/build/lib/Documentation.d.ts b/build/lib/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/Documentation.js b/build/lib/Documentation.js new file mode 100644 index 00000000..b809784f --- /dev/null +++ b/build/lib/Documentation.js @@ -0,0 +1,130 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const _1 = require("."); +const react_1 = __importDefault(require("react")); +const Documentation = () => (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(_1.Headline, null, "thenativeweb-ux"), + react_1.default.createElement(_1.Paragraph, null, "thenativeweb-ux provides UI components for the native web applications."), + react_1.default.createElement(_1.Headline, { level: '2' }, "Quick start"), + react_1.default.createElement(_1.Paragraph, null, + "First you need to install the module. ", + react_1.default.createElement("code", null, "thenativeweb-ux"), + " builds upon ", + react_1.default.createElement("code", null, "React"), + " and ", + react_1.default.createElement("code", null, "Next.js"), + ", so make sure to install them as well."), + react_1.default.createElement(_1.Code, { language: 'shell' }, ` + npm install thenativeweb-ux react react-dom next + `), + react_1.default.createElement(_1.Headline, { level: '3' }, "Create a theme"), + react_1.default.createElement(_1.Paragraph, null, "To style your application, you need to create a theme:"), + react_1.default.createElement(_1.Code, { language: 'shell' }, ` + touch theme.ts + `), + react_1.default.createElement(_1.Paragraph, null, "In most of the cases you can just use one of the built-in themes:"), + react_1.default.createElement(_1.Code, { language: 'typescript', showLineNumbers: true }, ` + import { themes } from 'thenativeweb-ux'; + + const theme = new themes.TheNativeWeb(); + + export { theme }; + `), + react_1.default.createElement(_1.Headline, { level: '3' }, "Create a document"), + react_1.default.createElement(_1.Paragraph, null, + "To setup server side rendering of the critical styles for your application, create a custom ", + react_1.default.createElement("code", null, "_document.ts"), + "."), + react_1.default.createElement(_1.Code, { language: 'shell' }, ` + mkdir pages + touch pages/_document.ts + `), + react_1.default.createElement(_1.Paragraph, null, + "Import and extend the ", + react_1.default.createElement("code", null, "NextDocument"), + " component. Make sure to override its ", + react_1.default.createElement("code", null, "getInitialProps"), + " method. Use the static method ", + react_1.default.createElement("code", null, "NextDocument.getInitialPropsWithTheme"), + " to setup your theme:"), + react_1.default.createElement(_1.Code, { language: 'typescript', showLineNumbers: true }, ` + import { NextDocument } from 'thenativeweb-ux'; + import { theme } from '../theme'; + import { DocumentContext, DocumentInitialProps } from 'next/document'; + + class CustomDocument extends NextDocument { + public static async getInitialProps (originalContext: DocumentContext): Promise { + return NextDocument.getInitialPropsWithTheme(originalContext, theme); + } + } + + export default CustomDocument; + `), + react_1.default.createElement(_1.Headline, { level: '3' }, "Create an app"), + react_1.default.createElement(_1.Paragraph, null, + "To remove server side styles once the application has been loaded on the client, create a custom ", + react_1.default.createElement("code", null, "_app.ts"), + ":"), + react_1.default.createElement(_1.Code, { language: 'shell' }, ` + touch pages/_app.ts + `), + react_1.default.createElement(_1.Paragraph, null, + "Import and extend the ", + react_1.default.createElement("code", null, "NextApp"), + " component. Override its ", + react_1.default.createElement("code", null, "render"), + " method. Use the ", + react_1.default.createElement("code", null, "NextApp.renderWithTheme"), + " to setup your theme properly. You can render any HTML here that you might need for your application."), + react_1.default.createElement(_1.Code, { language: 'tsx', showLineNumbers: true }, ` + import { theme } from '../theme'; + import { NextApp, Website } from 'thenativeweb-ux'; + import React, { ReactElement } from 'react'; + + class CustomApp extends NextApp { + public render (): ReactElement { + const { Component, pageProps } = this.props; + + return NextApp.renderWithTheme(( + + + + ), theme); + } + } + + export default CustomApp; + `), + react_1.default.createElement(_1.Headline, { level: '3' }, "Create your first page"), + react_1.default.createElement(_1.Paragraph, null, "Add an index page to your application:"), + react_1.default.createElement(_1.Code, { language: 'shell' }, ` + touch pages/index.tsx + `), + react_1.default.createElement(_1.Paragraph, null, + "Besides setting up the page itself, you may also use a variety of components. To use a component, you need to add a reference to it. E.g., to use the ", + react_1.default.createElement("code", null, "Headline"), + " component, add the following line to your code:"), + react_1.default.createElement(_1.Code, { language: 'tsx', showLineNumbers: true }, ` + import React, { ReactElement, Fragment } from 'react'; + import { Paragraph, Headline } from 'thenativeweb-ux'; + + export default (): ReactElement => ( + + Your first page + Now go ahead and add more components… + + ); + `), + react_1.default.createElement(_1.Headline, { level: '3' }, "Runing your application"), + react_1.default.createElement(_1.Paragraph, null, + "Finally, you can run your application using the ", + react_1.default.createElement("code", null, "next"), + " CLI:"), + react_1.default.createElement(_1.Code, { language: 'shell' }, ` + npx next dev + `))); +exports.Documentation = Documentation; diff --git a/build/lib/NextApp.d.ts b/build/lib/NextApp.d.ts new file mode 100644 index 00000000..7b7b3dea --- /dev/null +++ b/build/lib/NextApp.d.ts @@ -0,0 +1,8 @@ +import App from 'next/app'; +import { ReactElement } from 'react'; +import { Theme } from '.'; +declare class NextApp extends App { + componentDidMount(): void; + static renderWithTheme(children: ReactElement, theme: Theme): ReactElement; +} +export { NextApp }; diff --git a/build/lib/NextApp.js b/build/lib/NextApp.js new file mode 100644 index 00000000..bc35da57 --- /dev/null +++ b/build/lib/NextApp.js @@ -0,0 +1,20 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NextApp = void 0; +const app_1 = __importDefault(require("next/app")); +const react_1 = __importDefault(require("react")); +const _1 = require("."); +class NextApp extends app_1.default { + /* eslint-disable class-methods-use-this */ + componentDidMount() { + (0, _1.removeServerSideStyles)(); + } + /* eslint-enable class-methods-use-this */ + static renderWithTheme(children, theme) { + return (react_1.default.createElement(_1.ThemeProvider, { theme: theme }, children)); + } +} +exports.NextApp = NextApp; diff --git a/build/lib/NextDocument.d.ts b/build/lib/NextDocument.d.ts new file mode 100644 index 00000000..b6cba70f --- /dev/null +++ b/build/lib/NextDocument.d.ts @@ -0,0 +1,6 @@ +import Document, { DocumentContext, DocumentInitialProps } from 'next/document'; +import { Theme } from '.'; +declare class NextDocument extends Document { + static getInitialPropsWithTheme(originalContext: DocumentContext, theme: Theme): Promise; +} +export { NextDocument }; diff --git a/build/lib/NextDocument.js b/build/lib/NextDocument.js new file mode 100644 index 00000000..f5d5032e --- /dev/null +++ b/build/lib/NextDocument.js @@ -0,0 +1,35 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NextDocument = void 0; +const document_1 = __importDefault(require("next/document")); +const react_1 = __importDefault(require("react")); +const _1 = require("."); +class NextDocument extends document_1.default { + static async getInitialPropsWithTheme(originalContext, theme) { + const serverSideStyles = new _1.ServerSideStyles(); + const staticGlobalStyles = new _1.StaticGlobalStyles({ theme }); + const customContext = { + ...originalContext, + async renderPage() { + return await originalContext.renderPage({ + enhanceApp(App) { + return (props) => (react_1.default.createElement(_1.StyleCollector, { serverSideStyles: serverSideStyles }, + react_1.default.createElement(App, { ...props }))); + } + }); + } + }; + const initialProps = await NextDocument.getInitialProps(customContext); + return { + ...initialProps, + styles: (react_1.default.createElement(react_1.default.Fragment, null, + initialProps.styles, + serverSideStyles.generateStyleTag(), + staticGlobalStyles.generateStyleTag())) + }; + } +} +exports.NextDocument = NextDocument; diff --git a/build/lib/bin/getHandlers.d.ts b/build/lib/bin/getHandlers.d.ts new file mode 100644 index 00000000..e99cc594 --- /dev/null +++ b/build/lib/bin/getHandlers.d.ts @@ -0,0 +1,3 @@ +import { Handlers } from 'command-line-interface'; +declare const getHandlers: () => Partial; +export { getHandlers }; diff --git a/build/lib/bin/getHandlers.js b/build/lib/bin/getHandlers.js new file mode 100644 index 00000000..8b20e0bf --- /dev/null +++ b/build/lib/bin/getHandlers.js @@ -0,0 +1,27 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getHandlers = void 0; +const buntstift_1 = require("buntstift"); +const getHandlers = function () { + return { + commandFailed({ ex }) { + var _a; + if (ex.stack) { + buntstift_1.buntstift.verbose((_a = ex.stack) !== null && _a !== void 0 ? _a : '', { isVerboseModeEnabled: true }); + } + }, + commandUnknown({ unknownCommandName, recommendedCommandName }) { + buntstift_1.buntstift.error(`Unknown command '${unknownCommandName}', did you mean '${recommendedCommandName}'?`); + }, + optionInvalid({ reason }) { + buntstift_1.buntstift.error(reason); + }, + optionMissing({ optionDefinition }) { + buntstift_1.buntstift.error(`Option '${optionDefinition.name}' is missing.`); + }, + optionUnknown({ optionName }) { + buntstift_1.buntstift.error(`Unknown option '${optionName}'.`); + } + }; +}; +exports.getHandlers = getHandlers; diff --git a/build/lib/bin/ux.d.ts b/build/lib/bin/ux.d.ts new file mode 100644 index 00000000..b7988016 --- /dev/null +++ b/build/lib/bin/ux.d.ts @@ -0,0 +1,2 @@ +#!/usr/bin/env node +export {}; diff --git a/build/lib/bin/ux.js b/build/lib/bin/ux.js new file mode 100644 index 00000000..ad62c0c8 --- /dev/null +++ b/build/lib/bin/ux.js @@ -0,0 +1,23 @@ +#!/usr/bin/env node +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const buntstift_1 = require("buntstift"); +const getHandlers_1 = require("./getHandlers"); +const rootCommand_1 = require("../cli/rootCommand"); +const command_line_interface_1 = require("command-line-interface"); +/* eslint-disable @typescript-eslint/no-floating-promises */ +(async () => { + try { + await (0, command_line_interface_1.runCli)({ + rootCommand: (0, rootCommand_1.rootCommand)(), + argv: process.argv, + handlers: (0, getHandlers_1.getHandlers)() + }); + } + catch (ex) { + buntstift_1.buntstift.info(ex.message); + buntstift_1.buntstift.error('An unexpected error occured.'); + process.exit(1); + } +})(); +/* eslint-enable @typescript-eslint/no-floating-promises */ diff --git a/build/lib/cli/RootOptions.d.ts b/build/lib/cli/RootOptions.d.ts new file mode 100644 index 00000000..90e6034d --- /dev/null +++ b/build/lib/cli/RootOptions.d.ts @@ -0,0 +1,3 @@ +export interface RootOptions { + verbose: boolean; +} diff --git a/build/lib/cli/RootOptions.js b/build/lib/cli/RootOptions.js new file mode 100644 index 00000000..c8ad2e54 --- /dev/null +++ b/build/lib/cli/RootOptions.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/build/lib/cli/noop.d.ts b/build/lib/cli/noop.d.ts new file mode 100644 index 00000000..91028d86 --- /dev/null +++ b/build/lib/cli/noop.d.ts @@ -0,0 +1,2 @@ +declare const noop: () => void; +export { noop }; diff --git a/build/lib/cli/noop.js b/build/lib/cli/noop.js new file mode 100644 index 00000000..3c8ca137 --- /dev/null +++ b/build/lib/cli/noop.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.noop = void 0; +const noop = () => { + // Intentionally left blank. +}; +exports.noop = noop; diff --git a/build/lib/cli/optimizeImages/OptimizeImagesOptions.d.ts b/build/lib/cli/optimizeImages/OptimizeImagesOptions.d.ts new file mode 100644 index 00000000..d59e1201 --- /dev/null +++ b/build/lib/cli/optimizeImages/OptimizeImagesOptions.d.ts @@ -0,0 +1,5 @@ +import { RootOptions } from '../RootOptions'; +export interface OptimizeImagesOptions extends RootOptions { + source: string; + destination: string; +} diff --git a/build/lib/cli/optimizeImages/OptimizeImagesOptions.js b/build/lib/cli/optimizeImages/OptimizeImagesOptions.js new file mode 100644 index 00000000..c8ad2e54 --- /dev/null +++ b/build/lib/cli/optimizeImages/OptimizeImagesOptions.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/build/lib/cli/optimizeImages/optimizeImages.d.ts b/build/lib/cli/optimizeImages/optimizeImages.d.ts new file mode 100644 index 00000000..689fb2cb --- /dev/null +++ b/build/lib/cli/optimizeImages/optimizeImages.d.ts @@ -0,0 +1,6 @@ +declare const optimizeImages: ({ source, destination, verbose }: { + source: string; + destination: string; + verbose: boolean; +}) => Promise; +export { optimizeImages }; diff --git a/build/lib/cli/optimizeImages/optimizeImages.js b/build/lib/cli/optimizeImages/optimizeImages.js new file mode 100644 index 00000000..4e27cb83 --- /dev/null +++ b/build/lib/cli/optimizeImages/optimizeImages.js @@ -0,0 +1,45 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.optimizeImages = void 0; +const buntstift_1 = require("buntstift"); +const fs_extra_1 = require("fs-extra"); +const globby_1 = __importDefault(require("globby")); +const optimizeJpg_1 = require("./optimizeJpg"); +const optimizePng_1 = require("./optimizePng"); +const optimizeSvg_1 = require("./optimizeSvg"); +const os_1 = __importDefault(require("os")); +const path_1 = __importDefault(require("path")); +const p_queue_1 = __importDefault(require("p-queue")); +const optimizerForExtension = { + jpg: optimizeJpg_1.optimizeJpg, + jpeg: optimizeJpg_1.optimizeJpg, + png: optimizePng_1.optimizePng, + svg: optimizeSvg_1.optimizeSvg +}; +const supportedExtensions = Object.keys(optimizerForExtension); +const optimizeImages = async function ({ source, destination, verbose }) { + const queue = new p_queue_1.default({ concurrency: os_1.default.cpus().length }); + const imagePaths = await (0, globby_1.default)(source, { + expandDirectories: { + extensions: supportedExtensions + } + }); + for (const imagePath of imagePaths) { + const relativeimagePath = path_1.default.relative(source, imagePath); + const extensionName = path_1.default.extname(imagePath).toLowerCase().replace('.', ''); + const destinationPath = path_1.default.join(destination, relativeimagePath); + const optimizeImage = optimizerForExtension[extensionName]; + // eslint-disable-next-line @typescript-eslint/no-floating-promises + queue.add(async () => { + buntstift_1.buntstift.verbose(`Optimizing '${imagePath}'...`); + await (0, fs_extra_1.ensureFile)(destinationPath); + await optimizeImage({ source: imagePath, destination: destinationPath, verbose }); + buntstift_1.buntstift.verbose(`Optimized '${imagePath}'.`); + }); + } + await queue.onIdle(); +}; +exports.optimizeImages = optimizeImages; diff --git a/build/lib/cli/optimizeImages/optimizeImagesCommand.d.ts b/build/lib/cli/optimizeImages/optimizeImagesCommand.d.ts new file mode 100644 index 00000000..eb84c2e2 --- /dev/null +++ b/build/lib/cli/optimizeImages/optimizeImagesCommand.d.ts @@ -0,0 +1,4 @@ +import { Command } from 'command-line-interface'; +import { OptimizeImagesOptions } from './OptimizeImagesOptions'; +declare const optimizeImagesCommand: () => Command; +export { optimizeImagesCommand }; diff --git a/build/lib/cli/optimizeImages/optimizeImagesCommand.js b/build/lib/cli/optimizeImages/optimizeImagesCommand.js new file mode 100644 index 00000000..18f40fc6 --- /dev/null +++ b/build/lib/cli/optimizeImages/optimizeImagesCommand.js @@ -0,0 +1,41 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.optimizeImagesCommand = void 0; +const buntstift_1 = require("buntstift"); +const optimizeImages_1 = require("./optimizeImages"); +const optimizeImagesCommand = function () { + return { + name: 'optimize-images', + description: 'Optimizes the size of .jpg, .png, and .svg images.', + optionDefinitions: [ + { + name: 'source', + alias: 's', + description: 'set the source directory', + parameterName: 'path', + type: 'string', + isRequired: true + }, + { + name: 'destination', + alias: 'd', + description: 'set the destination directory', + parameterName: 'path', + type: 'string', + isRequired: true + } + ], + async handle({ options: { verbose, source, destination } }) { + buntstift_1.buntstift.configure(buntstift_1.buntstift.getConfiguration(). + withVerboseMode(verbose)); + const stopWaiting = buntstift_1.buntstift.wait(); + try { + await (0, optimizeImages_1.optimizeImages)({ source, destination, verbose }); + } + finally { + stopWaiting(); + } + } + }; +}; +exports.optimizeImagesCommand = optimizeImagesCommand; diff --git a/build/lib/cli/optimizeImages/optimizeJpg.d.ts b/build/lib/cli/optimizeImages/optimizeJpg.d.ts new file mode 100644 index 00000000..ff140799 --- /dev/null +++ b/build/lib/cli/optimizeImages/optimizeJpg.d.ts @@ -0,0 +1,6 @@ +declare const optimizeJpg: ({ source, destination, verbose }: { + source: string; + destination: string; + verbose: boolean; +}) => Promise; +export { optimizeJpg }; diff --git a/build/lib/cli/optimizeImages/optimizeJpg.js b/build/lib/cli/optimizeImages/optimizeJpg.js new file mode 100644 index 00000000..83de6f2d --- /dev/null +++ b/build/lib/cli/optimizeImages/optimizeJpg.js @@ -0,0 +1,20 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.optimizeJpg = void 0; +const mozjpeg_1 = __importDefault(require("mozjpeg")); +const shelljs_1 = __importDefault(require("shelljs")); +const optimizeJpg = async function ({ source, destination, verbose }) { + const cwd = process.cwd(); + await new Promise((resolve, reject) => { + shelljs_1.default.exec(`${mozjpeg_1.default} -progressive -quality 70 -outfile '${destination}' '${source}'`, { cwd, silent: !verbose }, (code) => { + if (code !== 0) { + return reject(new Error(`Failed to optimize '${source}'.`)); + } + resolve(); + }); + }); +}; +exports.optimizeJpg = optimizeJpg; diff --git a/build/lib/cli/optimizeImages/optimizePng.d.ts b/build/lib/cli/optimizeImages/optimizePng.d.ts new file mode 100644 index 00000000..35a42936 --- /dev/null +++ b/build/lib/cli/optimizeImages/optimizePng.d.ts @@ -0,0 +1,6 @@ +declare const optimizePng: ({ source, destination, verbose }: { + source: string; + destination: string; + verbose: boolean; +}) => Promise; +export { optimizePng }; diff --git a/build/lib/cli/optimizeImages/optimizePng.js b/build/lib/cli/optimizeImages/optimizePng.js new file mode 100644 index 00000000..67cddfe3 --- /dev/null +++ b/build/lib/cli/optimizeImages/optimizePng.js @@ -0,0 +1,20 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.optimizePng = void 0; +const pngquant_bin_1 = __importDefault(require("pngquant-bin")); +const shelljs_1 = __importDefault(require("shelljs")); +const optimizePng = async function ({ source, destination, verbose }) { + const cwd = process.cwd(); + await new Promise((resolve, reject) => { + shelljs_1.default.exec(`${pngquant_bin_1.default} --force --quality=80-90 --output '${destination}' '${source}'`, { cwd, silent: !verbose }, (code) => { + if (code !== 0) { + return reject(new Error(`Failed to optimize '${source}'.`)); + } + resolve(); + }); + }); +}; +exports.optimizePng = optimizePng; diff --git a/build/lib/cli/optimizeImages/optimizeSvg.d.ts b/build/lib/cli/optimizeImages/optimizeSvg.d.ts new file mode 100644 index 00000000..bcc21e43 --- /dev/null +++ b/build/lib/cli/optimizeImages/optimizeSvg.d.ts @@ -0,0 +1,6 @@ +declare const optimizeSvg: ({ source, destination, verbose }: { + source: string; + destination: string; + verbose: boolean; +}) => Promise; +export { optimizeSvg }; diff --git a/build/lib/cli/optimizeImages/optimizeSvg.js b/build/lib/cli/optimizeImages/optimizeSvg.js new file mode 100644 index 00000000..d911616d --- /dev/null +++ b/build/lib/cli/optimizeImages/optimizeSvg.js @@ -0,0 +1,19 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.optimizeSvg = void 0; +const shelljs_1 = __importDefault(require("shelljs")); +const optimizeSvg = async function ({ source, destination, verbose }) { + const cwd = process.cwd(); + await new Promise((resolve, reject) => { + shelljs_1.default.exec(`npx svgo '${source}' -o '${destination}'`, { cwd, silent: !verbose }, (code) => { + if (code !== 0) { + return reject(new Error(`Failed to optimize '${source}'.`)); + } + resolve(); + }); + }); +}; +exports.optimizeSvg = optimizeSvg; diff --git a/build/lib/cli/rootCommand.d.ts b/build/lib/cli/rootCommand.d.ts new file mode 100644 index 00000000..fbf502eb --- /dev/null +++ b/build/lib/cli/rootCommand.d.ts @@ -0,0 +1,4 @@ +import { Command } from 'command-line-interface'; +import { RootOptions } from './RootOptions'; +declare const rootCommand: () => Command; +export { rootCommand }; diff --git a/build/lib/cli/rootCommand.js b/build/lib/cli/rootCommand.js new file mode 100644 index 00000000..97094a29 --- /dev/null +++ b/build/lib/cli/rootCommand.js @@ -0,0 +1,30 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.rootCommand = void 0; +const optimizeImagesCommand_1 = require("./optimizeImages/optimizeImagesCommand"); +const verifyLinksCommand_1 = require("./verifyLinks/verifyLinksCommand"); +const rootCommand = function () { + return { + name: 'ux', + description: 'Provides UX management.', + optionDefinitions: [ + { + name: 'verbose', + alias: 'v', + description: 'enable verbose mode', + type: 'boolean', + isRequired: false, + defaultValue: false + } + ], + handle({ getUsage }) { + // eslint-disable-next-line no-console + console.log(getUsage({ commandPath: ['ux'] })); + }, + subcommands: { + 'optimize-images': (0, optimizeImagesCommand_1.optimizeImagesCommand)(), + 'verify-links': (0, verifyLinksCommand_1.verifyLinksCommand)() + } + }; +}; +exports.rootCommand = rootCommand; diff --git a/build/lib/cli/verifyLinks/BrokenUrl.d.ts b/build/lib/cli/verifyLinks/BrokenUrl.d.ts new file mode 100644 index 00000000..bbb7c9e9 --- /dev/null +++ b/build/lib/cli/verifyLinks/BrokenUrl.d.ts @@ -0,0 +1,4 @@ +export interface BrokenUrl { + url: string; + referrers?: string[]; +} diff --git a/build/lib/cli/verifyLinks/BrokenUrl.js b/build/lib/cli/verifyLinks/BrokenUrl.js new file mode 100644 index 00000000..c8ad2e54 --- /dev/null +++ b/build/lib/cli/verifyLinks/BrokenUrl.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/build/lib/cli/verifyLinks/VerifyLinksOptions.d.ts b/build/lib/cli/verifyLinks/VerifyLinksOptions.d.ts new file mode 100644 index 00000000..83d00caf --- /dev/null +++ b/build/lib/cli/verifyLinks/VerifyLinksOptions.d.ts @@ -0,0 +1,6 @@ +import { RootOptions } from '../RootOptions'; +export interface VerifyLinksOptions extends RootOptions { + url: string; + sitemap?: string; + ignore?: string; +} diff --git a/build/lib/cli/verifyLinks/VerifyLinksOptions.js b/build/lib/cli/verifyLinks/VerifyLinksOptions.js new file mode 100644 index 00000000..c8ad2e54 --- /dev/null +++ b/build/lib/cli/verifyLinks/VerifyLinksOptions.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/build/lib/cli/verifyLinks/getAbsolutePath.d.ts b/build/lib/cli/verifyLinks/getAbsolutePath.d.ts new file mode 100644 index 00000000..d3808a36 --- /dev/null +++ b/build/lib/cli/verifyLinks/getAbsolutePath.d.ts @@ -0,0 +1,5 @@ +declare const getAbsolutePath: ({ path, cwd }: { + path: string; + cwd: string; +}) => string; +export { getAbsolutePath }; diff --git a/build/lib/cli/verifyLinks/getAbsolutePath.js b/build/lib/cli/verifyLinks/getAbsolutePath.js new file mode 100644 index 00000000..5a2e1a60 --- /dev/null +++ b/build/lib/cli/verifyLinks/getAbsolutePath.js @@ -0,0 +1,18 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getAbsolutePath = void 0; +const untildify_1 = __importDefault(require("untildify")); +// eslint-disable-next-line unicorn/import-style +const path_1 = require("path"); +const getAbsolutePath = function ({ path, cwd }) { + const untilfiedPath = (0, untildify_1.default)(path); + if ((0, path_1.isAbsolute)(untilfiedPath)) { + return untilfiedPath; + } + const absolutePath = (0, path_1.join)(cwd, path); + return absolutePath; +}; +exports.getAbsolutePath = getAbsolutePath; diff --git a/build/lib/cli/verifyLinks/getBrokenUrls.d.ts b/build/lib/cli/verifyLinks/getBrokenUrls.d.ts new file mode 100644 index 00000000..3e86eb25 --- /dev/null +++ b/build/lib/cli/verifyLinks/getBrokenUrls.d.ts @@ -0,0 +1,14 @@ +import { BrokenUrl } from './BrokenUrl'; +declare const getBrokenUrls: ({ urls, baseUrl, ignore, onVerifying, onBrokenUrl }: { + urls: string[]; + baseUrl: string; + ignore?: RegExp[]; + onVerifying?: ({ url }: { + url: string; + }) => void; + onBrokenUrl?: ({ url, referrers }: { + url: string; + referrers?: string[]; + }) => void; +}) => Promise; +export { getBrokenUrls }; diff --git a/build/lib/cli/verifyLinks/getBrokenUrls.js b/build/lib/cli/verifyLinks/getBrokenUrls.js new file mode 100644 index 00000000..90a77048 --- /dev/null +++ b/build/lib/cli/verifyLinks/getBrokenUrls.js @@ -0,0 +1,55 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getBrokenUrls = void 0; +const lodash_1 = require("lodash"); +const getExternalUrlsFromPage_1 = require("./getExternalUrlsFromPage"); +const noop_1 = require("../noop"); +const getPage_1 = require("./getPage"); +const getBrokenUrls = async function ({ urls, baseUrl, ignore = [], onVerifying = noop_1.noop, onBrokenUrl = noop_1.noop }) { + const brokenUrls = []; + const urlsToVerify = (0, lodash_1.cloneDeep)(urls); + const verifiedUrls = []; + const referrers = {}; + // eslint-disable-next-line no-constant-condition, @typescript-eslint/no-unnecessary-condition + while (true) { + const currentUrl = urlsToVerify.pop(); + if (!currentUrl) { + break; + } + onVerifying({ url: currentUrl }); + verifiedUrls.push(currentUrl); + let page; + try { + page = await (0, getPage_1.getPage)({ url: currentUrl }); + } + catch { + brokenUrls.push({ url: currentUrl, referrers: referrers[currentUrl] }); + onBrokenUrl({ url: currentUrl, referrers: referrers[currentUrl] }); + continue; + } + if (!currentUrl.startsWith(baseUrl)) { + continue; + } + const externalUrls = (0, getExternalUrlsFromPage_1.getExternalUrlsFromPage)({ page, baseUrl }); + for (const externalUrl of externalUrls) { + if (!referrers[externalUrl]) { + referrers[externalUrl] = []; + } + if (!referrers[externalUrl].includes(currentUrl)) { + referrers[externalUrl].push(currentUrl); + } + if (verifiedUrls.includes(externalUrl)) { + continue; + } + if (ignore.some((ignorePattern) => ignorePattern.test(externalUrl))) { + continue; + } + if (!urlsToVerify.includes(externalUrl)) { + urlsToVerify.push(externalUrl); + } + } + page.destroy(); + } + return brokenUrls; +}; +exports.getBrokenUrls = getBrokenUrls; diff --git a/build/lib/cli/verifyLinks/getExternalUrlsFromPage.d.ts b/build/lib/cli/verifyLinks/getExternalUrlsFromPage.d.ts new file mode 100644 index 00000000..9c89bcc0 --- /dev/null +++ b/build/lib/cli/verifyLinks/getExternalUrlsFromPage.d.ts @@ -0,0 +1,6 @@ +import { Page } from './getPage'; +declare const getExternalUrlsFromPage: ({ page, baseUrl }: { + page: Page; + baseUrl: string; +}) => string[]; +export { getExternalUrlsFromPage }; diff --git a/build/lib/cli/verifyLinks/getExternalUrlsFromPage.js b/build/lib/cli/verifyLinks/getExternalUrlsFromPage.js new file mode 100644 index 00000000..0dd13a86 --- /dev/null +++ b/build/lib/cli/verifyLinks/getExternalUrlsFromPage.js @@ -0,0 +1,35 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getExternalUrlsFromPage = void 0; +const toArray_1 = require("../../utils/toArray"); +const getExternalUrlsFromPage = function ({ page, baseUrl }) { + var _a; + const urls = []; + const linkElements = (0, toArray_1.toArray)(page.document.querySelectorAll('a[href]')); + for (const linkElement of linkElements) { + let url = linkElement.getAttribute('href'); + if (!url) { + continue; + } + if (url.startsWith('#') || url.startsWith('mailto:')) { + continue; + } + if (url.startsWith('/')) { + url = `${baseUrl}${url}`; + } + urls.push(url); + } + const metaRedirectContent = (_a = page.document.querySelector('head meta[http-equiv="refresh"]')) === null || _a === void 0 ? void 0 : _a.getAttribute('content'); + if (metaRedirectContent) { + const results = /url=(?.*)$/u.exec(metaRedirectContent); + if (results && results[1]) { + let url = results[1]; + if (url.startsWith('/')) { + url = `${baseUrl}${url}`; + } + urls.push(url); + } + } + return urls; +}; +exports.getExternalUrlsFromPage = getExternalUrlsFromPage; diff --git a/build/lib/cli/verifyLinks/getPage.d.ts b/build/lib/cli/verifyLinks/getPage.d.ts new file mode 100644 index 00000000..2b9b7d6c --- /dev/null +++ b/build/lib/cli/verifyLinks/getPage.d.ts @@ -0,0 +1,8 @@ +export interface Page { + document: Document; + destroy: () => void; +} +declare const getPage: ({ url }: { + url: string; +}) => Promise; +export { getPage }; diff --git a/build/lib/cli/verifyLinks/getPage.js b/build/lib/cli/verifyLinks/getPage.js new file mode 100644 index 00000000..8e213e7a --- /dev/null +++ b/build/lib/cli/verifyLinks/getPage.js @@ -0,0 +1,36 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getPage = void 0; +const axios_1 = __importDefault(require("axios")); +const jsdom_1 = require("jsdom"); +const getPage = async ({ url }) => { + const { data } = await (0, axios_1.default)({ + method: 'get', + url, + headers: { + // By default, axios accepts JSON. This makes some websites think that we + // are a bot, not a browser (actually, we *are* a bot, but we want to be + // treated like a browser). E.g., this makes a difference when accessing + // GitHub. So, to get the desired behavior, accept anything. + accept: '*/*', + // Twitter stopped serving to axios, based on its user agent. We use a + // browser-style user agent here to trick Twitter into serving us anyway. + 'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0' + } + }); + const { window } = new jsdom_1.JSDOM(data, { + // eslint-disable-next-line @typescript-eslint/naming-convention + virtualConsole: new jsdom_1.VirtualConsole().sendTo(console, { omitJSDOMErrors: true }) + }); + const page = { + document: window.document, + destroy() { + window.close(); + } + }; + return page; +}; +exports.getPage = getPage; diff --git a/build/lib/cli/verifyLinks/getUrlsFromSitemap.d.ts b/build/lib/cli/verifyLinks/getUrlsFromSitemap.d.ts new file mode 100644 index 00000000..76f42caa --- /dev/null +++ b/build/lib/cli/verifyLinks/getUrlsFromSitemap.d.ts @@ -0,0 +1,15 @@ +interface UrlSetEntry { + loc: string[]; + lastmod: string[]; +} +interface SitemapContent { + urlset: { + url: UrlSetEntry[]; + }; +} +declare const parseSitemapXml: (sitemapContent: SitemapContent) => string[]; +declare const parseSitemapTxt: (sitemapContent: string) => string[]; +declare const getUrlsFromSitemap: ({ sitemapPath }: { + sitemapPath: string; +}) => Promise; +export { getUrlsFromSitemap, parseSitemapTxt, parseSitemapXml }; diff --git a/build/lib/cli/verifyLinks/getUrlsFromSitemap.js b/build/lib/cli/verifyLinks/getUrlsFromSitemap.js new file mode 100644 index 00000000..975ca7b8 --- /dev/null +++ b/build/lib/cli/verifyLinks/getUrlsFromSitemap.js @@ -0,0 +1,73 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.parseSitemapXml = exports.parseSitemapTxt = exports.getUrlsFromSitemap = void 0; +const fs_1 = __importDefault(require("fs")); +const xml2js_1 = require("xml2js"); +const validate_value_1 = require("validate-value"); +const invalidXmlStructureErrorMessage = 'Provided XML file has invalid structure.'; +const sitemapContentSchema = { + type: 'object', + properties: { + urlset: { + type: 'object', + properties: { + url: { + type: 'array', + items: { + type: 'object', + properties: { + loc: { + type: 'array', + items: { + type: 'string' + }, + minItems: 1, + maxItems: 1 + }, + lastmod: { + type: 'array', + items: { + type: 'string' + }, + minItems: 1, + maxItems: 1 + } + }, + required: ['loc', 'lastmod'], + additionalProperties: false + } + } + }, + required: ['url'] + } + }, + required: ['urlset'] +}; +const isSitemapContent = (data) => (0, validate_value_1.isOfType)(data, sitemapContentSchema); +const parseSitemapXml = (sitemapContent) => sitemapContent.urlset.url.map((url) => url.loc[0].trim()); +exports.parseSitemapXml = parseSitemapXml; +const parseSitemapTxt = (sitemapContent) => { + const urls = sitemapContent. + split('\n'). + map((url) => url.trim()). + filter((url) => url !== ''); + return urls; +}; +exports.parseSitemapTxt = parseSitemapTxt; +const getUrlsFromSitemap = async function ({ sitemapPath }) { + const sitemap = await fs_1.default.promises.readFile(sitemapPath, 'utf8'); + try { + const xmlParsedSitemap = await (0, xml2js_1.parseStringPromise)(sitemap); + if (isSitemapContent(xmlParsedSitemap)) { + return parseSitemapXml(xmlParsedSitemap); + } + } + catch { + return parseSitemapTxt(sitemap); + } + throw new Error(invalidXmlStructureErrorMessage); +}; +exports.getUrlsFromSitemap = getUrlsFromSitemap; diff --git a/build/lib/cli/verifyLinks/verifyLinksCommand.d.ts b/build/lib/cli/verifyLinks/verifyLinksCommand.d.ts new file mode 100644 index 00000000..2a1568fe --- /dev/null +++ b/build/lib/cli/verifyLinks/verifyLinksCommand.d.ts @@ -0,0 +1,4 @@ +import { Command } from 'command-line-interface'; +import { VerifyLinksOptions } from './VerifyLinksOptions'; +declare const verifyLinksCommand: () => Command; +export { verifyLinksCommand }; diff --git a/build/lib/cli/verifyLinks/verifyLinksCommand.js b/build/lib/cli/verifyLinks/verifyLinksCommand.js new file mode 100644 index 00000000..289f83e3 --- /dev/null +++ b/build/lib/cli/verifyLinks/verifyLinksCommand.js @@ -0,0 +1,85 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.verifyLinksCommand = void 0; +const buntstift_1 = require("buntstift"); +const getAbsolutePath_1 = require("./getAbsolutePath"); +const getBrokenUrls_1 = require("./getBrokenUrls"); +const getUrlsFromSitemap_1 = require("./getUrlsFromSitemap"); +const verifyLinksCommand = function () { + return { + name: 'verify-links', + description: 'Verifies links.', + optionDefinitions: [ + { + name: 'url', + alias: 'u', + description: 'set the url to verify', + parameterName: 'url', + type: 'string', + isRequired: true, + defaultOption: true + }, + { + name: 'sitemap', + alias: 's', + description: 'use a sitemap', + parameterName: 'path', + type: 'string', + isRequired: false + }, + { + name: 'ignore', + alias: 'i', + description: 'set the ignore filter', + parameterName: 'regex', + type: 'string', + isRequired: false + } + ], + async handle({ options: { verbose, url, sitemap, ignore } }) { + buntstift_1.buntstift.configure(buntstift_1.buntstift.getConfiguration(). + withVerboseMode(verbose)); + let urlsFromSitemap = []; + if (sitemap) { + const sitemapPath = (0, getAbsolutePath_1.getAbsolutePath)({ + path: sitemap, + cwd: process.cwd() + }); + try { + urlsFromSitemap = await (0, getUrlsFromSitemap_1.getUrlsFromSitemap)({ sitemapPath }); + } + catch (ex) { + buntstift_1.buntstift.error(`Failed to load sitemap '${sitemapPath}'.`); + throw ex; + } + } + const stopWaiting = buntstift_1.buntstift.wait(); + let ignoreRegex; + if (ignore) { + ignoreRegex = [new RegExp(ignore, 'u')]; + } + try { + const brokenLinks = await (0, getBrokenUrls_1.getBrokenUrls)({ + urls: [url, ...urlsFromSitemap], + baseUrl: url, + ignore: ignoreRegex, + onVerifying({ url: verifiedUrl }) { + buntstift_1.buntstift.verbose(`Verifying '${verifiedUrl}'...`); + }, + onBrokenUrl({ url: brokenUrl, referrers }) { + buntstift_1.buntstift.error(`Link to '${brokenUrl}' from '${referrers !== null && referrers !== void 0 ? referrers : ''}' is broken.`); + } + }); + if (brokenLinks.length > 0) { + stopWaiting(); + // eslint-disable-next-line unicorn/no-process-exit + process.exit(1); + } + } + finally { + stopWaiting(); + } + } + }; +}; +exports.verifyLinksCommand = verifyLinksCommand; diff --git a/build/lib/components/Background.d.ts b/build/lib/components/Background.d.ts new file mode 100644 index 00000000..8ead0909 --- /dev/null +++ b/build/lib/components/Background.d.ts @@ -0,0 +1 @@ +export type Background = 'dark' | 'light' | 'none'; diff --git a/build/lib/components/Background.js b/build/lib/components/Background.js new file mode 100644 index 00000000..c8ad2e54 --- /dev/null +++ b/build/lib/components/Background.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/build/lib/components/animation/Transition/Documentation.d.ts b/build/lib/components/animation/Transition/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/animation/Transition/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/animation/Transition/Documentation.js b/build/lib/components/animation/Transition/Documentation.js new file mode 100644 index 00000000..8c27da64 --- /dev/null +++ b/build/lib/components/animation/Transition/Documentation.js @@ -0,0 +1,81 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../../components/documentation/ComponentPreview"); +const types_1 = require("./types"); +const __1 = require("../../.."); +const react_1 = __importStar(require("react")); +const transitionTypes = Object.keys(types_1.types).map((type) => ({ label: type, value: type })); +const Documentation = () => { + const [isBoxVisible, setIsBoxVisible] = (0, react_1.useState)(true); + const [type, setType] = (0, react_1.useState)(transitionTypes[0].value); + return (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "Transition"), + react_1.default.createElement(__1.Paragraph, null, + "Transition is a component for animating a single element while it enters or leaves your application. There's a set of built-in types you can use: ", + react_1.default.createElement("code", null, "Fade"), + ", ", + react_1.default.createElement("code", null, "FadeInLeft"), + ", ", + react_1.default.createElement("code", null, "FadeInRight"), + ", ", + react_1.default.createElement("code", null, "Grow"), + " and ", + react_1.default.createElement("code", null, "Zoom"), + ". Wrap the component that should be animated and use the boolean ", + react_1.default.createElement("code", null, "in"), + " property to animate in and out. Please note that you might have to set explicit dimensions to the parent of the animated component in order to prevent a page jumps."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Form, null, + react_1.default.createElement(__1.ControlGroup, null, + react_1.default.createElement(__1.ControlGroupItem, { label: 'Transition type' }, + react_1.default.createElement(__1.Dropdown, { value: type, options: transitionTypes, onChange: (value) => setType(value) }))), + react_1.default.createElement(__1.ControlGroup, null, + react_1.default.createElement(__1.ControlGroupItem, { label: 'Show box' }, + react_1.default.createElement(__1.CheckBox, { onChange: () => setIsBoxVisible(!isBoxVisible), id: 'checkbox-is-box-visible' })))), + react_1.default.createElement("div", { style: { width: 200, height: 200 } }, + react_1.default.createElement(__1.Transition, { type: type, in: isBoxVisible }, + react_1.default.createElement("div", { style: { + width: 200, + height: 200, + background: 'deeppink' + } }, + "This box will be animated using ", + type, + "."))))))); +}; +exports.Documentation = Documentation; diff --git a/build/lib/components/animation/Transition/TransitionType.d.ts b/build/lib/components/animation/Transition/TransitionType.d.ts new file mode 100644 index 00000000..75b56ba1 --- /dev/null +++ b/build/lib/components/animation/Transition/TransitionType.d.ts @@ -0,0 +1 @@ +export type TransitionType = 'Fade' | 'FadeInLeft' | 'FadeInRight' | 'Zoom'; diff --git a/build/lib/components/animation/Transition/TransitionType.js b/build/lib/components/animation/Transition/TransitionType.js new file mode 100644 index 00000000..c8ad2e54 --- /dev/null +++ b/build/lib/components/animation/Transition/TransitionType.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/build/lib/components/animation/Transition/index.d.ts b/build/lib/components/animation/Transition/index.d.ts new file mode 100644 index 00000000..ebdbff19 --- /dev/null +++ b/build/lib/components/animation/Transition/index.d.ts @@ -0,0 +1,8 @@ +import { TransitionType } from './TransitionType'; +import { FunctionComponent } from 'react'; +interface TransitionProps { + type?: TransitionType; + in?: boolean; +} +declare const Transition: FunctionComponent; +export { Transition }; diff --git a/build/lib/components/animation/Transition/index.js b/build/lib/components/animation/Transition/index.js new file mode 100644 index 00000000..2e040825 --- /dev/null +++ b/build/lib/components/animation/Transition/index.js @@ -0,0 +1,14 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Transition = void 0; +const types_1 = require("./types"); +const react_1 = __importDefault(require("react")); +const Transition = ({ type = 'FadeInLeft', in: transitionIn, children }) => { + const TransitionComponent = types_1.types[type]; + return (react_1.default.createElement(TransitionComponent, { in: transitionIn }, children)); +}; +exports.Transition = Transition; +Transition.displayName = 'Transition'; diff --git a/build/lib/components/animation/Transition/types/Fade.d.ts b/build/lib/components/animation/Transition/types/Fade.d.ts new file mode 100644 index 00000000..d696f69b --- /dev/null +++ b/build/lib/components/animation/Transition/types/Fade.d.ts @@ -0,0 +1,4 @@ +import { TransitionProps } from './TransitionProps'; +import { FunctionComponent } from 'react'; +declare const Fade: FunctionComponent; +export { Fade }; diff --git a/build/lib/components/animation/Transition/types/Fade.js b/build/lib/components/animation/Transition/types/Fade.js new file mode 100644 index 00000000..0757afc9 --- /dev/null +++ b/build/lib/components/animation/Transition/types/Fade.js @@ -0,0 +1,28 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Fade = void 0; +const animejs_1 = __importDefault(require("animejs")); +const defaults_1 = require("./defaults"); +const react_transition_group_1 = require("react-transition-group"); +const react_1 = __importDefault(require("react")); +const handleEnter = function (node) { + (0, animejs_1.default)({ + targets: node, + opacity: [0, 1], + duration: 600, + easing: defaults_1.defaults.easing + }); +}; +const handleExit = function (node) { + (0, animejs_1.default)({ + targets: node, + opacity: [1, 0], + duration: 600, + easing: defaults_1.defaults.easing + }); +}; +const Fade = ({ children, key, in: fadeIn }) => (react_1.default.createElement(react_transition_group_1.Transition, { key: key, in: fadeIn, appear: true, mountOnEnter: true, unmountOnExit: true, onEnter: handleEnter, onExit: handleExit, timeout: 600 }, children)); +exports.Fade = Fade; diff --git a/build/lib/components/animation/Transition/types/FadeInLeft.d.ts b/build/lib/components/animation/Transition/types/FadeInLeft.d.ts new file mode 100644 index 00000000..e67deae8 --- /dev/null +++ b/build/lib/components/animation/Transition/types/FadeInLeft.d.ts @@ -0,0 +1,4 @@ +import { TransitionProps } from './TransitionProps'; +import { FunctionComponent } from 'react'; +declare const FadeInLeft: FunctionComponent; +export { FadeInLeft }; diff --git a/build/lib/components/animation/Transition/types/FadeInLeft.js b/build/lib/components/animation/Transition/types/FadeInLeft.js new file mode 100644 index 00000000..b1eb76b2 --- /dev/null +++ b/build/lib/components/animation/Transition/types/FadeInLeft.js @@ -0,0 +1,30 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FadeInLeft = void 0; +const animejs_1 = __importDefault(require("animejs")); +const defaults_1 = require("./defaults"); +const react_transition_group_1 = require("react-transition-group"); +const react_1 = __importDefault(require("react")); +const handleEnter = function (node) { + (0, animejs_1.default)({ + targets: node, + opacity: [0, 1], + translateX: ['25%', 0], + duration: defaults_1.defaults.duration, + easing: defaults_1.defaults.easing + }); +}; +const handleExit = function (node) { + (0, animejs_1.default)({ + targets: node, + opacity: [1, 0], + translateX: [0, '25%'], + duration: defaults_1.defaults.duration, + easing: defaults_1.defaults.easing + }); +}; +const FadeInLeft = ({ children, key, in: fadeIn }) => (react_1.default.createElement(react_transition_group_1.Transition, { key: key, in: fadeIn, appear: true, mountOnEnter: true, unmountOnExit: true, onEnter: handleEnter, onExit: handleExit, timeout: defaults_1.defaults.duration }, children)); +exports.FadeInLeft = FadeInLeft; diff --git a/build/lib/components/animation/Transition/types/FadeInRight.d.ts b/build/lib/components/animation/Transition/types/FadeInRight.d.ts new file mode 100644 index 00000000..951bf281 --- /dev/null +++ b/build/lib/components/animation/Transition/types/FadeInRight.d.ts @@ -0,0 +1,4 @@ +import { TransitionProps } from './TransitionProps'; +import { FunctionComponent } from 'react'; +declare const FadeInRight: FunctionComponent; +export { FadeInRight }; diff --git a/build/lib/components/animation/Transition/types/FadeInRight.js b/build/lib/components/animation/Transition/types/FadeInRight.js new file mode 100644 index 00000000..82788899 --- /dev/null +++ b/build/lib/components/animation/Transition/types/FadeInRight.js @@ -0,0 +1,30 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FadeInRight = void 0; +const animejs_1 = __importDefault(require("animejs")); +const defaults_1 = require("./defaults"); +const react_transition_group_1 = require("react-transition-group"); +const react_1 = __importDefault(require("react")); +const handleEnter = function (node) { + (0, animejs_1.default)({ + targets: node, + opacity: [0, 1], + translateX: ['-25%', 0], + duration: defaults_1.defaults.duration, + easing: defaults_1.defaults.easing + }); +}; +const handleExit = function (node) { + (0, animejs_1.default)({ + targets: node, + opacity: [1, 0], + translateX: [0, '-25%'], + duration: defaults_1.defaults.duration, + easing: defaults_1.defaults.easing + }); +}; +const FadeInRight = ({ children, key, in: fadeIn }) => (react_1.default.createElement(react_transition_group_1.Transition, { key: key, in: fadeIn, appear: true, mountOnEnter: true, unmountOnExit: true, onEnter: handleEnter, onExit: handleExit, timeout: defaults_1.defaults.duration }, children)); +exports.FadeInRight = FadeInRight; diff --git a/build/lib/components/animation/Transition/types/Grow.d.ts b/build/lib/components/animation/Transition/types/Grow.d.ts new file mode 100644 index 00000000..92f177f0 --- /dev/null +++ b/build/lib/components/animation/Transition/types/Grow.d.ts @@ -0,0 +1,4 @@ +import { TransitionProps } from './TransitionProps'; +import { FunctionComponent } from 'react'; +declare const Grow: FunctionComponent; +export { Grow }; diff --git a/build/lib/components/animation/Transition/types/Grow.js b/build/lib/components/animation/Transition/types/Grow.js new file mode 100644 index 00000000..3268edb9 --- /dev/null +++ b/build/lib/components/animation/Transition/types/Grow.js @@ -0,0 +1,30 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Grow = void 0; +const animejs_1 = __importDefault(require("animejs")); +const defaults_1 = require("./defaults"); +const react_transition_group_1 = require("react-transition-group"); +const react_1 = __importDefault(require("react")); +const handleEnter = function (node) { + (0, animejs_1.default)({ + targets: node, + opacity: [0, 1], + scaleY: [0.5, 1], + duration: defaults_1.defaults.duration, + easing: defaults_1.defaults.easing + }); +}; +const handleExit = function (node) { + (0, animejs_1.default)({ + targets: node, + opacity: [1, 0], + scaleY: [1, 0], + duration: defaults_1.defaults.duration, + easing: defaults_1.defaults.easing + }); +}; +const Grow = ({ children, key, in: fadeIn }) => (react_1.default.createElement(react_transition_group_1.Transition, { key: key, in: fadeIn, appear: false, mountOnEnter: true, unmountOnExit: true, onEnter: handleEnter, onExit: handleExit, timeout: defaults_1.defaults.duration }, children)); +exports.Grow = Grow; diff --git a/build/lib/components/animation/Transition/types/TransitionProps.d.ts b/build/lib/components/animation/Transition/types/TransitionProps.d.ts new file mode 100644 index 00000000..0ec555b1 --- /dev/null +++ b/build/lib/components/animation/Transition/types/TransitionProps.d.ts @@ -0,0 +1,4 @@ +export interface TransitionProps { + key?: any; + in?: boolean; +} diff --git a/build/lib/components/animation/Transition/types/TransitionProps.js b/build/lib/components/animation/Transition/types/TransitionProps.js new file mode 100644 index 00000000..c8ad2e54 --- /dev/null +++ b/build/lib/components/animation/Transition/types/TransitionProps.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/build/lib/components/animation/Transition/types/Zoom.d.ts b/build/lib/components/animation/Transition/types/Zoom.d.ts new file mode 100644 index 00000000..0901d585 --- /dev/null +++ b/build/lib/components/animation/Transition/types/Zoom.d.ts @@ -0,0 +1,4 @@ +import { TransitionProps } from './TransitionProps'; +import { FunctionComponent } from 'react'; +declare const Zoom: FunctionComponent; +export { Zoom }; diff --git a/build/lib/components/animation/Transition/types/Zoom.js b/build/lib/components/animation/Transition/types/Zoom.js new file mode 100644 index 00000000..1a21d1f5 --- /dev/null +++ b/build/lib/components/animation/Transition/types/Zoom.js @@ -0,0 +1,32 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Zoom = void 0; +const animejs_1 = __importDefault(require("animejs")); +const defaults_1 = require("./defaults"); +const react_transition_group_1 = require("react-transition-group"); +const react_1 = __importDefault(require("react")); +const handleEnter = function (node) { + (0, animejs_1.default)({ + targets: node, + opacity: [0, 1], + translateY: ['-10%', 0], + scale: [0.95, 1], + duration: defaults_1.defaults.duration, + easing: defaults_1.defaults.easing + }); +}; +const handleExit = function (node) { + (0, animejs_1.default)({ + targets: node, + opacity: [1, 0], + translateY: [0, '-10%'], + scale: [1, 0.95], + duration: defaults_1.defaults.duration, + easing: defaults_1.defaults.easing + }); +}; +const Zoom = ({ children, key, in: zoomIn }) => (react_1.default.createElement(react_transition_group_1.Transition, { key: key, in: zoomIn, appear: true, mountOnEnter: true, unmountOnExit: true, onEnter: handleEnter, onExit: handleExit, timeout: defaults_1.defaults.duration }, children)); +exports.Zoom = Zoom; diff --git a/build/lib/components/animation/Transition/types/defaults.d.ts b/build/lib/components/animation/Transition/types/defaults.d.ts new file mode 100644 index 00000000..3627fc56 --- /dev/null +++ b/build/lib/components/animation/Transition/types/defaults.d.ts @@ -0,0 +1,5 @@ +declare const defaults: { + duration: number; + easing: string; +}; +export { defaults }; diff --git a/build/lib/components/animation/Transition/types/defaults.js b/build/lib/components/animation/Transition/types/defaults.js new file mode 100644 index 00000000..d51594e9 --- /dev/null +++ b/build/lib/components/animation/Transition/types/defaults.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.defaults = void 0; +const defaults = { + duration: 300, + easing: 'easeOutExpo' +}; +exports.defaults = defaults; diff --git a/build/lib/components/animation/Transition/types/index.d.ts b/build/lib/components/animation/Transition/types/index.d.ts new file mode 100644 index 00000000..74f7537c --- /dev/null +++ b/build/lib/components/animation/Transition/types/index.d.ts @@ -0,0 +1,8 @@ +declare const types: { + Fade: import("react").FunctionComponent; + FadeInLeft: import("react").FunctionComponent; + FadeInRight: import("react").FunctionComponent; + Grow: import("react").FunctionComponent; + Zoom: import("react").FunctionComponent; +}; +export { types }; diff --git a/build/lib/components/animation/Transition/types/index.js b/build/lib/components/animation/Transition/types/index.js new file mode 100644 index 00000000..23aa3a67 --- /dev/null +++ b/build/lib/components/animation/Transition/types/index.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.types = void 0; +const Fade_1 = require("./Fade"); +const FadeInLeft_1 = require("./FadeInLeft"); +const FadeInRight_1 = require("./FadeInRight"); +const Grow_1 = require("./Grow"); +const Zoom_1 = require("./Zoom"); +const types = { + Fade: Fade_1.Fade, + FadeInLeft: FadeInLeft_1.FadeInLeft, + FadeInRight: FadeInRight_1.FadeInRight, + Grow: Grow_1.Grow, + Zoom: Zoom_1.Zoom +}; +exports.types = types; diff --git a/build/lib/components/animation/TransitionGroup/Documentation.d.ts b/build/lib/components/animation/TransitionGroup/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/animation/TransitionGroup/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/animation/TransitionGroup/Documentation.js b/build/lib/components/animation/TransitionGroup/Documentation.js new file mode 100644 index 00000000..5ec6bb8d --- /dev/null +++ b/build/lib/components/animation/TransitionGroup/Documentation.js @@ -0,0 +1,70 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../../components/documentation/ComponentPreview"); +const __1 = require("../../.."); +const react_1 = __importStar(require("react")); +const Documentation = () => { + const [items, setItems] = (0, react_1.useState)(['Thing 1']); + const addItem = () => { + const newItems = [...items, `Thing ${items.length + 1}`]; + setItems(newItems); + }; + const removeItem = () => { + const newItems = items.slice(0, -1); + setItems(newItems); + }; + return (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "TransitionGroup"), + react_1.default.createElement(__1.Paragraph, null, + "To transition an array of elements, use the ", + react_1.default.createElement("code", null, "TransitionGroup"), + " component. Please note that you have to set a unique key for each item in order to let React know which element has been added or removed."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement("div", { style: { display: 'flex' } }, + react_1.default.createElement(__1.Button, { onClick: addItem }, "Add item"), + react_1.default.createElement(__1.Button, { onClick: removeItem }, "Remove item")), + react_1.default.createElement(__1.TransitionGroup, { type: 'FadeInRight' }, items.map((item) => (react_1.default.createElement("div", { style: { + width: 100, + height: 100, + float: 'left', + background: 'deeppink', + marginRight: 20, + marginTop: 20 + }, key: item }, item)))))))); +}; +exports.Documentation = Documentation; diff --git a/build/lib/components/animation/TransitionGroup/index.d.ts b/build/lib/components/animation/TransitionGroup/index.d.ts new file mode 100644 index 00000000..7d5cce1a --- /dev/null +++ b/build/lib/components/animation/TransitionGroup/index.d.ts @@ -0,0 +1,7 @@ +import { TransitionType } from '../Transition/TransitionType'; +import { FunctionComponent } from 'react'; +interface TransitionGroupProps { + type?: TransitionType; +} +declare const TransitionGroup: FunctionComponent; +export { TransitionGroup }; diff --git a/build/lib/components/animation/TransitionGroup/index.js b/build/lib/components/animation/TransitionGroup/index.js new file mode 100644 index 00000000..f1db0441 --- /dev/null +++ b/build/lib/components/animation/TransitionGroup/index.js @@ -0,0 +1,15 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.TransitionGroup = void 0; +const react_transition_group_1 = require("react-transition-group"); +const types_1 = require("../Transition/types"); +const react_1 = __importDefault(require("react")); +const TransitionGroup = ({ children, type = 'FadeInLeft' }) => { + const Transition = types_1.types[type]; + return (react_1.default.createElement(react_transition_group_1.TransitionGroup, { component: 'span' }, react_1.default.Children.map(children, (child) => react_1.default.createElement(Transition, null, child)))); +}; +exports.TransitionGroup = TransitionGroup; +TransitionGroup.displayName = 'TransitionGroup'; diff --git a/build/lib/components/branding/Brand/Documentation.d.ts b/build/lib/components/branding/Brand/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/branding/Brand/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/branding/Brand/Documentation.js b/build/lib/components/branding/Brand/Documentation.js new file mode 100644 index 00000000..d397b1a2 --- /dev/null +++ b/build/lib/components/branding/Brand/Documentation.js @@ -0,0 +1,99 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../../components/documentation/ComponentPreview"); +const __1 = require("../../.."); +const react_1 = __importDefault(require("react")); +const Documentation = () => (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "Brand"), + react_1.default.createElement(__1.Paragraph, null, + "The ", + react_1.default.createElement("code", null, "Brand"), + " component displays the ", + react_1.default.createElement("em", null, "the native web"), + " brand."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement("div", null, + react_1.default.createElement(__1.Brand, null))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Resizing the brand"), + react_1.default.createElement(__1.Paragraph, null, + "The ", + react_1.default.createElement("code", null, "Brand"), + " is available in different sizes, ", + react_1.default.createElement("code", null, "sm"), + ", ", + react_1.default.createElement("code", null, "md"), + ", and ", + react_1.default.createElement("code", null, "lg"), + ". If you don't specify a size, it defaults to ", + react_1.default.createElement("code", null, "md"), + "."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement("div", null, + react_1.default.createElement(__1.Brand, { size: 'sm' }), + react_1.default.createElement("hr", null), + react_1.default.createElement(__1.Brand, { size: 'md' }), + react_1.default.createElement("hr", null), + react_1.default.createElement(__1.Brand, { size: 'lg' }))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Minimizing the brand"), + react_1.default.createElement(__1.Paragraph, null, + "The ", + react_1.default.createElement("code", null, "Brand"), + " is available in a minimized version. To use it, set its ", + react_1.default.createElement("code", null, "type"), + " property to ", + react_1.default.createElement("code", null, "minimal"), + "."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement("div", null, + react_1.default.createElement(__1.Brand, { size: 'sm', type: 'minimal' }), + react_1.default.createElement("hr", null), + react_1.default.createElement(__1.Brand, { size: 'md', type: 'minimal' }), + react_1.default.createElement("hr", null), + react_1.default.createElement(__1.Brand, { size: 'lg', type: 'minimal' }))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Grayscaling the brand"), + react_1.default.createElement(__1.Paragraph, null, + "The ", + react_1.default.createElement("code", null, "Brand"), + " is available in a grayscaled version. To use it, set its ", + react_1.default.createElement("code", null, "color"), + " property to ", + react_1.default.createElement("code", null, "monochrome"), + ". The grayscaled version is only available for the minimized ", + react_1.default.createElement("code", null, "Brand"), + "."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement("div", null, + react_1.default.createElement(__1.Brand, { size: 'sm', type: 'minimal', color: 'monochrome' }), + react_1.default.createElement("hr", null), + react_1.default.createElement(__1.Brand, { size: 'md', type: 'minimal', color: 'monochrome' }), + react_1.default.createElement("hr", null), + react_1.default.createElement(__1.Brand, { size: 'lg', type: 'minimal', color: 'monochrome' }))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Making the brand interactive"), + react_1.default.createElement(__1.Paragraph, null, + "The ", + react_1.default.createElement("code", null, "Brand"), + " is available as an interactive element. To make it interactive, set its ", + react_1.default.createElement("code", null, "isInteractive"), + " property to ", + react_1.default.createElement("code", null, "true"), + ". The interactive version is only available for the minimized ", + react_1.default.createElement("code", null, "Brand"), + "."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement("div", null, + react_1.default.createElement(__1.Brand, { size: 'sm', type: 'minimal', isInteractive: true }), + react_1.default.createElement("hr", null), + react_1.default.createElement(__1.Brand, { size: 'md', type: 'minimal', isInteractive: true }), + react_1.default.createElement("hr", null), + react_1.default.createElement(__1.Brand, { size: 'lg', type: 'minimal', isInteractive: true }), + react_1.default.createElement("hr", null), + react_1.default.createElement(__1.Brand, { size: 'sm', type: 'minimal', color: 'monochrome', isInteractive: true }), + react_1.default.createElement("hr", null), + react_1.default.createElement(__1.Brand, { size: 'md', type: 'minimal', color: 'monochrome', isInteractive: true }), + react_1.default.createElement("hr", null), + react_1.default.createElement(__1.Brand, { size: 'lg', type: 'minimal', color: 'monochrome', isInteractive: true }))))); +exports.Documentation = Documentation; diff --git a/build/lib/components/branding/Brand/index.d.ts b/build/lib/components/branding/Brand/index.d.ts new file mode 100644 index 00000000..20edeffb --- /dev/null +++ b/build/lib/components/branding/Brand/index.d.ts @@ -0,0 +1,9 @@ +import { FunctionComponent } from 'react'; +interface BrandProps { + color?: 'default' | 'monochrome'; + size?: 'sm' | 'md' | 'lg'; + type?: 'full' | 'minimal'; + isInteractive?: boolean; +} +declare const Brand: FunctionComponent; +export { Brand }; diff --git a/build/lib/components/branding/Brand/index.js b/build/lib/components/branding/Brand/index.js new file mode 100644 index 00000000..31f06f58 --- /dev/null +++ b/build/lib/components/branding/Brand/index.js @@ -0,0 +1,19 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Brand = void 0; +const styles_1 = require("../../../styles"); +const styles_2 = require("./styles"); +const __1 = require("../../.."); +const react_1 = __importDefault(require("react")); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const Brand = ({ color = 'default', size = 'md', type = 'full', isInteractive = false }) => { + const classes = useStyles(); + const Logo = type === 'full' ? __1.LogoFull : __1.LogoMinimal; + return (react_1.default.createElement("div", { className: classes.Brand }, + react_1.default.createElement(Logo, { color: color, size: size, isInteractive: isInteractive }))); +}; +exports.Brand = Brand; +Brand.displayName = 'Brand'; diff --git a/build/lib/components/branding/Brand/styles.d.ts b/build/lib/components/branding/Brand/styles.d.ts new file mode 100644 index 00000000..f3d757f3 --- /dev/null +++ b/build/lib/components/branding/Brand/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type BrandClassNames = 'Brand'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/branding/Brand/styles.js b/build/lib/components/branding/Brand/styles.js new file mode 100644 index 00000000..6563beaf --- /dev/null +++ b/build/lib/components/branding/Brand/styles.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = (theme) => ({ + Brand: { + width: '100%', + height: '100%', + display: 'flex', + alignItems: 'center', + justifyContent: 'center', + background: theme.color.brand.grayDark + } +}); +exports.styles = styles; diff --git a/build/lib/components/branding/MadeBy/Documentation.d.ts b/build/lib/components/branding/MadeBy/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/branding/MadeBy/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/branding/MadeBy/Documentation.js b/build/lib/components/branding/MadeBy/Documentation.js new file mode 100644 index 00000000..233d6b67 --- /dev/null +++ b/build/lib/components/branding/MadeBy/Documentation.js @@ -0,0 +1,41 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../../components/documentation/ComponentPreview"); +const __1 = require("../../.."); +const react_1 = __importDefault(require("react")); +const Documentation = () => (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "MadeBy"), + react_1.default.createElement(__1.Paragraph, null, + "The ", + react_1.default.createElement("code", null, "MadeBy"), + " component displays whom the application was developed by. Switch the ", + react_1.default.createElement("code", null, "color"), + " property to ", + react_1.default.createElement("code", null, "light"), + " if you would like to place it on a ", + react_1.default.createElement("code", null, "dark"), + " background."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, { useAllThemes: true }, + react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.MadeBy, null), + react_1.default.createElement(__1.MadeBy, { size: 'md' }), + react_1.default.createElement(__1.MadeBy, { size: 'lg' }), + react_1.default.createElement("div", { style: { background: 'black' } }, + react_1.default.createElement(__1.MadeBy, { size: 'sm', color: 'light' }), + react_1.default.createElement(__1.MadeBy, { size: 'md', color: 'light' }), + react_1.default.createElement(__1.MadeBy, { size: 'lg', color: 'light' })))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Resizing the brand"), + react_1.default.createElement(__1.Paragraph, null, + "Optionally, you may provide a partner using the ", + react_1.default.createElement("code", null, "partner"), + " property."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, { useAllThemes: true }, + react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.MadeBy, { partner: { name: 'Intuity', href: 'https://www.intuity.de' } }), + react_1.default.createElement("div", { style: { background: 'black' } }, + react_1.default.createElement(__1.MadeBy, { partner: { name: 'Intuity', href: 'https://www.intuity.de' }, color: 'light' })))))); +exports.Documentation = Documentation; diff --git a/build/lib/components/branding/MadeBy/index.d.ts b/build/lib/components/branding/MadeBy/index.d.ts new file mode 100644 index 00000000..45689bd5 --- /dev/null +++ b/build/lib/components/branding/MadeBy/index.d.ts @@ -0,0 +1,12 @@ +import { FunctionComponent } from 'react'; +interface Partner { + href: string; + name: string; +} +interface MadeByProps { + color?: 'dark' | 'light'; + partner?: Partner | Partner[]; + size?: 'sm' | 'md' | 'lg'; +} +declare const MadeBy: FunctionComponent; +export { MadeBy }; diff --git a/build/lib/components/branding/MadeBy/index.js b/build/lib/components/branding/MadeBy/index.js new file mode 100644 index 00000000..a432e9cb --- /dev/null +++ b/build/lib/components/branding/MadeBy/index.js @@ -0,0 +1,34 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.MadeBy = void 0; +const styles_1 = require("../../../styles"); +const __1 = require("../../.."); +const styles_2 = require("./styles"); +const react_1 = __importDefault(require("react")); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const MadeBy = ({ color = 'dark', partner = [], size = 'sm' }) => { + const classes = useStyles(); + const componentClasses = (0, styles_1.classNames)(classes.MadeBy, { + [classes.ColorDark]: color === 'dark', + [classes.ColorLight]: color === 'light', + [classes.SizeSm]: size === 'sm', + [classes.SizeMd]: size === 'md', + [classes.SizeLg]: size === 'lg' + }); + const partners = Array.isArray(partner) ? partner : [partner]; + return (react_1.default.createElement("div", { className: componentClasses }, + react_1.default.createElement("span", null, + "Made with ", + react_1.default.createElement(__1.Icon, { name: 'heart', color: 'highlight', type: 'inline' }), + " by"), + "\u00A0", + react_1.default.createElement(__1.Link, { href: 'https://www.thenativeweb.io' }, "the native web"), + partners.map((item, index) => (react_1.default.createElement(react_1.default.Fragment, { key: item.name }, + index === partners.length - 1 ? ' and ' : ', ', + react_1.default.createElement(__1.Link, { href: item.href }, item.name)))))); +}; +exports.MadeBy = MadeBy; +MadeBy.displayName = 'MadeBy'; diff --git a/build/lib/components/branding/MadeBy/styles.d.ts b/build/lib/components/branding/MadeBy/styles.d.ts new file mode 100644 index 00000000..561ae577 --- /dev/null +++ b/build/lib/components/branding/MadeBy/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type MadeByClassNames = 'MadeBy' | 'ColorDark' | 'ColorLight' | 'SizeSm' | 'SizeMd' | 'SizeLg'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/branding/MadeBy/styles.js b/build/lib/components/branding/MadeBy/styles.js new file mode 100644 index 00000000..738460c3 --- /dev/null +++ b/build/lib/components/branding/MadeBy/styles.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = (theme) => ({ + MadeBy: { + overflow: 'hidden', + fontFamily: theme.font.family.default, + textAlign: 'center' + }, + ColorDark: { + color: theme.color.brand.grayDark + }, + ColorLight: { + color: theme.color.brand.white + }, + SizeSm: { + fontSize: theme.font.size.sm + }, + SizeMd: { + fontSize: theme.font.size.md + }, + SizeLg: { + fontSize: theme.font.size.lg + } +}); +exports.styles = styles; diff --git a/build/lib/components/branding/Pattern/Documentation.d.ts b/build/lib/components/branding/Pattern/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/branding/Pattern/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/branding/Pattern/Documentation.js b/build/lib/components/branding/Pattern/Documentation.js new file mode 100644 index 00000000..99be80ab --- /dev/null +++ b/build/lib/components/branding/Pattern/Documentation.js @@ -0,0 +1,19 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../../components/documentation/ComponentPreview"); +const __1 = require("../../.."); +const react_1 = __importDefault(require("react")); +const Documentation = () => (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "Pattern"), + react_1.default.createElement(__1.Paragraph, null, + "The ", + react_1.default.createElement("code", null, "Pattern"), + " component can be used to add a pattern to a block element. The pattern will be positioned absolute inside the parent, so make sure to set it's position to relative."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, { useAllThemes: true, background: 'dark' }, + react_1.default.createElement("div", { style: { position: 'relative', height: 120 } }, + react_1.default.createElement(__1.Pattern, null))))); +exports.Documentation = Documentation; diff --git a/build/lib/components/branding/Pattern/index.d.ts b/build/lib/components/branding/Pattern/index.d.ts new file mode 100644 index 00000000..6a58df9c --- /dev/null +++ b/build/lib/components/branding/Pattern/index.d.ts @@ -0,0 +1,6 @@ +import { FunctionComponent } from 'react'; +interface PatternProps { + className?: string; +} +declare const Pattern: FunctionComponent; +export { Pattern }; diff --git a/build/lib/components/branding/Pattern/index.js b/build/lib/components/branding/Pattern/index.js new file mode 100644 index 00000000..0b5ae769 --- /dev/null +++ b/build/lib/components/branding/Pattern/index.js @@ -0,0 +1,17 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Pattern = void 0; +const styles_1 = require("../../../styles"); +const styles_2 = require("./styles"); +const react_1 = __importDefault(require("react")); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const Pattern = ({ children, className }) => { + const classes = useStyles(); + const componentClasses = (0, styles_1.classNames)(classes.Pattern, className); + return react_1.default.createElement("div", { className: componentClasses }, children); +}; +exports.Pattern = Pattern; +Pattern.displayName = 'Pattern'; diff --git a/build/lib/components/branding/Pattern/styles.d.ts b/build/lib/components/branding/Pattern/styles.d.ts new file mode 100644 index 00000000..7d81b115 --- /dev/null +++ b/build/lib/components/branding/Pattern/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type PatternClassNames = 'Pattern'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/branding/Pattern/styles.js b/build/lib/components/branding/Pattern/styles.js new file mode 100644 index 00000000..836acb8c --- /dev/null +++ b/build/lib/components/branding/Pattern/styles.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = (theme) => ({ + Pattern: { + position: 'absolute', + left: 0, + top: 0, + right: 0, + bottom: 0, + backgroundSize: '300px 300px', + backgroundImage: theme.components.Pattern.backgroundImage, + opacity: theme.components.Pattern.opacity + } +}); +exports.styles = styles; diff --git a/build/lib/components/branding/PoweredBy/Documentation.d.ts b/build/lib/components/branding/PoweredBy/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/branding/PoweredBy/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/branding/PoweredBy/Documentation.js b/build/lib/components/branding/PoweredBy/Documentation.js new file mode 100644 index 00000000..4a4c9d86 --- /dev/null +++ b/build/lib/components/branding/PoweredBy/Documentation.js @@ -0,0 +1,19 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../../components/documentation/ComponentPreview"); +const __1 = require("../../.."); +const react_1 = __importDefault(require("react")); +const Documentation = () => (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "PoweredBy"), + react_1.default.createElement(__1.Paragraph, null, + "The ", + react_1.default.createElement("code", null, "PoweredBy"), + " component informs about the company or the product that powers the current application."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, { useAllThemes: true }, + react_1.default.createElement(__1.Container, { background: 'dark' }, + react_1.default.createElement(__1.PoweredBy, null))))); +exports.Documentation = Documentation; diff --git a/build/lib/components/branding/PoweredBy/index.d.ts b/build/lib/components/branding/PoweredBy/index.d.ts new file mode 100644 index 00000000..004e26fe --- /dev/null +++ b/build/lib/components/branding/PoweredBy/index.d.ts @@ -0,0 +1,7 @@ +import { FunctionComponent } from 'react'; +interface PoweredByProps { + product?: 'wolkenkit'; + size?: 'md' | 'lg'; +} +declare const PoweredBy: FunctionComponent; +export { PoweredBy }; diff --git a/build/lib/components/branding/PoweredBy/index.js b/build/lib/components/branding/PoweredBy/index.js new file mode 100644 index 00000000..3ca48994 --- /dev/null +++ b/build/lib/components/branding/PoweredBy/index.js @@ -0,0 +1,19 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.PoweredBy = void 0; +const styles_1 = require("../../../styles"); +const __1 = require("../../.."); +const styles_2 = require("./styles"); +const react_1 = __importDefault(require("react")); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const PoweredBy = ({ product, size = 'md' }) => { + const classes = useStyles(); + return (react_1.default.createElement("div", { className: classes.PoweredBy }, + react_1.default.createElement("div", { className: classes.Intro }, "Powered by"), + react_1.default.createElement(__1.Product, { name: product, size: size }))); +}; +exports.PoweredBy = PoweredBy; +PoweredBy.displayName = 'PoweredBy'; diff --git a/build/lib/components/branding/PoweredBy/styles.d.ts b/build/lib/components/branding/PoweredBy/styles.d.ts new file mode 100644 index 00000000..0460ac6f --- /dev/null +++ b/build/lib/components/branding/PoweredBy/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type PoweredByClassNames = 'PoweredBy' | 'Intro'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/branding/PoweredBy/styles.js b/build/lib/components/branding/PoweredBy/styles.js new file mode 100644 index 00000000..0a882956 --- /dev/null +++ b/build/lib/components/branding/PoweredBy/styles.js @@ -0,0 +1,23 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = (theme) => ({ + PoweredBy: { + display: 'flex', + flexDirection: 'column', + overflow: 'hidden', + alignItems: 'center', + justifyContent: 'center', + fontFamily: theme.font.family.default, + fontSize: theme.font.size.sm, + textAlign: 'center', + paddingTop: theme.space(0.5), + paddingBottom: theme.space(0.5) + }, + Intro: { + marginTop: theme.space(1), + marginBottom: theme.space(1), + color: theme.color.brand.grayLight + } +}); +exports.styles = styles; diff --git a/build/lib/components/branding/Product/Documentation.d.ts b/build/lib/components/branding/Product/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/branding/Product/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/branding/Product/Documentation.js b/build/lib/components/branding/Product/Documentation.js new file mode 100644 index 00000000..3c67ba70 --- /dev/null +++ b/build/lib/components/branding/Product/Documentation.js @@ -0,0 +1,43 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../../components/documentation/ComponentPreview"); +const Property_1 = require("../../documentation/Property"); +const __1 = require("../../.."); +const react_1 = __importDefault(require("react")); +const Documentation = () => (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "Product"), + react_1.default.createElement(__1.Paragraph, null, "The `Product` component displays a product's brand. To use it, provide the product's name using the `name` property. Additionally, you may set a `size` as explained previously."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, { background: 'dark', useAllThemes: true }, + react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Product, { name: 'console' }), + react_1.default.createElement("hr", null), + react_1.default.createElement(Property_1.Property, { name: 'size', value: 'sm' }), + react_1.default.createElement(__1.Product, { name: 'console', size: 'sm' }), + react_1.default.createElement("hr", null), + react_1.default.createElement(Property_1.Property, { name: 'size', value: 'md' }), + react_1.default.createElement(__1.Product, { name: 'console', size: 'md' }), + react_1.default.createElement("hr", null), + react_1.default.createElement(Property_1.Property, { name: 'size', value: 'lg' }), + react_1.default.createElement(__1.Product, { name: 'console', size: 'lg' }), + react_1.default.createElement("hr", null), + react_1.default.createElement(Property_1.Property, { name: 'size', value: 'xl' }), + react_1.default.createElement(__1.Product, { name: 'console', size: 'xl' }))), + react_1.default.createElement(__1.Headline, { level: '2' }, "wolkenkit"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement("div", null, + react_1.default.createElement(__1.ThemeProvider, { theme: new __1.themes.Wolkenkit() }, + react_1.default.createElement("div", { style: { background: 'rgb(47, 51, 59)' } }, + react_1.default.createElement(__1.Product, { name: 'wolkenkit' }), + react_1.default.createElement("hr", null), + react_1.default.createElement(__1.Product, { name: 'wolkenkit', size: 'lg' }), + react_1.default.createElement("hr", null), + react_1.default.createElement(__1.Product, { name: 'wolkenkit', size: 'xl', isAnimated: true }), + react_1.default.createElement("hr", null), + react_1.default.createElement(__1.Product, { name: 'wolkenkit', type: 'logo-only' }), + react_1.default.createElement("hr", null), + react_1.default.createElement(__1.Product, { name: 'wolkenkit', type: 'text-only' }))))))); +exports.Documentation = Documentation; diff --git a/build/lib/components/branding/Product/index.d.ts b/build/lib/components/branding/Product/index.d.ts new file mode 100644 index 00000000..2cb90565 --- /dev/null +++ b/build/lib/components/branding/Product/index.d.ts @@ -0,0 +1,9 @@ +import { FunctionComponent } from 'react'; +interface ProductProps { + name?: string; + isAnimated?: boolean; + size?: 'sm' | 'md' | 'lg' | 'xl'; + type?: 'default' | 'text-only' | 'logo-only'; +} +declare const Product: FunctionComponent; +export { Product }; diff --git a/build/lib/components/branding/Product/index.js b/build/lib/components/branding/Product/index.js new file mode 100644 index 00000000..0aa28084 --- /dev/null +++ b/build/lib/components/branding/Product/index.js @@ -0,0 +1,38 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Product = void 0; +const styles_1 = require("../../../styles"); +const __1 = require("../../.."); +const styles_2 = require("./styles"); +const react_1 = __importDefault(require("react")); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const Product = ({ isAnimated = false, size = 'md', type = 'default', name }) => { + const classes = useStyles(); + const theme = (0, styles_1.useTheme)(); + const brandClassNames = (0, styles_1.classNames)(classes.Product, { + [classes.SizeSm]: size === 'sm', + [classes.SizeMd]: size === 'md', + [classes.SizeLg]: size === 'lg', + [classes.SizeXl]: size === 'xl', + [classes.TypeLogoOnly]: type === 'logo-only', + [classes.TypeTextOnly]: type === 'text-only' + }); + let nameComponent = react_1.default.createElement("div", { className: classes.Name }, name); + let Logo = __1.LogoTheNativeWeb; + if (theme.name === 'Wolkenkit' || name === 'wolkenkit') { + Logo = __1.LogoWolkenkit; + } + if ((theme.name === 'Wolkenkit' && !name) || name === 'wolkenkit') { + nameComponent = react_1.default.createElement("div", { className: classes.CompositeName }, + react_1.default.createElement("span", null, "wolken"), + "kit"); + } + return (react_1.default.createElement("div", { className: brandClassNames }, + type === 'text-only' ? null : react_1.default.createElement(Logo, { isAnimated: isAnimated, size: size }), + type === 'logo-only' ? null : nameComponent)); +}; +exports.Product = Product; +Product.displayName = 'Product'; diff --git a/build/lib/components/branding/Product/styles.d.ts b/build/lib/components/branding/Product/styles.d.ts new file mode 100644 index 00000000..9488cc3e --- /dev/null +++ b/build/lib/components/branding/Product/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type ProducClassNames = 'Product' | 'IsCollapsed' | 'Name' | 'CompositeName' | 'SizeSm' | 'SizeMd' | 'SizeLg' | 'SizeXl' | 'TypeLogoOnly' | 'TypeTextOnly'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/branding/Product/styles.js b/build/lib/components/branding/Product/styles.js new file mode 100644 index 00000000..a3c9de14 --- /dev/null +++ b/build/lib/components/branding/Product/styles.js @@ -0,0 +1,75 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = (theme) => ({ + Product: { + display: 'flex', + flexDirection: 'column', + overflow: 'hidden', + alignItems: 'center', + justifyContent: 'center', + fontFamily: theme.font.family.headline, + fontWeight: 500 + }, + IsCollapsed: { + '& *': { + animation: 'none' + } + }, + Name: { + textAlign: 'center', + marginTop: '3px', + color: theme.color.brand.white + }, + CompositeName: { + textAlign: 'center', + marginTop: '3px', + color: theme.color.brand.highlight, + '& span': { + color: theme.color.brand.white + } + }, + SizeSm: { + flexDirection: 'row', + '& $Name, & $CompositeName': { + marginLeft: theme.space(1), + fontSize: theme.font.size.sm + } + }, + SizeMd: { + '& $Name, & $CompositeName': { + fontSize: theme.font.size.sm + } + }, + SizeLg: { + '& $Name, & $CompositeName': { + fontSize: theme.font.size.lg + } + }, + SizeXl: { + '& $Name, & $CompositeName': { + fontSize: theme.font.size.xl + } + }, + TypeLogoOnly: {}, + TypeTextOnly: { + '& $Name, & $CompositeName': { + marginTop: 0 + } + }, + [theme.breakpoints.down('sm')]: { + Name: {}, + CompositeName: {}, + SizeLg: { + '& $Name, & $CompositeName': { + fontSize: theme.font.size.md + } + }, + SizeXl: { + '& $Name, & $CompositeName': { + fontSize: theme.font.size.lg + } + } + } +}); +exports.styles = styles; diff --git a/build/lib/components/documentation/Code/Documentation.d.ts b/build/lib/components/documentation/Code/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/documentation/Code/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/documentation/Code/Documentation.js b/build/lib/components/documentation/Code/Documentation.js new file mode 100644 index 00000000..225aae16 --- /dev/null +++ b/build/lib/components/documentation/Code/Documentation.js @@ -0,0 +1,85 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../../components/documentation/ComponentPreview"); +const Property_1 = require("../../documentation/Property"); +const __1 = require("../../.."); +const react_1 = __importStar(require("react")); +const Documentation = () => (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "Code"), + react_1.default.createElement(__1.Paragraph, null, + "The ", + react_1.default.createElement("code", null, "Code"), + " component is used to highlight the syntax of a code block. It accepts a string as children and strips of its indentation."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, { useAllThemes: true }, + react_1.default.createElement(__1.Code, null, ` + const message = 'This is JavaScript code!'; + + console.log(message); + `)), + react_1.default.createElement(__1.Headline, { level: '2' }, "Languages"), + react_1.default.createElement(__1.Paragraph, null, "Besides the default `language` JavaScript the component also renders TypeScript, JSX and TSX."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(react_1.Fragment, null, + react_1.default.createElement(Property_1.Property, { name: 'language', value: 'typescript' }), + react_1.default.createElement(__1.Code, { language: 'typescript' }, ` + const message: string = 'This is TypeScript code!'; + + console.log(message); + `), + react_1.default.createElement(Property_1.Property, { name: 'language', value: 'shell' }), + react_1.default.createElement(__1.Code, { language: 'shell' }, ` + # This is a comment + $ npm run install + `), + react_1.default.createElement("hr", null), + react_1.default.createElement(Property_1.Property, { name: 'language', value: 'tsx' }), + react_1.default.createElement(__1.Code, { language: 'tsx' }, ` + const Component = (): ReactElement =>
; + `), + react_1.default.createElement("hr", null), + react_1.default.createElement(Property_1.Property, { name: 'language', value: 'jsx' }), + react_1.default.createElement(__1.Code, { language: 'jsx' }, ` + const Component = () =>
; + `))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Inline"), + react_1.default.createElement(__1.Paragraph, null, "Code can also be rendered inline in a Paragraph."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.Paragraph, null, + "This block contains an inline ", + react_1.default.createElement(__1.Code, { type: 'inline' }, "variableName"), + ".")))); +exports.Documentation = Documentation; diff --git a/build/lib/components/documentation/Code/getPrismStyles.d.ts b/build/lib/components/documentation/Code/getPrismStyles.d.ts new file mode 100644 index 00000000..f2724d22 --- /dev/null +++ b/build/lib/components/documentation/Code/getPrismStyles.d.ts @@ -0,0 +1,3 @@ +import { Theme } from '../../..'; +declare const getPrismStyles: (theme: Theme) => object; +export { getPrismStyles }; diff --git a/build/lib/components/documentation/Code/getPrismStyles.js b/build/lib/components/documentation/Code/getPrismStyles.js new file mode 100644 index 00000000..0cd96b07 --- /dev/null +++ b/build/lib/components/documentation/Code/getPrismStyles.js @@ -0,0 +1,121 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getPrismStyles = void 0; +const color_1 = __importDefault(require("color")); +const getPrismStyles = function (theme) { + const blue = (0, color_1.default)(theme.color.division.wolkenkit).lighten(0.6).desaturate(0.1), green = (0, color_1.default)(theme.color.division.technologies).lighten(0.5).desaturate(0.2), pink = (0, color_1.default)(theme.color.division.company).lighten(0.4).desaturate(0.3), purple = (0, color_1.default)(theme.color.division.learning).lighten(1).desaturate(0.4); + const prismStyles = { + comment: { + color: theme.color.brand.grayLight + }, + prolog: { + color: theme.color.brand.grayLight + }, + doctype: { + color: theme.color.brand.grayLight + }, + cdata: { + color: theme.color.brand.grayLight + }, + punctuation: { + color: theme.color.brand.grayModest + }, + '.namespace': { + opacity: '.7' + }, + property: { + color: green + }, + keyword: { + color: purple + }, + tag: { + color: green + }, + 'class-name': { + color: pink + }, + 'maybe-class-name': { + color: pink + }, + boolean: { + color: blue + }, + constant: { + color: green + }, + symbol: { + color: pink + }, + deleted: { + color: pink + }, + number: { + color: purple + }, + selector: { + color: green + }, + attrname: { + color: green + }, + 'attr-value': { + color: blue + }, + string: { + color: blue + }, + char: { + color: green + }, + builtin: { + color: green + }, + inserted: { + color: green + }, + variable: { + color: blue + }, + operator: { + color: theme.color.brand.grayModest + }, + entity: { + color: '#FFFFB6', + cursor: 'help' + }, + url: { + color: purple + }, + '.style.token.string': { + color: green + }, + atrule: { + color: green + }, + attrvalue: { + color: blue + }, + function: { + color: green + }, + regex: { + color: green + }, + important: { + color: '#fd971f', + fontWeight: 'bold' + }, + bold: { + fontWeight: 'bold' + }, + italic: { + fontStyle: 'italic' + } + }; + return prismStyles; +}; +exports.getPrismStyles = getPrismStyles; diff --git a/build/lib/components/documentation/Code/index.d.ts b/build/lib/components/documentation/Code/index.d.ts new file mode 100644 index 00000000..47ff78a3 --- /dev/null +++ b/build/lib/components/documentation/Code/index.d.ts @@ -0,0 +1,11 @@ +import { FunctionComponent } from 'react'; +interface CodeProps { + id?: string; + children: string | undefined | null; + language?: 'javascript' | 'jsx' | 'typescript' | 'tsx' | 'shell'; + className?: string; + type?: 'inline' | 'block'; + showLineNumbers?: boolean; +} +declare const Code: FunctionComponent; +export { Code }; diff --git a/build/lib/components/documentation/Code/index.js b/build/lib/components/documentation/Code/index.js new file mode 100644 index 00000000..b57a1002 --- /dev/null +++ b/build/lib/components/documentation/Code/index.js @@ -0,0 +1,80 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Code = void 0; +const bash_1 = __importDefault(require("react-syntax-highlighter/dist/cjs/languages/prism/bash")); +const getPrismStyles_1 = require("./getPrismStyles"); +const javascript_1 = __importDefault(require("react-syntax-highlighter/dist/cjs/languages/prism/javascript")); +const jsx_1 = __importDefault(require("react-syntax-highlighter/dist/cjs/languages/prism/jsx")); +const common_tags_1 = require("common-tags"); +const react_syntax_highlighter_1 = require("react-syntax-highlighter"); +const tsx_1 = __importDefault(require("react-syntax-highlighter/dist/cjs/languages/prism/tsx")); +const typescript_1 = __importDefault(require("react-syntax-highlighter/dist/cjs/languages/prism/typescript")); +const styles_1 = require("../../../styles"); +const styles_2 = require("./styles"); +const react_1 = __importStar(require("react")); +react_syntax_highlighter_1.PrismLight.registerLanguage('javascript', javascript_1.default); +react_syntax_highlighter_1.PrismLight.registerLanguage('jsx', jsx_1.default); +react_syntax_highlighter_1.PrismLight.registerLanguage('tsx', tsx_1.default); +react_syntax_highlighter_1.PrismLight.registerLanguage('typescript', typescript_1.default); +react_syntax_highlighter_1.PrismLight.registerLanguage('shell', bash_1.default); +react_syntax_highlighter_1.PrismLight.registerLanguage('bash', bash_1.default); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const Code = ({ children, className, id, language = 'javascript', type = 'block', showLineNumbers = false }) => { + const theme = (0, styles_1.useTheme)(); + const classes = useStyles(); + const prismStyles = (0, react_1.useMemo)(() => (0, getPrismStyles_1.getPrismStyles)(theme), [theme]); + if (!children) { + return null; + } + if (type === 'inline') { + return react_1.default.createElement("code", { id: id }, children); + } + const componentClasses = (0, styles_1.classNames)(classes.Code, { + [classes.WithLineNumbers]: showLineNumbers + }, className); + return (react_1.default.createElement("div", { id: id, className: componentClasses }, + react_1.default.createElement(react_syntax_highlighter_1.PrismLight, { showLineNumbers: showLineNumbers, style: prismStyles, language: language, customStyle: { backgroundColor: 'none' }, wrapLines: true, codeTagProps: { + className: classes.CodeContainer + } }, (0, common_tags_1.stripIndent)(children)))); +}; +exports.Code = Code; +Code.defaultProps = { + type: 'block' +}; +Code.displayName = 'Code'; diff --git a/build/lib/components/documentation/Code/styles.d.ts b/build/lib/components/documentation/Code/styles.d.ts new file mode 100644 index 00000000..88754c14 --- /dev/null +++ b/build/lib/components/documentation/Code/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type CodeClassNames = 'Code' | 'CodeContainer' | 'WithLineNumbers'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/documentation/Code/styles.js b/build/lib/components/documentation/Code/styles.js new file mode 100644 index 00000000..f11db700 --- /dev/null +++ b/build/lib/components/documentation/Code/styles.js @@ -0,0 +1,34 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const color_1 = __importDefault(require("color")); +const styles = (theme) => ({ + Code: { + marginBottom: theme.space(3), + background: theme.color.brand.grayDark, + maxWidth: theme.space(100), + display: 'block', + '& code': { + fontFamily: theme.font.family.code, + paddingTop: theme.space(2), + paddingBottom: theme.space(2), + paddingLeft: theme.space(2), + paddingRight: '0 !important', + color: '#666', + fontSize: '15px', + display: 'block' + }, + '& $CodeContainer': { + border: 0, + color: (0, color_1.default)(theme.color.brand.grayModest).lighten(0.5).rgb().toString(), + paddingRight: `${theme.space(1)}px !important`, + overflow: 'auto' + } + }, + CodeContainer: {}, + WithLineNumbers: {} +}); +exports.styles = styles; diff --git a/build/lib/components/documentation/ComponentPreview/index.d.ts b/build/lib/components/documentation/ComponentPreview/index.d.ts new file mode 100644 index 00000000..49556ff7 --- /dev/null +++ b/build/lib/components/documentation/ComponentPreview/index.d.ts @@ -0,0 +1,10 @@ +import { Background } from '../../Background'; +import { FunctionComponent } from 'react'; +interface ComponentPreviewProps { + className?: string; + useAllThemes?: boolean; + background?: Background; + previewPadding?: boolean; +} +declare const ComponentPreview: FunctionComponent; +export { ComponentPreview }; diff --git a/build/lib/components/documentation/ComponentPreview/index.js b/build/lib/components/documentation/ComponentPreview/index.js new file mode 100644 index 00000000..400a7f92 --- /dev/null +++ b/build/lib/components/documentation/ComponentPreview/index.js @@ -0,0 +1,31 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ComponentPreview = void 0; +const Code_1 = require("../Code"); +const formatAsPrettyString_1 = require("../formatAsPrettyString"); +const SplitView_1 = require("../SplitView"); +const styles_1 = require("../../../styles"); +const styles_2 = require("./styles"); +const react_1 = __importDefault(require("react")); +const __1 = require("../../.."); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const ComponentPreview = ({ background = 'light', children, previewPadding, useAllThemes = false }) => { + const classes = useStyles(); + const componentClasses = (0, styles_1.classNames)(classes.ComponentPreview, { + [classes.BackgroundDark]: background === 'dark' + }); + return (react_1.default.createElement(SplitView_1.SplitView, { className: componentClasses, previewPadding: previewPadding }, + react_1.default.createElement(Code_1.Code, { language: 'jsx', className: classes.Code }, (0, formatAsPrettyString_1.formatAsPrettyString)(children)), + useAllThemes ? + (react_1.default.createElement("div", null, + children, + react_1.default.createElement("hr", null), + react_1.default.createElement(__1.ThemeProvider, { theme: new __1.themes.Wolkenkit() }, + react_1.default.createElement("div", null, children)))) : + children)); +}; +exports.ComponentPreview = ComponentPreview; +ComponentPreview.displayName = 'ComponentPreview'; diff --git a/build/lib/components/documentation/ComponentPreview/styles.d.ts b/build/lib/components/documentation/ComponentPreview/styles.d.ts new file mode 100644 index 00000000..ac5f35b7 --- /dev/null +++ b/build/lib/components/documentation/ComponentPreview/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type ComponentPreviewClassNames = 'ComponentPreview' | 'BackgroundDark' | 'Code'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/documentation/ComponentPreview/styles.js b/build/lib/components/documentation/ComponentPreview/styles.js new file mode 100644 index 00000000..6f34561f --- /dev/null +++ b/build/lib/components/documentation/ComponentPreview/styles.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = (theme) => ({ + ComponentPreview: {}, + BackgroundDark: { + '& > *': { + background: theme.color.brand.grayDark + } + }, + Code: { + '& code': { + maxWidth: 'none' + } + } +}); +exports.styles = styles; diff --git a/build/lib/components/documentation/Property/index.d.ts b/build/lib/components/documentation/Property/index.d.ts new file mode 100644 index 00000000..b8e66264 --- /dev/null +++ b/build/lib/components/documentation/Property/index.d.ts @@ -0,0 +1,8 @@ +import { FunctionComponent } from 'react'; +interface PropertyProps { + name?: string; + value: any; + description?: string; +} +declare const Property: FunctionComponent; +export { Property }; diff --git a/build/lib/components/documentation/Property/index.js b/build/lib/components/documentation/Property/index.js new file mode 100644 index 00000000..faaf252f --- /dev/null +++ b/build/lib/components/documentation/Property/index.js @@ -0,0 +1,20 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Property = void 0; +const formatAsPrettyString_1 = require("../formatAsPrettyString"); +const __1 = require("../../.."); +const react_1 = __importDefault(require("react")); +const Property = ({ name, value, description }) => (react_1.default.createElement(__1.Paragraph, null, + name ? react_1.default.createElement("span", null, + react_1.default.createElement("code", null, name), + ": ") : null, + react_1.default.createElement("code", null, (0, formatAsPrettyString_1.formatAsPrettyString)(value)), + description ? react_1.default.createElement("span", null, + " ", + ' ', + description) : null)); +exports.Property = Property; +Property.displayName = 'Property'; diff --git a/build/lib/components/documentation/SplitView/index.d.ts b/build/lib/components/documentation/SplitView/index.d.ts new file mode 100644 index 00000000..086031e6 --- /dev/null +++ b/build/lib/components/documentation/SplitView/index.d.ts @@ -0,0 +1,8 @@ +import { FunctionComponent, ReactNode } from 'react'; +interface ComponentPreviewProps { + className?: string; + children: [ReactNode, ReactNode]; + previewPadding?: boolean; +} +declare const SplitView: FunctionComponent; +export { SplitView }; diff --git a/build/lib/components/documentation/SplitView/index.js b/build/lib/components/documentation/SplitView/index.js new file mode 100644 index 00000000..de97bb86 --- /dev/null +++ b/build/lib/components/documentation/SplitView/index.js @@ -0,0 +1,59 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SplitView = void 0; +const __1 = require("../../.."); +const styles_1 = require("../../../styles"); +const react_1 = __importStar(require("react")); +const styles_2 = require("./styles"); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const SplitView = ({ children, className, previewPadding = true }) => { + const classes = useStyles(); + const [isCodeVisible, setIsCodeVisible] = (0, react_1.useState)(true); + const componentClasses = (0, styles_1.classNames)(classes.SplitView, { + [classes.SplitViewWithCodeVisible]: isCodeVisible, + [classes.WithPreviewPadding]: previewPadding + }, className); + if (!Array.isArray(children)) { + return null; + } + return (react_1.default.createElement("div", { className: componentClasses }, + react_1.default.createElement("div", { className: classes.TogglePanel }, + react_1.default.createElement(__1.Button, { isSubtle: true, className: classes.ToggleButtonCode, icon: 'expand', onClick: () => setIsCodeVisible(!isCodeVisible) })), + react_1.default.createElement("div", { className: classes.CodePanel }, children[0]), + react_1.default.createElement("div", { className: classes.PreviewPanel }, children[1]))); +}; +exports.SplitView = SplitView; +SplitView.displayName = 'SplitView'; diff --git a/build/lib/components/documentation/SplitView/styles.d.ts b/build/lib/components/documentation/SplitView/styles.d.ts new file mode 100644 index 00000000..048e071b --- /dev/null +++ b/build/lib/components/documentation/SplitView/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type SplitViewClassNames = 'SplitView' | 'SplitViewWithCodeVisible' | 'WithPreviewPadding' | 'TogglePanel' | 'PreviewPanel' | 'CodePanel' | 'ToggleButtonCode'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/documentation/SplitView/styles.js b/build/lib/components/documentation/SplitView/styles.js new file mode 100644 index 00000000..c3990d67 --- /dev/null +++ b/build/lib/components/documentation/SplitView/styles.js @@ -0,0 +1,113 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = (theme) => ({ + SplitView: { + background: theme.color.brand.grayDark, + marginTop: theme.space(2), + position: 'relative', + display: 'flex', + margin: `${theme.space(3)}px 0 ${theme.space(3)}px 0`, + overflow: 'hidden' + }, + SplitViewWithCodeVisible: { + flexBasis: '50%', + flexGrow: 1, + flexShrink: 1 + }, + WithPreviewPadding: { + '& $PreviewPanel': { + padding: theme.space(2) + } + }, + TogglePanel: { + flexGrow: 0, + flexShrink: 0, + flexBasis: `${theme.space(3)}px`, + background: `${theme.color.brand.grayDark} !important`, + borderRight: `1px solid ${theme.color.brand.gray}` + }, + CodePanel: { + maxHeight: '50vh', + flexGrow: 0, + flexShrink: 0, + overflowY: 'auto', + position: 'relative', + '& > *': { + width: '100%', + height: '100%', + overflow: 'auto' + } + }, + PreviewPanel: { + background: theme.color.brand.white, + position: 'relative', + minHeight: '100%', + overflow: 'auto', + flexGrow: 1, + flexShrink: 1, + flexBasis: '50%', + border: `1px solid ${theme.color.brand.grayLight}`, + '& hr:not([class])': { + background: theme.color.brand.grayLight, + margin: `${theme.space(2)}px -${theme.space(2)}px`, + height: '1px', + borderStyle: 'solid', + border: '0' + } + }, + ToggleButtonCode: { + flexBasis: 'auto', + width: '100%', + height: '100%', + '-webkit-tap-highlight-color': 'rgba(0,0,0,0)', + '&:focus': { + border: '0 !important' + }, + '& svg': { + transition: 'transform 300ms', + fill: `${theme.color.brand.white} !important` + } + }, + [theme.breakpoints.down('sm')]: { + CodePanel: { + height: '0px' + }, + PreviewPanel: { + maxHeight: '50vh' + }, + SplitView: { + flexDirection: 'column', + '& $ToggleButtonCode svg': { + transform: 'rotate(90deg)' + } + }, + SplitViewWithCodeVisible: { + '& $CodePanel': { + height: '50vh', + width: '100%' + }, + '& $ToggleButtonCode svg': { + transform: 'rotate(-90deg)' + } + } + }, + [theme.breakpoints.up('md')]: { + CodePanel: { + width: '0%' + }, + PreviewPanel: { + maxHeight: '50vh' + }, + SplitViewWithCodeVisible: { + '& $CodePanel': { + flexBasis: '50%', + width: '50%' + }, + '& $ToggleButtonCode svg': { + transform: 'rotate(180deg)' + } + } + } +}); +exports.styles = styles; diff --git a/build/lib/components/documentation/formatAsPrettyString.d.ts b/build/lib/components/documentation/formatAsPrettyString.d.ts new file mode 100644 index 00000000..ea434942 --- /dev/null +++ b/build/lib/components/documentation/formatAsPrettyString.d.ts @@ -0,0 +1,2 @@ +declare const formatAsPrettyString: (source?: any) => string | undefined; +export { formatAsPrettyString }; diff --git a/build/lib/components/documentation/formatAsPrettyString.js b/build/lib/components/documentation/formatAsPrettyString.js new file mode 100644 index 00000000..9de5f53f --- /dev/null +++ b/build/lib/components/documentation/formatAsPrettyString.js @@ -0,0 +1,48 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +exports.formatAsPrettyString = void 0; +const isReactElement_1 = require("../../utils/isReactElement"); +const pretty_format_1 = __importStar(require("pretty-format")); +const { ReactElement: ReactElementPlugin } = pretty_format_1.plugins; +const formatAsPrettyString = (source) => { + const plugins = []; + if ((0, isReactElement_1.isReactElement)(source)) { + plugins.push(ReactElementPlugin); + } + const prettifiedSourceAsString = (0, pretty_format_1.default)(source, { plugins }); + return prettifiedSourceAsString; +}; +exports.formatAsPrettyString = formatAsPrettyString; diff --git a/build/lib/components/feedback/BusyIndicator/Documentation.d.ts b/build/lib/components/feedback/BusyIndicator/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/feedback/BusyIndicator/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/feedback/BusyIndicator/Documentation.js b/build/lib/components/feedback/BusyIndicator/Documentation.js new file mode 100644 index 00000000..43fabbc7 --- /dev/null +++ b/build/lib/components/feedback/BusyIndicator/Documentation.js @@ -0,0 +1,19 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../../components/documentation/ComponentPreview"); +const __1 = require("../../.."); +const react_1 = __importDefault(require("react")); +const Documentation = () => (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "BusyIndicator"), + react_1.default.createElement(__1.Paragraph, null, + "The ", + react_1.default.createElement("code", null, "BusyIndicator"), + " component is used to inform the user about the application doing work and being busy."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, { useAllThemes: true }, + react_1.default.createElement(__1.Container, { background: 'dark' }, + react_1.default.createElement(__1.BusyIndicator, null))))); +exports.Documentation = Documentation; diff --git a/build/lib/components/feedback/BusyIndicator/index.d.ts b/build/lib/components/feedback/BusyIndicator/index.d.ts new file mode 100644 index 00000000..7f2e11ed --- /dev/null +++ b/build/lib/components/feedback/BusyIndicator/index.d.ts @@ -0,0 +1,7 @@ +import { FunctionComponent } from 'react'; +interface BusyIndicatorProps { + className?: string; + isVisible?: boolean; +} +declare const BusyIndicator: FunctionComponent; +export { BusyIndicator }; diff --git a/build/lib/components/feedback/BusyIndicator/index.js b/build/lib/components/feedback/BusyIndicator/index.js new file mode 100644 index 00000000..970ff988 --- /dev/null +++ b/build/lib/components/feedback/BusyIndicator/index.js @@ -0,0 +1,22 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.BusyIndicator = void 0; +const styles_1 = require("./styles"); +const styles_2 = require("../../../styles"); +const react_1 = __importDefault(require("react")); +const useStyles = (0, styles_2.createUseStyles)(styles_1.styles); +const BusyIndicator = ({ className, isVisible = true }) => { + const classes = useStyles(); + if (!isVisible) { + return null; + } + return (react_1.default.createElement("div", { className: (0, styles_2.classNames)(classes.BusyIndicator, className) }, + react_1.default.createElement("div", { className: (0, styles_2.classNames)(classes.Pulse, classes.Pulse1) }), + react_1.default.createElement("div", { className: (0, styles_2.classNames)(classes.Pulse, classes.Pulse2) }), + react_1.default.createElement("div", { className: (0, styles_2.classNames)(classes.Pulse, classes.Pulse3) }))); +}; +exports.BusyIndicator = BusyIndicator; +BusyIndicator.displayName = 'BusyIndicator'; diff --git a/build/lib/components/feedback/BusyIndicator/styles.d.ts b/build/lib/components/feedback/BusyIndicator/styles.d.ts new file mode 100644 index 00000000..075da7f0 --- /dev/null +++ b/build/lib/components/feedback/BusyIndicator/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type BusyIndicatorClassNames = '@keyframes loading-indicator-pulse' | 'BusyIndicator' | 'Pulse' | 'Pulse1' | 'Pulse2' | 'Pulse3'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/feedback/BusyIndicator/styles.js b/build/lib/components/feedback/BusyIndicator/styles.js new file mode 100644 index 00000000..d311ee11 --- /dev/null +++ b/build/lib/components/feedback/BusyIndicator/styles.js @@ -0,0 +1,42 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = (theme) => ({ + '@keyframes loading-indicator-pulse': { + '0%': { + transform: 'scale(0.5)' + }, + '20%': { + transform: 'scale(1)' + }, + '100%': { + transform: 'scale(0.5)' + } + }, + BusyIndicator: { + display: 'flex', + justifyContent: 'flex-start', + alignItems: 'center', + minHeight: '100px' + }, + Pulse: { + width: `${theme.space(1.5)}px`, + height: `${theme.space(1.5)}px`, + marginRight: 3, + borderRadius: '50%', + backgroundColor: theme.color.brand.highlight, + animationIterationCount: 'infinite', + animationTimingFunction: 'linear', + animationName: '$loading-indicator-pulse', + animationDuration: '900ms', + animationFillMode: 'both' + }, + Pulse1: { + animationDelay: '-300ms' + }, + Pulse2: { + animationDelay: '-150ms' + }, + Pulse3: {} +}); +exports.styles = styles; diff --git a/build/lib/components/feedback/Dialogs/index.d.ts b/build/lib/components/feedback/Dialogs/index.d.ts new file mode 100644 index 00000000..ddb41989 --- /dev/null +++ b/build/lib/components/feedback/Dialogs/index.d.ts @@ -0,0 +1,9 @@ +import { DialogService } from '../../../services/DialogService'; +import { FunctionComponent } from 'react'; +interface DialogsProps { + className?: string; + dialogService?: DialogService; + portalRootNode?: HTMLElement; +} +declare const Dialogs: FunctionComponent; +export { Dialogs }; diff --git a/build/lib/components/feedback/Dialogs/index.js b/build/lib/components/feedback/Dialogs/index.js new file mode 100644 index 00000000..3d368f43 --- /dev/null +++ b/build/lib/components/feedback/Dialogs/index.js @@ -0,0 +1,81 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Dialogs = void 0; +const styles_1 = require("./styles"); +const useForceUpdate_1 = require("../../useForceUpdate"); +const __1 = require("../../.."); +const styles_2 = require("../../../styles"); +const services_1 = require("../../../services"); +const react_1 = __importStar(require("react")); +const useStyles = (0, styles_2.createUseStyles)(styles_1.styles); +const Dialogs = ({ className, dialogService = __1.dialogs, portalRootNode }) => { + const classes = useStyles(); + const forceUpdate = (0, useForceUpdate_1.useForceUpdate)(); + const handleServiceChanged = (0, react_1.useCallback)(() => { + forceUpdate(); + }, []); + const handleCancel = (0, react_1.useCallback)(() => { + dialogService.state.confirm.onCancel(); + }, []); + const handleConfirm = (0, react_1.useCallback)(() => { + dialogService.state.confirm.onConfirm(); + }, []); + const handleKeyDown = (0, react_1.useCallback)((key) => { + switch (key) { + case 'Escape': + dialogService.state.confirm.onCancel(); + break; + case 'Enter': + dialogService.state.confirm.onConfirm(); + break; + default: + break; + } + }, []); + (0, react_1.useEffect)(() => { + dialogService.on('changed', handleServiceChanged); + return () => { + dialogService.removeListener('changed', handleServiceChanged); + }; + }, []); + return (react_1.default.createElement(__1.Modal, { attach: 'center', portalRootNode: services_1.excecutionEnvironment.canUseDom ? portalRootNode !== null && portalRootNode !== void 0 ? portalRootNode : (0, services_1.getPortalRootNode)() : undefined, showHeader: false, isVisible: dialogService.state.confirm.isVisible, className: (0, styles_2.classNames)(classes.Dialogs, className), onKeyDown: handleKeyDown, onCancel: handleCancel }, + react_1.default.createElement(__1.Headline, { level: '2', withPermalink: false, textAlign: 'center' }, dialogService.state.confirm.title), + react_1.default.createElement("div", { className: classes.Actions }, + react_1.default.createElement(__1.Button, { id: 'dialogs-confirm-action-cancel', adjust: 'auto', onClick: handleCancel }, dialogService.state.confirm.actions.cancel), + react_1.default.createElement(__1.Button, { id: 'dialogs-confirm-action-confirm', adjust: 'flex', onClick: handleConfirm, isPrimary: true, autoFocus: true }, dialogService.state.confirm.actions.confirm)))); +}; +exports.Dialogs = Dialogs; +Dialogs.displayName = 'Dialogs'; diff --git a/build/lib/components/feedback/Dialogs/styles.d.ts b/build/lib/components/feedback/Dialogs/styles.d.ts new file mode 100644 index 00000000..ec47c79b --- /dev/null +++ b/build/lib/components/feedback/Dialogs/styles.d.ts @@ -0,0 +1,3 @@ +import { ComponentClassNames } from '../../..'; +declare const styles: ComponentClassNames<'Dialogs' | 'Actions'>; +export { styles }; diff --git a/build/lib/components/feedback/Dialogs/styles.js b/build/lib/components/feedback/Dialogs/styles.js new file mode 100644 index 00000000..2c6aa2ac --- /dev/null +++ b/build/lib/components/feedback/Dialogs/styles.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = { + Dialogs: {}, + Actions: { + display: 'flex', + flexDirection: 'row', + justifyContent: 'center', + '& *': { + flexGrow: 0, + 'max-width': '200px' + } + } +}; +exports.styles = styles; diff --git a/build/lib/components/feedback/HighlightText/Documentation.d.ts b/build/lib/components/feedback/HighlightText/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/feedback/HighlightText/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/feedback/HighlightText/Documentation.js b/build/lib/components/feedback/HighlightText/Documentation.js new file mode 100644 index 00000000..1fefe3f8 --- /dev/null +++ b/build/lib/components/feedback/HighlightText/Documentation.js @@ -0,0 +1,18 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../documentation/ComponentPreview"); +const __1 = require("../../.."); +const react_1 = __importDefault(require("react")); +const Documentation = () => (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "HighlightText"), + react_1.default.createElement(__1.Paragraph, null, + "Use the ", + react_1.default.createElement("code", null, "HighlightText"), + " component to highlight search words within a text."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.HighlightText, { searchWords: ['foo', 'bar', 'baz'] }, "This text will be highlighted: foo, bar, and baz.")))); +exports.Documentation = Documentation; diff --git a/build/lib/components/feedback/HighlightText/index.d.ts b/build/lib/components/feedback/HighlightText/index.d.ts new file mode 100644 index 00000000..ebb08d80 --- /dev/null +++ b/build/lib/components/feedback/HighlightText/index.d.ts @@ -0,0 +1,8 @@ +import { FunctionComponent } from 'react'; +interface HighlightTextProps { + className?: string; + searchWords?: string[]; + children: string; +} +declare const HighlightText: FunctionComponent; +export { HighlightText }; diff --git a/build/lib/components/feedback/HighlightText/index.js b/build/lib/components/feedback/HighlightText/index.js new file mode 100644 index 00000000..044eb32e --- /dev/null +++ b/build/lib/components/feedback/HighlightText/index.js @@ -0,0 +1,62 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.HighlightText = void 0; +const react_highlight_words_1 = __importDefault(require("react-highlight-words")); +const styles_1 = require("../../../styles"); +const styles_2 = require("./styles"); +const react_1 = __importStar(require("react")); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const HighlightText = ({ className, children, searchWords }) => { + const classes = useStyles(); + if (!children) { + return null; + } + /* eslint-disable react/jsx-no-useless-fragment */ + if (!searchWords) { + return react_1.default.createElement(react_1.Fragment, null, children); + } + /* eslint-enable react/jsx-no-useless-fragment */ + const patterns = searchWords.map((word) => { + const lookupWordPattern = `(\\b${word})`; + return lookupWordPattern; + }); + return (react_1.default.createElement(react_highlight_words_1.default, { className: (0, styles_1.classNames)(classes.HighlightText, className), highlightClassName: classes.Highlight, searchWords: patterns, textToHighlight: children })); +}; +exports.HighlightText = HighlightText; +HighlightText.displayName = 'HighlightText'; diff --git a/build/lib/components/feedback/HighlightText/styles.d.ts b/build/lib/components/feedback/HighlightText/styles.d.ts new file mode 100644 index 00000000..866d7c8e --- /dev/null +++ b/build/lib/components/feedback/HighlightText/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type HighlightTextClassNames = 'HighlightText' | 'Highlight'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/feedback/HighlightText/styles.js b/build/lib/components/feedback/HighlightText/styles.js new file mode 100644 index 00000000..9fa48ee2 --- /dev/null +++ b/build/lib/components/feedback/HighlightText/styles.js @@ -0,0 +1,19 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const color_1 = __importDefault(require("color")); +const styles = (theme) => ({ + HighlightText: {}, + Highlight: { + background: (0, color_1.default)(theme.color.brand.highlight). + whiten(0.9). + fade(0.2). + rgb(). + string(), + padding: '0px 0 1px 0' + } +}); +exports.styles = styles; diff --git a/build/lib/components/feedback/Message/Documentation.d.ts b/build/lib/components/feedback/Message/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/feedback/Message/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/feedback/Message/Documentation.js b/build/lib/components/feedback/Message/Documentation.js new file mode 100644 index 00000000..acbc321d --- /dev/null +++ b/build/lib/components/feedback/Message/Documentation.js @@ -0,0 +1,50 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../../components/documentation/ComponentPreview"); +const __1 = require("../../.."); +const react_1 = __importStar(require("react")); +const Documentation = () => (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "Message"), + react_1.default.createElement(__1.Paragraph, null, + "The ", + react_1.default.createElement("code", null, "Message"), + " component is used to focus the user's attention to a specific issue without interrupting his current workflow. It is displayed inline, right above the origin of the error or the info."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(react_1.Fragment, null, + react_1.default.createElement(__1.Message, { type: 'error' }, "This is a wonderful error!"), + react_1.default.createElement(__1.Message, { type: 'info' }, "This is an info\u2026"))))); +exports.Documentation = Documentation; diff --git a/build/lib/components/feedback/Message/index.d.ts b/build/lib/components/feedback/Message/index.d.ts new file mode 100644 index 00000000..c6ae3cac --- /dev/null +++ b/build/lib/components/feedback/Message/index.d.ts @@ -0,0 +1,8 @@ +import { FunctionComponent } from 'react'; +interface MessageProps { + isVisible?: boolean; + type?: 'default' | 'info' | 'error'; + id?: string; +} +declare const Message: FunctionComponent; +export { Message }; diff --git a/build/lib/components/feedback/Message/index.js b/build/lib/components/feedback/Message/index.js new file mode 100644 index 00000000..f3d22d84 --- /dev/null +++ b/build/lib/components/feedback/Message/index.js @@ -0,0 +1,34 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Message = void 0; +const __1 = require("../../.."); +const styles_1 = require("../../../styles"); +const styles_2 = require("./styles"); +const react_1 = __importDefault(require("react")); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const Message = ({ children, id, isVisible = true, type = 'default' }) => { + const classes = useStyles(); + let iconName; + if (type !== 'default') { + iconName = type; + } + const componentClasses = (0, styles_1.classNames)(classes.Message, { + [classes.TypeInfo]: type === 'info', + [classes.TypeError]: type === 'error', + [classes.WithIcon]: iconName + }); + if (!isVisible) { + return null; + } + return (react_1.default.createElement("div", { id: id, className: componentClasses }, + iconName ? + react_1.default.createElement("div", { className: classes.IconContainer }, + react_1.default.createElement(__1.Icon, { className: classes.Icon, name: iconName })) : + null, + react_1.default.createElement("div", { className: classes.Content }, children))); +}; +exports.Message = Message; +Message.displayName = 'Message'; diff --git a/build/lib/components/feedback/Message/styles.d.ts b/build/lib/components/feedback/Message/styles.d.ts new file mode 100644 index 00000000..4ba9f592 --- /dev/null +++ b/build/lib/components/feedback/Message/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type MessageClassNames = 'Message' | 'TypeError' | 'TypeInfo' | 'WithIcon' | 'Icon' | 'IconContainer' | 'Content'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/feedback/Message/styles.js b/build/lib/components/feedback/Message/styles.js new file mode 100644 index 00000000..3d231e7b --- /dev/null +++ b/build/lib/components/feedback/Message/styles.js @@ -0,0 +1,39 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = (theme) => ({ + Message: { + padding: `${theme.space(1.5)}px ${theme.space(2)}px`, + marginBottom: `${theme.space(1)}px`, + fontFamily: theme.font.family.default + }, + TypeError: { + background: theme.color.state.error, + color: theme.color.brand.white, + '& $Icon': { + fill: theme.color.brand.white + } + }, + TypeInfo: { + background: theme.color.brand.grayLight + }, + WithIcon: { + display: 'flex', + '& $IconContainer': { + display: 'flex', + alignItems: 'center', + justifyContent: 'center', + flexGrow: 0, + flexBasis: 'auto', + marginRight: `${theme.space(1.5)}px` + }, + '&. $Content': { + flexGrow: 1, + flexBasis: '100%' + } + }, + IconContainer: {}, + Icon: {}, + Content: {} +}); +exports.styles = styles; diff --git a/build/lib/components/feedback/Modal/Documentation.d.ts b/build/lib/components/feedback/Modal/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/feedback/Modal/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/feedback/Modal/Documentation.js b/build/lib/components/feedback/Modal/Documentation.js new file mode 100644 index 00000000..23f04e5f --- /dev/null +++ b/build/lib/components/feedback/Modal/Documentation.js @@ -0,0 +1,104 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../../components/documentation/ComponentPreview"); +const __1 = require("../../.."); +const react_1 = __importStar(require("react")); +const Documentation = () => { + const [isFirstModalVisible, setIsFirstModalVisible] = (0, react_1.useState)(false); + const [isSecondModalVisible, setIsSecondModalVisible] = (0, react_1.useState)(false); + const [isThirdModalVisible, setIsThirdModalVisible] = (0, react_1.useState)(false); + const [attach, setAttach] = (0, react_1.useState)('right'); + const [size, setSize] = (0, react_1.useState)('sm'); + return (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "Modal"), + react_1.default.createElement(__1.Paragraph, null, + "The ", + react_1.default.createElement("code", null, "Modal"), + " component is used display a temporary layer above the default content layer. It can be used gather feedback or present additional information that does not fit or belong inside the default content layer."), + react_1.default.createElement(__1.Paragraph, null, "It is blocking access to the default content layer, so this component will interrupt the current workflow of the user. Make sure to use it wisely."), + react_1.default.createElement(__1.Paragraph, null, + "The ", + react_1.default.createElement("code", null, "Modal"), + " is a controlled component that can be shown by setting ", + react_1.default.createElement("code", null, "isVisible"), + " to ", + react_1.default.createElement("code", null, "true"), + ". Pressing the ", + react_1.default.createElement("code", null, "Escape"), + " key, pressing the close button in the header, or clicking on the dark backdrop element that darkens the underlying content layer will trigger the ", + react_1.default.createElement("code", null, "onCancel"), + ". Make sure to react to it and to update your state accordingly."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(react_1.Fragment, null, + react_1.default.createElement(__1.Button, { onClick: () => setIsFirstModalVisible(true) }, "Open modal"), + react_1.default.createElement(__1.Modal, { header: 'This is the header', isVisible: isFirstModalVisible, onCancel: () => setIsFirstModalVisible(false) }, "Here goes the content\u2026"))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Hiding the header"), + react_1.default.createElement(__1.Paragraph, null, + "if you need more control of the buttons that should close the header, it is possible to remove the header by setting ", + react_1.default.createElement("code", null, "showHeader"), + " to ", + react_1.default.createElement("code", null, "false"), + "."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(react_1.Fragment, null, + react_1.default.createElement(__1.Button, { onClick: () => setIsSecondModalVisible(true) }, "Open modal without a header"), + react_1.default.createElement(__1.Modal, { showHeader: false, isVisible: isSecondModalVisible, onCancel: () => setIsSecondModalVisible(false) }, + react_1.default.createElement("div", null, "Here goes the content\u2026")))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Positioning and sizing"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(react_1.Fragment, null, + react_1.default.createElement(__1.ControlGroup, null, + react_1.default.createElement(__1.ControlGroupItem, { label: 'attach' }, + react_1.default.createElement(__1.Dropdown, { options: [ + { value: 'right', label: 'right' }, + { value: 'left', label: 'left' }, + { value: 'center', label: 'center' } + ], value: attach, onChange: (value) => setAttach(value) })), + react_1.default.createElement(__1.ControlGroupItem, { label: 'size' }, + react_1.default.createElement(__1.Dropdown, { options: [ + { value: 'sm', label: 'sm' }, + { value: 'md', label: 'md' }, + { value: 'lg', label: 'lg' }, + { value: 'fullscreen', label: 'fullscreen' } + ], value: size, onChange: (value) => setSize(value) }))), + react_1.default.createElement(__1.Button, { onClick: () => setIsThirdModalVisible(true) }, "Open modal"), + react_1.default.createElement(__1.Modal, { attach: attach, size: size, isVisible: isThirdModalVisible, onCancel: () => setIsThirdModalVisible(false) }, + "This is a modal attached to ", + attach, + "."))))); +}; +exports.Documentation = Documentation; diff --git a/build/lib/components/feedback/Modal/index.d.ts b/build/lib/components/feedback/Modal/index.d.ts new file mode 100644 index 00000000..6eedb772 --- /dev/null +++ b/build/lib/components/feedback/Modal/index.d.ts @@ -0,0 +1,15 @@ +import { FunctionComponent } from 'react'; +interface ModalProps { + isVisible: boolean; + onCancel: () => void; + attach?: 'left' | 'right' | 'sidebar' | 'center'; + className?: string; + size?: 'sm' | 'md' | 'lg' | 'fullscreen'; + padding?: 'default' | 'none'; + showHeader?: boolean; + header?: string; + portalRootNode?: HTMLElement; + onKeyDown?: (key: string, event: KeyboardEvent) => void; +} +declare const Modal: FunctionComponent; +export { Modal }; diff --git a/build/lib/components/feedback/Modal/index.js b/build/lib/components/feedback/Modal/index.js new file mode 100644 index 00000000..0f257cfc --- /dev/null +++ b/build/lib/components/feedback/Modal/index.js @@ -0,0 +1,126 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Modal = void 0; +const react_dom_1 = __importDefault(require("react-dom")); +const __1 = require("../../.."); +const styles_1 = require("../../../styles"); +const styles_2 = require("./styles"); +const react_1 = __importStar(require("react")); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const Modal = ({ attach = 'left', className, children, header = null, isVisible, showHeader = true, size = 'sm', padding = 'default', portalRootNode, onCancel, onKeyDown = () => { + // Intentionally left blank. +} }) => { + const classes = useStyles(); + const backdropClasses = (0, styles_1.classNames)(classes.Backdrop, { + [classes.IsVisible]: isVisible + }); + const handleBackDropClicked = (0, react_1.useCallback)(() => { + onCancel(); + }, [onCancel]); + const handleKeyDown = (0, react_1.useCallback)((event) => { + switch (event.key) { + case 'Escape': + onCancel(); + break; + case 'Enter': + break; + default: + break; + } + onKeyDown(event.key, event); + }, [onCancel, onKeyDown]); + (0, react_1.useEffect)(() => { + const body = document.querySelector('body'); + if (body) { + if (isVisible) { + body.classList.add('thenativeweb-modal--visible'); + } + else { + body.classList.remove('thenativeweb-modal--visible'); + } + } + }, [isVisible]); + (0, react_1.useEffect)(() => { + const body = document.querySelector('body'); + document.addEventListener('keydown', handleKeyDown); + return () => { + if (body) { + document.removeEventListener('keydown', handleKeyDown); + } + }; + }, []); + const chromeClasses = (0, styles_1.classNames)(classes.Chrome, { + [classes.ChromeSizeSm]: size === 'sm', + [classes.ChromeSizeMd]: size === 'md', + [classes.ChromeSizeLg]: size === 'lg', + [classes.ChromeSizeFullscreen]: size === 'fullscreen', + [classes.ChromeAttachedSidebar]: attach === 'sidebar', + [classes.ChromeAttachedLeft]: attach === 'left', + [classes.ChromeAttachedRight]: attach === 'right', + [classes.ChromeAttachedCenter]: attach === 'center', + [classes.ChromePaddingNone]: padding === 'none' + }, className); + let transitionType; + switch (attach) { + case 'left': + case 'sidebar': + transitionType = 'FadeInRight'; + break; + case 'right': + transitionType = 'FadeInLeft'; + break; + default: + transitionType = 'Zoom'; + } + if (!__1.excecutionEnvironment.canUseDom) { + return null; + } + return react_dom_1.default.createPortal((react_1.default.createElement("div", { className: classes.Modal }, + react_1.default.createElement("div", { className: backdropClasses, onClick: handleBackDropClicked }), + react_1.default.createElement(__1.Transition, { type: transitionType, in: isVisible }, + react_1.default.createElement("div", { className: chromeClasses, role: 'dialog' }, + showHeader ? + (react_1.default.createElement("div", { className: classes.Header }, + react_1.default.createElement("div", { className: classes.HeaderText }, header), + react_1.default.createElement(__1.Button, { isSubtle: true, icon: 'close', onClick: handleBackDropClicked }))) : + null, + react_1.default.createElement("div", { className: classes.Content }, children))))), portalRootNode !== null && portalRootNode !== void 0 ? portalRootNode : (0, __1.getPortalRootNode)()); +}; +exports.Modal = Modal; +Modal.displayName = 'Modal'; diff --git a/build/lib/components/feedback/Modal/styles.d.ts b/build/lib/components/feedback/Modal/styles.d.ts new file mode 100644 index 00000000..4d69b2cf --- /dev/null +++ b/build/lib/components/feedback/Modal/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type ModalClassNames = '@global' | 'Modal' | 'Backdrop' | 'IsVisible' | 'Chrome' | 'ChromeSizeSm' | 'ChromeSizeMd' | 'ChromeSizeLg' | 'ChromeSizeFullscreen' | 'ChromeAttachedSidebar' | 'ChromeAttachedLeft' | 'ChromeAttachedRight' | 'ChromeAttachedCenter' | 'ChromePaddingNone' | 'Header' | 'HeaderText' | 'Content' | 'Title'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/feedback/Modal/styles.js b/build/lib/components/feedback/Modal/styles.js new file mode 100644 index 00000000..1b6b6b53 --- /dev/null +++ b/build/lib/components/feedback/Modal/styles.js @@ -0,0 +1,152 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = (theme) => ({ + '@global': { + '.thenativeweb-modal--visible': { + pointerEvents: 'none' + } + }, + Modal: { + position: 'fixed', + left: 0, + top: 0, + right: 0, + bottom: 0, + pointerEvents: 'none', + zIndex: theme.zIndices.modal, + display: 'flex', + justifyContent: 'center', + alignItems: 'center' + }, + Backdrop: { + background: theme.color.backdrop, + position: 'fixed', + left: 0, + top: 0, + right: 0, + bottom: 0, + overflow: 'hidden', + zIndex: theme.zIndices.modal - 1, + pointerEvents: 'none', + opacity: 0, + transition: 'opacity 300ms', + willChange: 'opacity' + }, + IsVisible: { + pointerEvents: 'all', + opacity: 1 + }, + Chrome: { + position: 'fixed', + display: 'flex', + flexDirection: 'column', + margin: 0, + height: '100%', + zIndex: theme.zIndices.modal, + background: theme.color.brand.white, + opacity: 0, + pointerEvents: 'all', + willChange: 'opacity, transform', + fontFamily: theme.font.family.default, + boxSizing: 'border-box' + }, + ChromeSizeSm: {}, + ChromeSizeMd: {}, + ChromeSizeLg: {}, + ChromeSizeFullscreen: { + width: '100vw' + }, + ChromeAttachedSidebar: { + left: theme.components.Sidebar.width, + top: 0 + }, + ChromeAttachedLeft: { + left: 0, + top: 0 + }, + ChromeAttachedRight: { + right: 0, + top: 0 + }, + ChromeAttachedCenter: { + maxWidth: `${theme.space(56)}px`, + width: 'auto', + height: 'auto', + top: 0 + }, + ChromePaddingNone: { + padding: 0 + }, + Header: { + flexBasis: 'auto', + flexShrink: 0, + display: 'flex', + justifyContent: 'space-between', + position: 'relative', + padding: `${theme.space(2)}px ${theme.space(4)}px`, + borderBottom: `1px solid ${theme.color.content.border}` + }, + HeaderText: { + fontFamily: theme.font.family.default, + fontSize: theme.font.size.xl, + opacity: 0.95, + fontWeight: 600, + textAlign: 'center' + }, + Content: { + flexGrow: 1, + flexShrink: 1, + padding: `${theme.space(2)}px ${theme.space(4)}px`, + '-webkit-overflow-scrolling': 'touch', + overflow: 'auto' + }, + Title: { + textAlign: 'center', + padding: 0, + margin: 0, + fontWeight: 600, + '&::after': { + content: '', + display: 'block', + flexGrow: 0, + flexShrink: 0, + flexBasis: 'auto', + width: '100%', + height: '1px', + background: theme.color.brand.grayDark, + opacity: 0.1, + marginTop: `${theme.space(3)}px`, + marginBottom: `${theme.space(3)}px`, + border: 'none' + } + }, + [theme.breakpoints.up('xs')]: { + ChromeSizeSm: { + width: '85vw' + }, + ChromeSizeMd: { + width: '95vw' + }, + ChromeSizeLg: { + width: '100vw' + } + }, + [theme.breakpoints.up('md')]: { + ChromeSizeSm: { + width: '50vw' + }, + ChromeSizeMd: { + width: '61vw' + }, + ChromeSizeLg: { + width: '90vw' + } + }, + [theme.breakpoints.up('lg')]: { + ChromeSizeSm: { + width: '25vw' + } + } +}); +exports.styles = styles; diff --git a/build/lib/components/feedback/ModalRow/index.d.ts b/build/lib/components/feedback/ModalRow/index.d.ts new file mode 100644 index 00000000..1698bfe3 --- /dev/null +++ b/build/lib/components/feedback/ModalRow/index.d.ts @@ -0,0 +1,3 @@ +import { FunctionComponent } from 'react'; +declare const ModalRow: FunctionComponent; +export { ModalRow }; diff --git a/build/lib/components/feedback/ModalRow/index.js b/build/lib/components/feedback/ModalRow/index.js new file mode 100644 index 00000000..636c4157 --- /dev/null +++ b/build/lib/components/feedback/ModalRow/index.js @@ -0,0 +1,16 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ModalRow = void 0; +const styles_1 = require("../../../styles"); +const styles_2 = require("./styles"); +const react_1 = __importDefault(require("react")); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const ModalRow = ({ children }) => { + const classes = useStyles(); + return (react_1.default.createElement("div", { className: classes.ModalRow }, children)); +}; +exports.ModalRow = ModalRow; +ModalRow.displayName = 'ModalRow'; diff --git a/build/lib/components/feedback/ModalRow/styles.d.ts b/build/lib/components/feedback/ModalRow/styles.d.ts new file mode 100644 index 00000000..8191452e --- /dev/null +++ b/build/lib/components/feedback/ModalRow/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type ModalRowClassNames = 'ModalRow'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/feedback/ModalRow/styles.js b/build/lib/components/feedback/ModalRow/styles.js new file mode 100644 index 00000000..78613022 --- /dev/null +++ b/build/lib/components/feedback/ModalRow/styles.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = (theme) => ({ + ModalRow: { + display: 'flex', + marginBottom: `${theme.space(2)}px` + } +}); +exports.styles = styles; diff --git a/build/lib/components/feedback/NonIdealState/Documentation.d.ts b/build/lib/components/feedback/NonIdealState/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/feedback/NonIdealState/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/feedback/NonIdealState/Documentation.js b/build/lib/components/feedback/NonIdealState/Documentation.js new file mode 100644 index 00000000..5c00da56 --- /dev/null +++ b/build/lib/components/feedback/NonIdealState/Documentation.js @@ -0,0 +1,20 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../documentation/ComponentPreview"); +const __1 = require("../../.."); +const react_1 = __importDefault(require("react")); +const Documentation = () => (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "NonIdealState"), + react_1.default.createElement(__1.Paragraph, null, + "Use the ", + react_1.default.createElement("code", null, "NonIdealState"), + " component to let the user know that a particular area within the application is not working as originally intended. Describe the cause of this condition and give quick tips on how to how to get out of it."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.NonIdealState, { cause: 'Item could not been found' }, + react_1.default.createElement("p", null, "The item was not found within a reasonable amount of time."), + react_1.default.createElement("p", null, "Just try it again."))))); +exports.Documentation = Documentation; diff --git a/build/lib/components/feedback/NonIdealState/index.d.ts b/build/lib/components/feedback/NonIdealState/index.d.ts new file mode 100644 index 00000000..3b185a88 --- /dev/null +++ b/build/lib/components/feedback/NonIdealState/index.d.ts @@ -0,0 +1,8 @@ +import { FunctionComponent } from 'react'; +interface NonIdealStateProps { + id?: string; + className?: string; + cause: string; +} +declare const NonIdealState: FunctionComponent; +export { NonIdealState }; diff --git a/build/lib/components/feedback/NonIdealState/index.js b/build/lib/components/feedback/NonIdealState/index.js new file mode 100644 index 00000000..a595584d --- /dev/null +++ b/build/lib/components/feedback/NonIdealState/index.js @@ -0,0 +1,20 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NonIdealState = void 0; +const __1 = require("../../.."); +const styles_1 = require("../../../styles"); +const styles_2 = require("./styles"); +const react_1 = __importDefault(require("react")); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const NonIdealState = ({ id, className, cause, children }) => { + const classes = useStyles(); + return (react_1.default.createElement(__1.Container, null, + react_1.default.createElement("div", { id: id, className: (0, styles_1.classNames)(classes.NonIdealState, className) }, + react_1.default.createElement("div", { className: classes.Cause }, cause), + react_1.default.createElement("div", { className: classes.Help }, children)))); +}; +exports.NonIdealState = NonIdealState; +NonIdealState.displayName = 'NonIdealState'; diff --git a/build/lib/components/feedback/NonIdealState/styles.d.ts b/build/lib/components/feedback/NonIdealState/styles.d.ts new file mode 100644 index 00000000..e54b058c --- /dev/null +++ b/build/lib/components/feedback/NonIdealState/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type NonIdealStateClassNames = 'NonIdealState' | 'Cause' | 'Tip' | 'Help'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/feedback/NonIdealState/styles.js b/build/lib/components/feedback/NonIdealState/styles.js new file mode 100644 index 00000000..4bf673f4 --- /dev/null +++ b/build/lib/components/feedback/NonIdealState/styles.js @@ -0,0 +1,39 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = (theme) => ({ + NonIdealState: { + marginTop: theme.space(4), + padding: theme.space(2), + textAlign: 'center' + }, + Cause: { + fontSize: theme.font.size.lg, + fontWeight: 600 + }, + Tip: { + marginTop: theme.space(3), + '& p': { + margin: '0 0 4px 0' + } + }, + Help: { + marginTop: theme.space(2), + fontWeight: 400, + '& p': { + maxWidth: '480px', + marginBottom: theme.space(1) + }, + '& a, & a:visited': { + marginRight: theme.space(4), + color: 'inherit' + }, + '& a:last-child': { + marginRight: 0 + }, + '& a:hover': { + color: theme.color.brand.highlight + } + } +}); +exports.styles = styles; diff --git a/build/lib/components/feedback/Notifications/Notification/index.d.ts b/build/lib/components/feedback/Notifications/Notification/index.d.ts new file mode 100644 index 00000000..72b4ab3d --- /dev/null +++ b/build/lib/components/feedback/Notifications/Notification/index.d.ts @@ -0,0 +1,8 @@ +import { NotificationType } from '../../../../services/NotificationService'; +import { FunctionComponent } from 'react'; +interface NotificationProps { + type: NotificationType; + text: string; +} +declare const Notification: FunctionComponent; +export { Notification }; diff --git a/build/lib/components/feedback/Notifications/Notification/index.js b/build/lib/components/feedback/Notifications/Notification/index.js new file mode 100644 index 00000000..a6ac7b79 --- /dev/null +++ b/build/lib/components/feedback/Notifications/Notification/index.js @@ -0,0 +1,19 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Notification = void 0; +const styles_1 = require("../../../../styles"); +const styles_2 = require("./styles"); +const react_1 = __importDefault(require("react")); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const Notification = ({ type, text }) => { + const classes = useStyles(); + const componentClasses = (0, styles_1.classNames)(classes.Notification, { + [classes.TypeError]: type === 'error', + [classes.TypeSuccess]: type === 'success' + }); + return (react_1.default.createElement("div", { className: componentClasses }, text)); +}; +exports.Notification = Notification; diff --git a/build/lib/components/feedback/Notifications/Notification/styles.d.ts b/build/lib/components/feedback/Notifications/Notification/styles.d.ts new file mode 100644 index 00000000..fa77805a --- /dev/null +++ b/build/lib/components/feedback/Notifications/Notification/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../../..'; +export type NotificationClassNames = 'Notification' | 'TypeError' | 'TypeSuccess'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/feedback/Notifications/Notification/styles.js b/build/lib/components/feedback/Notifications/Notification/styles.js new file mode 100644 index 00000000..dd28c941 --- /dev/null +++ b/build/lib/components/feedback/Notifications/Notification/styles.js @@ -0,0 +1,21 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = (theme) => ({ + Notification: { + padding: '10px 15px', + background: theme.color.brand.grayDark, + boxShadow: theme.shadow.overlay, + marginBottom: `${theme.space(1.5)}px`, + fontFamily: theme.font.family.default + }, + TypeError: { + color: theme.color.brand.white, + background: theme.color.state.error + }, + TypeSuccess: { + color: theme.color.brand.white, + background: theme.color.state.success + } +}); +exports.styles = styles; diff --git a/build/lib/components/feedback/Notifications/index.d.ts b/build/lib/components/feedback/Notifications/index.d.ts new file mode 100644 index 00000000..8b3b3366 --- /dev/null +++ b/build/lib/components/feedback/Notifications/index.d.ts @@ -0,0 +1,9 @@ +import { NotificationService } from '../../../services/NotificationService'; +import { FunctionComponent } from 'react'; +interface NotificationsProps { + className?: string; + portalRootNode?: HTMLElement; + notificationService?: NotificationService; +} +declare const Notifications: FunctionComponent; +export { Notifications }; diff --git a/build/lib/components/feedback/Notifications/index.js b/build/lib/components/feedback/Notifications/index.js new file mode 100644 index 00000000..c8cbb4e6 --- /dev/null +++ b/build/lib/components/feedback/Notifications/index.js @@ -0,0 +1,68 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Notifications = void 0; +const Notification_1 = require("./Notification"); +const react_dom_1 = __importDefault(require("react-dom")); +const __1 = require("../../.."); +const useForceUpdate_1 = require("../../useForceUpdate"); +const styles_1 = require("../../../styles"); +const services_1 = require("../../../services"); +const styles_2 = require("./styles"); +const react_1 = __importStar(require("react")); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const Notifications = ({ className, notificationService = services_1.notifications, portalRootNode }) => { + const classes = useStyles(); + const forceUpdate = (0, useForceUpdate_1.useForceUpdate)(); + if (!services_1.excecutionEnvironment.canUseDom) { + return null; + } + const handleServiceChanged = (0, react_1.useCallback)(() => { + forceUpdate(); + }, []); + (0, react_1.useEffect)(() => { + notificationService.on('changed', handleServiceChanged); + return () => { + notificationService.removeListener('changed', handleServiceChanged); + }; + }, []); + return react_dom_1.default.createPortal((react_1.default.createElement("div", { className: (0, styles_1.classNames)(classes.Notifications, className) }, + react_1.default.createElement(__1.TransitionGroup, { type: 'FadeInLeft' }, notificationService.state.items.map((notification) => (react_1.default.createElement(Notification_1.Notification, { key: notification.id, type: notification.type, text: notification.text })))))), portalRootNode !== null && portalRootNode !== void 0 ? portalRootNode : (0, services_1.getPortalRootNode)()); +}; +exports.Notifications = Notifications; +Notifications.displayName = 'Notifications'; diff --git a/build/lib/components/feedback/Notifications/styles.d.ts b/build/lib/components/feedback/Notifications/styles.d.ts new file mode 100644 index 00000000..34186df4 --- /dev/null +++ b/build/lib/components/feedback/Notifications/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type NotificationsClassNames = 'Notifications'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/feedback/Notifications/styles.js b/build/lib/components/feedback/Notifications/styles.js new file mode 100644 index 00000000..35f0355d --- /dev/null +++ b/build/lib/components/feedback/Notifications/styles.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = (theme) => ({ + Notifications: { + position: 'fixed', + top: `${theme.space(3)}px`, + right: `${theme.space(3)}px`, + width: '300px', + zIndex: theme.zIndices.overlay, + pointerEvents: 'none' + } +}); +exports.styles = styles; diff --git a/build/lib/components/feedback/Tags/Documentation.d.ts b/build/lib/components/feedback/Tags/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/feedback/Tags/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/feedback/Tags/Documentation.js b/build/lib/components/feedback/Tags/Documentation.js new file mode 100644 index 00000000..b6c67ace --- /dev/null +++ b/build/lib/components/feedback/Tags/Documentation.js @@ -0,0 +1,25 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../documentation/ComponentPreview"); +const __1 = require("../../.."); +const react_1 = __importDefault(require("react")); +const Documentation = () => (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "Tags"), + react_1.default.createElement(__1.Paragraph, null, + "Use ", + react_1.default.createElement("code", null, "Tags"), + " to list groups of strings."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.Tags, { items: ['foo', 'bar', 'baz'] })), + react_1.default.createElement(__1.Headline, { level: '2' }, "Highlight search words"), + react_1.default.createElement(__1.Paragraph, null, + "Use the ", + react_1.default.createElement("code", null, "searchWords"), + " property to highlight several words inside the tags."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.Tags, { items: ['foo', 'bar', 'baz'], searchWords: ['ba'] })))); +exports.Documentation = Documentation; diff --git a/build/lib/components/feedback/Tags/index.d.ts b/build/lib/components/feedback/Tags/index.d.ts new file mode 100644 index 00000000..b67754e5 --- /dev/null +++ b/build/lib/components/feedback/Tags/index.d.ts @@ -0,0 +1,8 @@ +import { FunctionComponent } from 'react'; +interface TagsProps { + className?: string; + items?: string[]; + searchWords?: string[]; +} +declare const Tags: FunctionComponent; +export { Tags }; diff --git a/build/lib/components/feedback/Tags/index.js b/build/lib/components/feedback/Tags/index.js new file mode 100644 index 00000000..de5a1106 --- /dev/null +++ b/build/lib/components/feedback/Tags/index.js @@ -0,0 +1,52 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Tags = void 0; +const styles_1 = require("../../../styles"); +const __1 = require("../../.."); +const react_1 = __importStar(require("react")); +const styles_2 = require("./styles"); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const Tags = ({ className, items, searchWords }) => { + const classes = useStyles(); + if (!items) { + return null; + } + const sortedTags = (0, react_1.useMemo)(() => items.sort((left, right) => left.localeCompare(right)), [Tags]); + return (react_1.default.createElement("div", { className: (0, __1.classNames)(classes.Tags, className) }, sortedTags.map((tag) => (react_1.default.createElement("span", { key: tag, className: classes.Tag }, + react_1.default.createElement(__1.HighlightText, { searchWords: searchWords }, tag)))))); +}; +exports.Tags = Tags; +Tags.displayName = 'Tags'; diff --git a/build/lib/components/feedback/Tags/styles.d.ts b/build/lib/components/feedback/Tags/styles.d.ts new file mode 100644 index 00000000..1ae371a6 --- /dev/null +++ b/build/lib/components/feedback/Tags/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type TagsClassNames = 'Tags' | 'Tag'; +declare const getStyles: (theme: Theme) => ComponentClassNames; +export { getStyles as styles }; diff --git a/build/lib/components/feedback/Tags/styles.js b/build/lib/components/feedback/Tags/styles.js new file mode 100644 index 00000000..6bfa3536 --- /dev/null +++ b/build/lib/components/feedback/Tags/styles.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const getStyles = (theme) => ({ + Tags: { + fontSize: theme.font.size.sm, + fontWeight: 600 + }, + Tag: { + display: 'inline-block', + background: theme.color.brand.grayLight, + borderRadius: theme.space(2), + padding: `${theme.space(0.25)}px ${theme.space(1)}px`, + marginRight: theme.space(1), + color: theme.color.brand.grayDark + } +}); +exports.styles = getStyles; diff --git a/build/lib/components/forms/ControlGroup/Documentation.d.ts b/build/lib/components/forms/ControlGroup/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/forms/ControlGroup/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/forms/ControlGroup/Documentation.js b/build/lib/components/forms/ControlGroup/Documentation.js new file mode 100644 index 00000000..9d7ae834 --- /dev/null +++ b/build/lib/components/forms/ControlGroup/Documentation.js @@ -0,0 +1,99 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../../components/documentation/ComponentPreview"); +const __1 = require("../../.."); +const react_1 = __importStar(require("react")); +const Documentation = () => (react_1.default.createElement(react_1.Fragment, null, + react_1.default.createElement(__1.Headline, null, "ControlGroup"), + react_1.default.createElement(__1.Paragraph, null, + "A ", + react_1.default.createElement("code", null, "ControlGroup"), + " is a group of input elements inside a ", + react_1.default.createElement("code", null, "Form"), + ". It consistst of one or more ", + react_1.default.createElement("code", null, "ControlGroupItem"), + " and can visually be separated using a ", + react_1.default.createElement("code", null, "ControlGroupDivider"), + "."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.ControlGroup, null, + react_1.default.createElement(__1.ControlGroupItem, { label: 'First name' }, + react_1.default.createElement(__1.TextBox, { placeholder: 'Enter your first name\u2026' })))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Grouping items horizontally"), + react_1.default.createElement(__1.Paragraph, null, + "Some input elements work best when they're groupd together in one line, e.g. the city and the zip code of an address. In such cases you can add two items into a ", + react_1.default.createElement("code", null, "ControlGroupItem"), + "."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.ControlGroup, null, + react_1.default.createElement(__1.ControlGroupItem, { label: 'First name' }, + react_1.default.createElement(__1.TextBox, { placeholder: 'Your first name' })), + react_1.default.createElement(__1.ControlGroupItem, { label: 'Your name' }, + react_1.default.createElement(__1.TextBox, { placeholder: 'Your last name' })))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Adjusting the size of items"), + react_1.default.createElement(__1.Paragraph, null, + "By default items will be sized equally. But input components work best when their size reflects the expected input data. Use the ", + react_1.default.createElement("code", null, "adjust"), + " property of the ", + react_1.default.createElement("code", null, "ControlGroupItem"), + " to define wether an item should be flexible or automatically use its own size."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.ControlGroup, null, + react_1.default.createElement(__1.ControlGroupItem, { label: 'City', adjust: 'flex' }, + react_1.default.createElement(__1.TextBox, { placeholder: 'The city you live in\u2026' })), + react_1.default.createElement(__1.ControlGroupItem, { label: 'Zip', adjust: 'auto' }, + react_1.default.createElement(__1.TextBox, { placeholder: 'Your ZIP code' })))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Grouping sections vertically"), + react_1.default.createElement(__1.Paragraph, null, + "By adding a ", + react_1.default.createElement("code", null, "ControlGroupDivider"), + " between groups it is possible to better separate different sections inside a ", + react_1.default.createElement("code", null, "Form"), + "."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(react_1.Fragment, null, + react_1.default.createElement(__1.ControlGroup, null, + react_1.default.createElement(__1.ControlGroupItem, { label: 'Subject' }, + react_1.default.createElement(__1.TextBox, { placeholder: 'Enter a subject\u2026' }))), + react_1.default.createElement(__1.ControlGroup, null, + react_1.default.createElement(__1.ControlGroupItem, { label: 'Tags' }, + react_1.default.createElement(__1.TextBox, { placeholder: 'Enter comma sepeared tags\u2026' }))), + react_1.default.createElement(__1.ControlGroupDivider, null), + react_1.default.createElement(__1.ControlGroup, null, + react_1.default.createElement(__1.ControlGroupItem, { label: 'Publish at specific date' }, + react_1.default.createElement(__1.CheckBox, null))))))); +exports.Documentation = Documentation; diff --git a/build/lib/components/forms/ControlGroup/index.d.ts b/build/lib/components/forms/ControlGroup/index.d.ts new file mode 100644 index 00000000..a06a016c --- /dev/null +++ b/build/lib/components/forms/ControlGroup/index.d.ts @@ -0,0 +1,7 @@ +import { FunctionComponent } from 'react'; +interface ControlGroupProps { + className?: string; + isVisible?: boolean; +} +declare const ControlGroup: FunctionComponent; +export { ControlGroup }; diff --git a/build/lib/components/forms/ControlGroup/index.js b/build/lib/components/forms/ControlGroup/index.js new file mode 100644 index 00000000..bbc17aa0 --- /dev/null +++ b/build/lib/components/forms/ControlGroup/index.js @@ -0,0 +1,20 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ControlGroup = void 0; +const styles_1 = require("../../../styles"); +const styles_2 = require("./styles"); +const react_1 = __importDefault(require("react")); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const ControlGroup = ({ className, children, isVisible = true }) => { + const classes = useStyles(); + const componentClasses = (0, styles_1.classNames)(classes.ControlGroup, className); + if (!isVisible) { + return null; + } + return (react_1.default.createElement("div", { className: componentClasses }, children)); +}; +exports.ControlGroup = ControlGroup; +ControlGroup.displayName = 'ControlGroup'; diff --git a/build/lib/components/forms/ControlGroup/styles.d.ts b/build/lib/components/forms/ControlGroup/styles.d.ts new file mode 100644 index 00000000..023c98cb --- /dev/null +++ b/build/lib/components/forms/ControlGroup/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type ControlGroupClassNames = 'ControlGroup'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/forms/ControlGroup/styles.js b/build/lib/components/forms/ControlGroup/styles.js new file mode 100644 index 00000000..c548d5c6 --- /dev/null +++ b/build/lib/components/forms/ControlGroup/styles.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = (theme) => ({ + ControlGroup: { + display: 'flex', + marginBottom: theme.space(2) + } +}); +exports.styles = styles; diff --git a/build/lib/components/forms/ControlGroupDivider/index.d.ts b/build/lib/components/forms/ControlGroupDivider/index.d.ts new file mode 100644 index 00000000..5edcfb11 --- /dev/null +++ b/build/lib/components/forms/ControlGroupDivider/index.d.ts @@ -0,0 +1,3 @@ +import { FunctionComponent } from 'react'; +declare const ControlGroupDivider: FunctionComponent; +export { ControlGroupDivider }; diff --git a/build/lib/components/forms/ControlGroupDivider/index.js b/build/lib/components/forms/ControlGroupDivider/index.js new file mode 100644 index 00000000..dee0f3df --- /dev/null +++ b/build/lib/components/forms/ControlGroupDivider/index.js @@ -0,0 +1,16 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ControlGroupDivider = void 0; +const styles_1 = require("../../../styles"); +const styles_2 = require("./styles"); +const react_1 = __importDefault(require("react")); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const ControlGroupDivider = () => { + const classes = useStyles(); + return (react_1.default.createElement("hr", { className: classes.ControlGroupDivider })); +}; +exports.ControlGroupDivider = ControlGroupDivider; +ControlGroupDivider.displayName = 'ControlGroupDivider'; diff --git a/build/lib/components/forms/ControlGroupDivider/styles.d.ts b/build/lib/components/forms/ControlGroupDivider/styles.d.ts new file mode 100644 index 00000000..697b3421 --- /dev/null +++ b/build/lib/components/forms/ControlGroupDivider/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type ControlGroupDividerClassNames = 'ControlGroupDivider'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/forms/ControlGroupDivider/styles.js b/build/lib/components/forms/ControlGroupDivider/styles.js new file mode 100644 index 00000000..893e6ad3 --- /dev/null +++ b/build/lib/components/forms/ControlGroupDivider/styles.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = (theme) => ({ + ControlGroupDivider: { + flexGrow: 0, + flexShrink: 0, + flexBasis: 'auto', + width: '100%', + height: '1px', + background: theme.color.brand.grayDark, + opacity: 0.1, + marginTop: `${theme.space(2.5)}px`, + marginBottom: `${theme.space(3)}px`, + border: 'none' + } +}); +exports.styles = styles; diff --git a/build/lib/components/forms/ControlGroupItem/index.d.ts b/build/lib/components/forms/ControlGroupItem/index.d.ts new file mode 100644 index 00000000..425809be --- /dev/null +++ b/build/lib/components/forms/ControlGroupItem/index.d.ts @@ -0,0 +1,10 @@ +import { FunctionComponent, ReactElement } from 'react'; +interface ControlGroupItemProps { + className?: string; + children: ReactElement; + adjust?: 'flex' | 'auto'; + helpLink?: string; + label?: string; +} +declare const ControlGroupItem: FunctionComponent; +export { ControlGroupItem }; diff --git a/build/lib/components/forms/ControlGroupItem/index.js b/build/lib/components/forms/ControlGroupItem/index.js new file mode 100644 index 00000000..c7cdaf6f --- /dev/null +++ b/build/lib/components/forms/ControlGroupItem/index.js @@ -0,0 +1,47 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ControlGroupItem = void 0; +const __1 = require("../../.."); +const styles_1 = require("../../../styles"); +const styles_2 = require("./styles"); +const react_1 = __importDefault(require("react")); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const ControlGroupItem = ({ adjust = 'flex', children, helpLink, label, className }) => { + var _a; + const classes = useStyles(); + let type = 'default'; + const child = react_1.default.Children.only(children); + if (child && child.type === __1.CheckBox) { + type = 'checkbox'; + } + const componentClasses = (0, styles_1.classNames)(classes.ControlGroupItem, { + [classes.AdjustFlex]: adjust === 'flex', + [classes.AdjustAuto]: adjust === 'auto', + [classes.Labeled]: label, + [classes.TypeCheckBox]: type === 'checkbox' + }, className); + const controlId = (_a = child === null || child === void 0 ? void 0 : child.props) === null || _a === void 0 ? void 0 : _a.id; + if (type === 'checkbox') { + return (react_1.default.createElement("div", { className: componentClasses }, + react_1.default.createElement("div", { className: classes.Label }, + react_1.default.createElement("div", { className: classes.Control }, child), + label ? react_1.default.createElement("label", { htmlFor: controlId }, label) : null, + helpLink ? + (react_1.default.createElement("a", { title: 'Get more detailed information\u2026', rel: 'noopener noreferrer', target: '_blank', href: helpLink }, + react_1.default.createElement(__1.Icon, { name: 'help' }))) : + null))); + } + return (react_1.default.createElement("div", { className: componentClasses }, + react_1.default.createElement("div", { className: classes.Label }, + label ? react_1.default.createElement("label", { htmlFor: controlId }, label) : null, + helpLink ? + (react_1.default.createElement("a", { title: 'Get more detailed information\u2026', rel: 'noopener noreferrer', target: '_blank', href: helpLink }, + react_1.default.createElement(__1.Icon, { name: 'help' }))) : + null), + react_1.default.createElement("div", { className: classes.Control }, child))); +}; +exports.ControlGroupItem = ControlGroupItem; +ControlGroupItem.displayName = 'ControlGroupItem'; diff --git a/build/lib/components/forms/ControlGroupItem/styles.d.ts b/build/lib/components/forms/ControlGroupItem/styles.d.ts new file mode 100644 index 00000000..b937cb2e --- /dev/null +++ b/build/lib/components/forms/ControlGroupItem/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type ControlGroupItemClassNames = 'ControlGroupItem' | '&:last-child' | 'AdjustFlex' | 'AdjustAuto' | 'Labeled' | 'Label' | 'Control' | 'TypeCheckBox'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/forms/ControlGroupItem/styles.js b/build/lib/components/forms/ControlGroupItem/styles.js new file mode 100644 index 00000000..9a976bfe --- /dev/null +++ b/build/lib/components/forms/ControlGroupItem/styles.js @@ -0,0 +1,56 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = (theme) => ({ + ControlGroupItem: { + display: 'flex', + flexDirection: 'column', + justifyContent: 'flex-end' + }, + '&:last-child': { + marginRight: 0 + }, + AdjustFlex: { + flexGrow: 1, + flexShrink: 1, + flexBasis: '100%' + }, + AdjustAuto: { + flexGrow: 0, + flexShrink: 0, + flexBasis: 'auto' + }, + Labeled: { + marginRight: '10px' + }, + Label: { + marginBottom: '6px', + color: theme.color.brand.grayDark, + fontWeight: 400, + display: 'flex', + '& label': { + flexGrow: 1, + flexShrink: 1 + }, + '& a': { + display: 'flex', + flexGrow: 0, + flexShrink: 0, + flexBasis: 'auto', + alignItems: 'center', + justifyContent: 'center', + opacity: 0.75 + }, + opacity: 1 + }, + Control: {}, + TypeCheckBox: { + '& $Control': { + paddingRight: '6px', + display: 'flex', + alignItems: 'center', + justifyContent: 'center' + } + } +}); +exports.styles = styles; diff --git a/build/lib/components/forms/Form/Documentation.d.ts b/build/lib/components/forms/Form/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/forms/Form/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/forms/Form/Documentation.js b/build/lib/components/forms/Form/Documentation.js new file mode 100644 index 00000000..1b4916d4 --- /dev/null +++ b/build/lib/components/forms/Form/Documentation.js @@ -0,0 +1,97 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../../components/documentation/ComponentPreview"); +const __1 = require("../../.."); +const react_1 = __importStar(require("react")); +const handleSubmit = (event) => { + event.preventDefault(); + __1.notifications.show({ type: 'success', text: 'onSubmit(event)' }); +}; +const Documentation = () => { + const [firstValue, setFirstValue] = (0, react_1.useState)(); + const [secondValue, setSecondValue] = (0, react_1.useState)(); + return (react_1.default.createElement(react_1.Fragment, null, + react_1.default.createElement(__1.Headline, null, "Form"), + react_1.default.createElement(__1.Paragraph, null, + "A ", + react_1.default.createElement("code", null, "Form"), + " groups several input components to gather information from the user. The ", + react_1.default.createElement("code", null, "FormActions"), + " are placed right beneath the input components and display at least two actions to either complete or cancel the current task."), + react_1.default.createElement(__1.Paragraph, null, + "A ", + react_1.default.createElement("code", null, "Form"), + " can be submitted by hitting ", + react_1.default.createElement("code", null, "Enter"), + " while entering text inside an input component or by pressing the primary ", + react_1.default.createElement("code", null, "Button"), + " of the form."), + react_1.default.createElement(__1.Headline, { level: '2' }, "Sample form"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.Form, { onSubmit: handleSubmit }, + react_1.default.createElement(__1.ControlGroup, null, + react_1.default.createElement(__1.ControlGroupItem, { label: 'First value', adjust: 'flex' }, + react_1.default.createElement(__1.TextBox, { value: firstValue, onChange: (event) => setFirstValue(event.target.value), placeholder: 'Enter some data\u2026' }))), + react_1.default.createElement(__1.ControlGroup, null, + react_1.default.createElement(__1.ControlGroupItem, { label: 'This is a second value' }, + react_1.default.createElement(__1.CheckBox, { checked: secondValue, onChange: () => setSecondValue(!secondValue) }))), + react_1.default.createElement(__1.FormActions, null, + react_1.default.createElement(__1.Button, { isPrimary: true }, "Submit"), + react_1.default.createElement(__1.Button, null, "Cancel")))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Stacked actions"), + react_1.default.createElement(__1.Paragraph, null, + "If there is limited space available horizontally, it is possible to stack ", + react_1.default.createElement("code", null, "FormActions"), + " by setting the ", + react_1.default.createElement("code", null, "type"), + " property of ", + react_1.default.createElement("code", null, "FormActions"), + " component to ", + react_1.default.createElement("code", null, "\"stacked\"")), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.Form, { onSubmit: handleSubmit }, + react_1.default.createElement(__1.ControlGroup, null, + react_1.default.createElement(__1.ControlGroupItem, { label: 'First value', adjust: 'flex' }, + react_1.default.createElement(__1.TextBox, { value: firstValue, onChange: (event) => setFirstValue(event.target.value), placeholder: 'Enter some data\u2026' }))), + react_1.default.createElement(__1.ControlGroup, null, + react_1.default.createElement(__1.ControlGroupItem, { label: 'This is a second value' }, + react_1.default.createElement(__1.CheckBox, { checked: secondValue, onChange: () => setSecondValue(!secondValue) }))), + react_1.default.createElement(__1.FormActions, { type: 'stacked' }, + react_1.default.createElement(__1.Button, { isPrimary: true }, "Submit"), + react_1.default.createElement(__1.Button, null, "Cancel")))))); +}; +exports.Documentation = Documentation; diff --git a/build/lib/components/forms/Form/index.d.ts b/build/lib/components/forms/Form/index.d.ts new file mode 100644 index 00000000..2f68bd1c --- /dev/null +++ b/build/lib/components/forms/Form/index.d.ts @@ -0,0 +1,7 @@ +import { FormEvent, FunctionComponent } from 'react'; +interface FormProps { + className?: string; + onSubmit?: (event: FormEvent) => void; +} +declare const Form: FunctionComponent; +export { Form }; diff --git a/build/lib/components/forms/Form/index.js b/build/lib/components/forms/Form/index.js new file mode 100644 index 00000000..f4d91c77 --- /dev/null +++ b/build/lib/components/forms/Form/index.js @@ -0,0 +1,19 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Form = void 0; +const styles_1 = require("../../../styles"); +const styles_2 = require("./styles"); +const react_1 = __importDefault(require("react")); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const Form = ({ children, className, onSubmit = () => { + // Intentionally left blank. +} }) => { + const classes = useStyles(); + const componentClasses = (0, styles_1.classNames)(classes.Form, className); + return (react_1.default.createElement("form", { className: componentClasses, onSubmit: onSubmit }, children)); +}; +exports.Form = Form; +Form.displayName = 'Form'; diff --git a/build/lib/components/forms/Form/styles.d.ts b/build/lib/components/forms/Form/styles.d.ts new file mode 100644 index 00000000..97873cbc --- /dev/null +++ b/build/lib/components/forms/Form/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type FormClassNames = 'Form'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/forms/Form/styles.js b/build/lib/components/forms/Form/styles.js new file mode 100644 index 00000000..12d42938 --- /dev/null +++ b/build/lib/components/forms/Form/styles.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = (theme) => ({ + Form: { + fontFamily: theme.font.family.default + } +}); +exports.styles = styles; diff --git a/build/lib/components/forms/FormActions/index.d.ts b/build/lib/components/forms/FormActions/index.d.ts new file mode 100644 index 00000000..538dda00 --- /dev/null +++ b/build/lib/components/forms/FormActions/index.d.ts @@ -0,0 +1,7 @@ +import { FunctionComponent } from 'react'; +interface FormActionsProps { + className?: string; + type?: 'default' | 'stacked'; +} +declare const FormActions: FunctionComponent; +export { FormActions }; diff --git a/build/lib/components/forms/FormActions/index.js b/build/lib/components/forms/FormActions/index.js new file mode 100644 index 00000000..24df7018 --- /dev/null +++ b/build/lib/components/forms/FormActions/index.js @@ -0,0 +1,20 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FormActions = void 0; +const styles_1 = require("../../../styles"); +const styles_2 = require("./styles"); +const react_1 = __importDefault(require("react")); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const FormActions = ({ children, className, type = 'default' }) => { + const classes = useStyles(); + const componentClasses = (0, styles_1.classNames)(classes.FormActions, { + [classes.TypeDefault]: type === 'default', + [classes.TypeStacked]: type === 'stacked' + }, className); + return (react_1.default.createElement("div", { className: componentClasses }, children)); +}; +exports.FormActions = FormActions; +FormActions.displayName = 'FormActions'; diff --git a/build/lib/components/forms/FormActions/styles.d.ts b/build/lib/components/forms/FormActions/styles.d.ts new file mode 100644 index 00000000..65622cd0 --- /dev/null +++ b/build/lib/components/forms/FormActions/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type FormActionsClassNames = 'FormActions' | 'TypeDefault' | 'TypeStacked'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/forms/FormActions/styles.js b/build/lib/components/forms/FormActions/styles.js new file mode 100644 index 00000000..06f56764 --- /dev/null +++ b/build/lib/components/forms/FormActions/styles.js @@ -0,0 +1,24 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = (theme) => ({ + FormActions: { + display: 'flex', + borderTop: `1px solid ${theme.color.content.border}`, + paddingTop: `${theme.space(1)}px`, + marginTop: `${theme.space(2)}px` + }, + TypeDefault: { + justifyContent: 'flex-end' + }, + TypeStacked: { + flexDirection: 'column', + justifyContent: 'stretch', + marginBottom: `${theme.space(2)}px`, + '& > *': { + marginRight: 0, + marginBottom: 0 + } + } +}); +exports.styles = styles; diff --git a/build/lib/components/forms/FormRow/index.d.ts b/build/lib/components/forms/FormRow/index.d.ts new file mode 100644 index 00000000..93906ab3 --- /dev/null +++ b/build/lib/components/forms/FormRow/index.d.ts @@ -0,0 +1,3 @@ +import { FunctionComponent } from 'react'; +declare const FormRow: FunctionComponent; +export { FormRow }; diff --git a/build/lib/components/forms/FormRow/index.js b/build/lib/components/forms/FormRow/index.js new file mode 100644 index 00000000..d09485ac --- /dev/null +++ b/build/lib/components/forms/FormRow/index.js @@ -0,0 +1,16 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FormRow = void 0; +const styles_1 = require("../../../styles"); +const styles_2 = require("./styles"); +const react_1 = __importDefault(require("react")); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const FormRow = ({ children }) => { + const classes = useStyles(); + return (react_1.default.createElement("div", { className: classes.FormRow }, children)); +}; +exports.FormRow = FormRow; +FormRow.displayName = 'FormRow'; diff --git a/build/lib/components/forms/FormRow/styles.d.ts b/build/lib/components/forms/FormRow/styles.d.ts new file mode 100644 index 00000000..a4f780a2 --- /dev/null +++ b/build/lib/components/forms/FormRow/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type FormRowClassNames = 'FormRow'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/forms/FormRow/styles.js b/build/lib/components/forms/FormRow/styles.js new file mode 100644 index 00000000..7aa15f1a --- /dev/null +++ b/build/lib/components/forms/FormRow/styles.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = (theme) => ({ + FormRow: { + display: 'flex', + marginBottom: `${theme.space(2)}px` + } +}); +exports.styles = styles; diff --git a/build/lib/components/graphics/Icon/Documentation.d.ts b/build/lib/components/graphics/Icon/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/graphics/Icon/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/graphics/Icon/Documentation.js b/build/lib/components/graphics/Icon/Documentation.js new file mode 100644 index 00000000..13d1eba6 --- /dev/null +++ b/build/lib/components/graphics/Icon/Documentation.js @@ -0,0 +1,160 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../../components/documentation/ComponentPreview"); +const Property_1 = require("../../../components/documentation/Property"); +const __1 = require("../../.."); +const react_1 = __importDefault(require("react")); +const Documentation = () => (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "Icon"), + react_1.default.createElement(__1.Paragraph, null, + "Use the ", + react_1.default.createElement("code", null, "Icon"), + " component to apply consistent Icons to your ", + react_1.default.createElement("code", null, "Application"), + " or ", + react_1.default.createElement("code", null, "Website"), + "."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.Icon, { name: 'heart' })), + react_1.default.createElement(__1.Paragraph, null, + react_1.default.createElement("i", null, "Please note:"), + " The ", + react_1.default.createElement("code", null, "Icon"), + " component uses SVG symbols under the hood. SVG symbols are paths that can be defined only once in DOM tree but can be referenced over and over again inside this without duplicating the SVG code. In order to make this work, these symbols need to be present inside the DOM tree. That's why the ", + react_1.default.createElement("code", null, "Icon"), + " component will only work properly when being wrapped in one of the root components, e.g. ", + react_1.default.createElement("code", null, "Application"), + " or ", + react_1.default.createElement("code", null, "Website"), + ". Root components ensure that the SVG symbols are present inside the DOM tree."), + react_1.default.createElement(__1.Headline, { level: '2' }, "Sizes"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(Property_1.Property, { value: 'xs' }), + react_1.default.createElement(__1.Icon, { name: 'heart', size: 'xs' }), + react_1.default.createElement("hr", null), + react_1.default.createElement(Property_1.Property, { value: 'sm' }), + react_1.default.createElement(__1.Icon, { name: 'heart', size: 'sm' }), + react_1.default.createElement("hr", null), + react_1.default.createElement(Property_1.Property, { value: 'md' }), + react_1.default.createElement(__1.Icon, { name: 'heart', size: 'md' }), + react_1.default.createElement("hr", null), + react_1.default.createElement(Property_1.Property, { value: 'lg' }), + react_1.default.createElement(__1.Icon, { name: 'heart', size: 'lg' }))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Color"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(Property_1.Property, { value: 'default' }), + react_1.default.createElement(__1.Icon, { name: 'heart', color: 'default' }), + react_1.default.createElement("hr", null), + react_1.default.createElement(Property_1.Property, { value: 'highlight' }), + react_1.default.createElement(__1.Icon, { name: 'heart', color: 'highlight' }), + react_1.default.createElement("hr", null), + react_1.default.createElement(Property_1.Property, { value: 'white' }), + react_1.default.createElement("div", { style: { background: 'black', display: 'inline-flex' } }, + react_1.default.createElement(__1.Icon, { name: 'heart', color: 'white' })), + react_1.default.createElement("hr", null), + react_1.default.createElement(Property_1.Property, { value: 'current', description: 'Applies the current color of the parent element' }), + react_1.default.createElement("div", { style: { color: 'green' } }, + react_1.default.createElement(__1.Icon, { name: 'heart', color: 'current' })))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Inlining in long running texts"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(Property_1.Property, { name: 'type', value: 'inline', description: 'Should be used when icons are placed within a long running text' }), + react_1.default.createElement(__1.Paragraph, { style: { fontSize: 20 } }, + "This is an icon embedded in a text ", + react_1.default.createElement(__1.Icon, { name: 'heart', type: 'inline' }), + " it should align with the typo."), + react_1.default.createElement(__1.Paragraph, { style: { fontSize: 30 } }, + "This is an icon embedded in a text ", + react_1.default.createElement(__1.Icon, { name: 'heart', type: 'inline' }), + " it should align with the typo."))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Preserving the size inside flexbox container"), + react_1.default.createElement(__1.Paragraph, null, + "Sometimes you use an ", + react_1.default.createElement("code", null, "Icon"), + " inside a flex container and need have to ensure that the icon will use its original size."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(Property_1.Property, { name: 'type', value: 'flex-auto' }), + react_1.default.createElement("div", { style: { display: 'flex', alignItems: 'center', justifyContent: 'flex', background: 'gray', width: 200, height: 100 } }, + react_1.default.createElement("p", { style: { flexGrow: 1 } }, "Some Text"), + react_1.default.createElement(__1.Icon, { name: 'heart', type: 'flex-auto' })))), + react_1.default.createElement(__1.Headline, { level: '2' }, "All icons"), + react_1.default.createElement(__1.Paragraph, null, + react_1.default.createElement(__1.Icon, { name: 'arrow-wide-west', type: 'inline', size: 'md' }), + " arrow-wide-west"), + react_1.default.createElement(__1.Paragraph, null, + react_1.default.createElement(__1.Icon, { name: 'checkmark', type: 'inline', size: 'md' }), + " checkmark"), + react_1.default.createElement(__1.Paragraph, null, + react_1.default.createElement(__1.Icon, { name: 'chevron', type: 'inline', size: 'md' }), + " chevron"), + react_1.default.createElement(__1.Paragraph, null, + react_1.default.createElement(__1.Icon, { name: 'close', type: 'inline', size: 'md' }), + " close"), + react_1.default.createElement(__1.Paragraph, null, + react_1.default.createElement(__1.Icon, { name: 'error', type: 'inline', size: 'md' }), + " error"), + react_1.default.createElement(__1.Paragraph, null, + react_1.default.createElement(__1.Icon, { name: 'expand', type: 'inline', size: 'md' }), + " expand"), + react_1.default.createElement(__1.Paragraph, null, + react_1.default.createElement(__1.Icon, { name: 'github', type: 'inline', size: 'md' }), + " github"), + react_1.default.createElement(__1.Paragraph, null, + react_1.default.createElement(__1.Icon, { name: 'heart', type: 'inline', size: 'md' }), + " heart"), + react_1.default.createElement(__1.Paragraph, null, + react_1.default.createElement(__1.Icon, { name: 'info', type: 'inline', size: 'md' }), + " info"), + react_1.default.createElement(__1.Paragraph, null, + react_1.default.createElement(__1.Icon, { name: 'menu', type: 'inline', size: 'md' }), + " menu"), + react_1.default.createElement(__1.Paragraph, null, + react_1.default.createElement(__1.Icon, { name: 'nav', type: 'inline', size: 'md' }), + " nav"), + react_1.default.createElement(__1.Paragraph, null, + react_1.default.createElement(__1.Icon, { name: 'stackoverflow', type: 'inline', size: 'md' }), + " stackoverflow"), + react_1.default.createElement(__1.Paragraph, null, + react_1.default.createElement(__1.Icon, { name: 'slack', type: 'inline', size: 'md' }), + " slack"), + react_1.default.createElement(__1.Paragraph, null, + react_1.default.createElement(__1.Icon, { name: 'twitter', type: 'inline', size: 'md' }), + " twitter"), + react_1.default.createElement(__1.Paragraph, null, + react_1.default.createElement(__1.Icon, { name: 'youtube', type: 'inline', size: 'md' }), + " youtube"), + react_1.default.createElement(__1.Paragraph, null, + react_1.default.createElement(__1.Icon, { name: 'cloud-medium', type: 'inline', size: 'lg' }), + " cloud-medium"), + react_1.default.createElement(__1.Paragraph, null, + react_1.default.createElement(__1.Icon, { name: 'cqrs-medium', type: 'inline', size: 'lg' }), + " cqrs-medium"), + react_1.default.createElement(__1.Paragraph, null, + react_1.default.createElement(__1.Icon, { name: 'event-sourcing-medium', type: 'inline', size: 'lg' }), + " event-sourcing-medium"), + react_1.default.createElement(__1.Paragraph, null, + react_1.default.createElement(__1.Icon, { name: 'notebook-medium', type: 'inline', size: 'lg' }), + " notebook-medium"), + react_1.default.createElement(__1.Paragraph, null, + react_1.default.createElement(__1.Icon, { name: 'open-source-medium', type: 'inline', size: 'lg' }), + " open-source-medium"), + react_1.default.createElement(__1.Paragraph, null, + react_1.default.createElement(__1.Icon, { name: 'server-medium', type: 'inline', size: 'lg' }), + " server-medium"), + react_1.default.createElement(__1.Paragraph, null, + react_1.default.createElement(__1.Icon, { name: 'phone-medium', type: 'inline', size: 'lg' }), + " phone-medium"), + react_1.default.createElement(__1.Paragraph, null, + react_1.default.createElement(__1.Icon, { name: 'plus-medium', type: 'inline', size: 'lg' }), + " plus-medium"), + react_1.default.createElement(__1.Paragraph, null, + react_1.default.createElement(__1.Icon, { name: 'stackoverflow-medium', type: 'inline', size: 'lg' }), + " stackoverflow-medium"))); +exports.Documentation = Documentation; diff --git a/build/lib/components/graphics/Icon/index.d.ts b/build/lib/components/graphics/Icon/index.d.ts new file mode 100644 index 00000000..34d94699 --- /dev/null +++ b/build/lib/components/graphics/Icon/index.d.ts @@ -0,0 +1,12 @@ +import { IconSize } from '../../..'; +import { CSSProperties, FunctionComponent } from 'react'; +interface IconProps { + name: string; + className?: string; + color?: 'default' | 'current' | 'highlight' | 'white'; + size?: IconSize; + style?: CSSProperties; + type?: 'default' | 'inline' | 'flex-auto'; +} +declare const Icon: FunctionComponent; +export { Icon }; diff --git a/build/lib/components/graphics/Icon/index.js b/build/lib/components/graphics/Icon/index.js new file mode 100644 index 00000000..ebffa258 --- /dev/null +++ b/build/lib/components/graphics/Icon/index.js @@ -0,0 +1,31 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Icon = void 0; +const styles_1 = require("../../../styles"); +const styles_2 = require("./styles"); +const react_1 = __importDefault(require("react")); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const Icon = ({ name, className, color = 'default', size = 'sm', style, type = 'default' }) => { + const classes = useStyles(); + const iconClassNames = (0, styles_1.classNames)(classes.Icon, { + [classes.ColorDefault]: color === 'default', + [classes.ColorCurrent]: color === 'current', + [classes.ColorHighlight]: color === 'highlight', + [classes.ColorWhite]: color === 'white', + [classes.TypeInline]: type === 'inline', + [classes.TypeFlexAuto]: type === 'flex-auto', + [classes.SizeXs]: size === 'xs', + [classes.SizeSm]: size === 'sm', + [classes.SizeMd]: size === 'md', + [classes.SizeLg]: size === 'lg', + [classes.SizeXl]: size === 'xl', + [classes.SizeXxl]: size === 'xxl' + }, className); + return (react_1.default.createElement("svg", { xmlns: 'http://www.w3.org/2000/svg', className: iconClassNames, "aria-hidden": 'true', style: style }, + react_1.default.createElement("use", { xlinkHref: `#icon-${name}` }))); +}; +exports.Icon = Icon; +Icon.displayName = 'Icon'; diff --git a/build/lib/components/graphics/Icon/styles.d.ts b/build/lib/components/graphics/Icon/styles.d.ts new file mode 100644 index 00000000..f92b5f87 --- /dev/null +++ b/build/lib/components/graphics/Icon/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type IconClassNames = 'Icon' | 'ColorDefault' | 'ColorCurrent' | 'ColorHighlight' | 'ColorWhite' | 'SizeXs' | 'SizeSm' | 'SizeMd' | 'SizeLg' | 'SizeXl' | 'SizeXxl' | 'TypeInline' | 'TypeFlexAuto'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/graphics/Icon/styles.js b/build/lib/components/graphics/Icon/styles.js new file mode 100644 index 00000000..2e641da4 --- /dev/null +++ b/build/lib/components/graphics/Icon/styles.js @@ -0,0 +1,59 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = (theme) => ({ + Icon: { + '& a': { + fill: 'currentColor' + } + }, + ColorDefault: { + fill: theme.color.brand.grayDark + }, + ColorCurrent: { + fill: 'currentColor' + }, + ColorHighlight: { + fill: theme.color.brand.highlight + }, + ColorWhite: { + fill: theme.color.brand.white + }, + SizeXs: { + width: theme.icon.size.xs, + height: theme.icon.size.xs + }, + SizeSm: { + width: theme.icon.size.sm, + height: theme.icon.size.sm + }, + SizeMd: { + width: theme.icon.size.md, + height: theme.icon.size.md + }, + SizeLg: { + width: theme.icon.size.lg, + height: theme.icon.size.lg + }, + SizeXl: { + width: theme.icon.size.xl, + height: theme.icon.size.xl + }, + SizeXxl: { + width: theme.icon.size.xxl, + height: theme.icon.size.xxl + }, + TypeInline: { + display: 'inline-block', + verticalAlign: 'middle', + marginBottom: '0.2em', + marginLeft: '0.05em', + marginRight: '0.05em' + }, + TypeFlexAuto: { + flexGrow: 0, + flexShrink: 0, + flexBasis: 'auto' + } +}); +exports.styles = styles; diff --git a/build/lib/components/graphics/Icons/index.d.ts b/build/lib/components/graphics/Icons/index.d.ts new file mode 100644 index 00000000..aaccf9cc --- /dev/null +++ b/build/lib/components/graphics/Icons/index.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Icons: () => ReactElement; +export { Icons }; diff --git a/build/lib/components/graphics/Icons/index.js b/build/lib/components/graphics/Icons/index.js new file mode 100644 index 00000000..11a6c0e8 --- /dev/null +++ b/build/lib/components/graphics/Icons/index.js @@ -0,0 +1,78 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Icons = void 0; +const react_1 = __importDefault(require("react")); +const Icons = () => (react_1.default.createElement("svg", { xmlns: 'http://www.w3.org/2000/svg', "aria-hidden": 'true', style: { display: 'none' } }, + react_1.default.createElement("symbol", { viewBox: '0 0 1440 200', preserveAspectRatio: 'none', id: 'mask-plane' }, + react_1.default.createElement("polygon", { points: '0 0 1440 200 0 200' })), + react_1.default.createElement("symbol", { viewBox: '0 0 24 24', id: 'icon-account' }, + react_1.default.createElement("path", { d: 'M12 0c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm7.753 18.305c-.261-.586-.789-.991-1.871-1.241-2.293-.529-4.428-.993-3.393-2.945 3.145-5.942.833-9.119-2.489-9.119-3.388 0-5.644 3.299-2.489 9.119 1.066 1.964-1.148 2.427-3.393 2.945-1.084.25-1.608.658-1.867 1.246-1.405-1.723-2.251-3.919-2.251-6.31 0-5.514 4.486-10 10-10s10 4.486 10 10c0 2.389-.845 4.583-2.247 6.305z' })), + react_1.default.createElement("symbol", { viewBox: '0 0 14 30', id: 'icon-arrow-wide-west' }, + react_1.default.createElement("path", { d: 'M12.3,29.6L0,15L12.3,0.4L14,1.6L2.7,15L14,28.4L12.3,29.6z' })), + react_1.default.createElement("symbol", { viewBox: '0 0 16 16', id: 'icon-checkmark' }, + react_1.default.createElement("polygon", { points: '14.2,1.3 5.4,11.6 1.7,8.3 0.3,9.7 5.6,14.4 15.8,2.7' })), + react_1.default.createElement("symbol", { viewBox: '0 0 24 24', id: 'icon-chevron' }, + react_1.default.createElement("path", { d: 'M7,6l2.038-2L17,12l-7.962,8L7,18.001L13,12L7,6z' })), + react_1.default.createElement("symbol", { viewBox: '0 0 24 24', id: 'icon-close' }, + react_1.default.createElement("path", { d: 'M23 20.168l-8.185-8.187 8.185-8.174-2.832-2.807-8.182 8.179-8.176-8.179-2.81 2.81 8.186 8.196-8.186 8.184 2.81 2.81 8.203-8.192 8.18 8.192z' })), + react_1.default.createElement("symbol", { viewBox: '0 0 40 40', id: 'icon-cloud-medium' }, + react_1.default.createElement("path", { d: 'M29.7,35H9.17C4.74,35,1,30.87,1,26a9.16,9.16,0,0,1,3.91-7.64c0-.26,0-.53,0-.79,0-4.82,3.59-8.74,8-8.74a7.41,7.41,0,0,1,4,1.13A10.09,10.09,0,0,1,25.91,4c5.68,0,10.3,5.06,10.3,11.27a12.39,12.39,0,0,1-.26,2.54A10.12,10.12,0,0,1,39,25.12C39,30.57,34.83,35,29.7,35ZM12.89,10.81c-3.32,0-6,3-6,6.74A7.91,7.91,0,0,0,7,18.71l.11.7-.62.33A7,7,0,0,0,3,26c0,3.8,2.82,7,6.17,7H29.7c4,0,7.3-3.53,7.3-7.88a8.08,8.08,0,0,0-2.79-6.2l-.48-.41.14-.62a10.34,10.34,0,0,0,.33-2.62c0-5.11-3.72-9.27-8.3-9.27a8.27,8.27,0,0,0-7.68,5.84l-.49,1.41-1.11-1A5.54,5.54,0,0,0,12.89,10.81Z' })), + react_1.default.createElement("symbol", { viewBox: '0 0 40 40', id: 'icon-cqrs-medium' }, + react_1.default.createElement("path", { d: 'M12,33h4v1H15v2h4V34H18V33H32v1H31v2h4V34H34V33h4V27H12Zm2-4H36v2H14Z' }), + react_1.default.createElement("path", { d: 'M31.33,20A6.33,6.33,0,0,0,32,17.18a6.51,6.51,0,0,0-2.33-5,7.34,7.34,0,0,0,.15-1.5A8,8,0,0,0,21.59,3a8.25,8.25,0,0,0-7.11,3.85,6.71,6.71,0,0,0-3-.7A6.28,6.28,0,0,0,5,12.22c0,.1,0,.2,0,.3a6.13,6.13,0,0,0-3,5.23A6.51,6.51,0,0,0,8.57,24H12v2H38V20ZM8.57,22A4.48,4.48,0,0,1,4,17.75,4.16,4.16,0,0,1,6.51,14l.71-.32-.14-.77A3.91,3.91,0,0,1,7,12.22a4.28,4.28,0,0,1,4.46-4.07,4.66,4.66,0,0,1,2.81.91l1,.77.49-1.18A6.16,6.16,0,0,1,21.59,5a6,6,0,0,1,6.23,5.73,5.33,5.33,0,0,1-.24,1.59l-.23.79.67.36a4.6,4.6,0,0,1,2,3.71A4.45,4.45,0,0,1,28.94,20H12v2ZM36,24H14V22H36Z' })), + react_1.default.createElement("svg", { viewBox: '0 0 24 24', id: 'icon-error' }, + react_1.default.createElement("path", { d: 'M12 0l-12 12 12 12 12-12-12-12zm-1 6h2v8h-2v-8zm1 12.25c-.69 0-1.25-.56-1.25-1.25s.56-1.25 1.25-1.25 1.25.56 1.25 1.25-.56 1.25-1.25 1.25z' })), + react_1.default.createElement("symbol", { viewBox: '0 0 40 40', id: 'icon-event-sourcing-medium' }, + react_1.default.createElement("path", { d: 'M26,4V2H14V4H7V37H33V4ZM16,4h8V6H16ZM31,35H9V6h5V8H26V6h5Z' }), + react_1.default.createElement("rect", { x: '19', y: '27', width: '10', height: '2' }), + react_1.default.createElement("rect", { x: '19', y: '31', width: '10', height: '2' }), + react_1.default.createElement("path", { d: 'M11,10V25H29V10Zm2,2H27v4H25.41l-2.5-2.5-3.84,4.8L17.54,16H13Zm0,11V18h3.46l2.46,3.69,4.16-5.2,1.5,1.5H27v5Z' })), + react_1.default.createElement("symbol", { viewBox: '0 0 24 24', id: 'icon-expand' }, + react_1.default.createElement("path", { d: 'M7,6l2.038-2L17,12l-7.962,8L7,18.001L13,12L7,6z' })), + react_1.default.createElement("symbol", { viewBox: '0 0 24 24', id: 'icon-github' }, + react_1.default.createElement("path", { d: 'M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z' })), + react_1.default.createElement("symbol", { viewBox: '0 0 16 16', id: 'icon-heart' }, + react_1.default.createElement("g", null, + react_1.default.createElement("path", { d: 'M1.16,2.65a3.91,3.91,0,0,0,0,5.56L8,15l6.85-6.82A3.94,3.94,0,0,0,9.26,2.66L8,3.92,6.74,2.65A4,4,0,0,0,1.16,2.65Z' }))), + react_1.default.createElement("symbol", { viewBox: '0 0 24 24', id: 'icon-help' }, + react_1.default.createElement("path", { d: 'M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm1.25 17c0 .69-.559 1.25-1.25 1.25-.689 0-1.25-.56-1.25-1.25s.561-1.25 1.25-1.25c.691 0 1.25.56 1.25 1.25zm1.393-9.998c-.608-.616-1.515-.955-2.551-.955-2.18 0-3.59 1.55-3.59 3.95h2.011c0-1.486.829-2.013 1.538-2.013.634 0 1.307.421 1.364 1.226.062.847-.39 1.277-.962 1.821-1.412 1.343-1.438 1.993-1.432 3.468h2.005c-.013-.664.03-1.203.935-2.178.677-.73 1.519-1.638 1.536-3.022.011-.924-.284-1.719-.854-2.297z' })), + react_1.default.createElement("symbol", { viewBox: '0 0 24 24', id: 'icon-info' }, + react_1.default.createElement("path", { d: 'M12 0c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm1 18h-2v-6h-2v-2h4v8zm-1-9.75c-.69 0-1.25-.56-1.25-1.25s.56-1.25 1.25-1.25 1.25.56 1.25 1.25-.56 1.25-1.25 1.25z' })), + react_1.default.createElement("symbol", { viewBox: '0 0 24 24', id: 'icon-menu' }, + react_1.default.createElement("path", { d: 'M12 0c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm6 17h-12v-2h12v2zm0-4h-12v-2h12v2zm0-4h-12v-2h12v2z' })), + react_1.default.createElement("symbol", { viewBox: '0 0 24 24', id: 'icon-nav' }, + react_1.default.createElement("path", { d: 'M20,8H4V6h16V8z M20,11H4v2h16V11z M20,16H4v2h16V16z' })), + react_1.default.createElement("symbol", { viewBox: '0 0 40 40', id: 'icon-notebook-medium' }, + react_1.default.createElement("path", { d: 'M37,28V5H3V28H0v7H40V28ZM5,7H35V28H5ZM38,33H2V30H38Z' })), + react_1.default.createElement("symbol", { viewBox: '0 0 40 40', id: 'icon-open-source-medium' }, + react_1.default.createElement("path", { d: 'M24.61,37.27l-3.46-12L22,25a5.46,5.46,0,1,0-4,0l.85.33-3.46,12-1-.32a18,18,0,1,1,11.18,0Zm-1-10.81,2.39,8.23a16,16,0,1,0-11.88,0l2.39-8.23a7.46,7.46,0,1,1,7.11,0Z' })), + react_1.default.createElement("symbol", { viewBox: '0 0 40 40', id: 'icon-phone-medium' }, + react_1.default.createElement("path", { d: 'M11.77,5.12l2.55,8.48-2.57,2.57-1.2,1.2,1,1.38a46.58,46.58,0,0,0,9.71,9.71l1.38,1,1.2-1.2,2.57-2.57,8.48,2.54a8,8,0,0,1-2.24,4.27,8.55,8.55,0,0,1-10.36,1.34A44.84,44.84,0,0,1,6.17,17.73,8.56,8.56,0,0,1,7.5,7.36a8,8,0,0,1,4.27-2.24M13.22,3a10,10,0,0,0-7.13,3A10.56,10.56,0,0,0,4.44,18.74,46.85,46.85,0,0,0,21.27,35.56,10.56,10.56,0,0,0,26.58,37h0A10.48,10.48,0,0,0,34,33.9a10,10,0,0,0,3-7.13L25.82,23.42l-3.41,3.42a45,45,0,0,1-9.25-9.25l3.42-3.42L13.22,3Z' })), + react_1.default.createElement("symbol", { viewBox: '0 0 40 40', id: 'icon-plus-medium' }, + react_1.default.createElement("path", { d: 'M25,15V3H15V15H3V25H15V37H25V25H37V15Zm10,8H23V35H17V23H5V17H17V15h0V5h6V17H35Z' })), + react_1.default.createElement("symbol", { viewBox: '0 0 40 40', id: 'icon-server-medium' }, + react_1.default.createElement("path", { d: 'M2,32h8v2H8v2h6V34H12V32H28v2H26v2h6V34H30V32h8V24H2Zm2-6H36v4H4Z' }), + react_1.default.createElement("path", { d: 'M2,22H38V14H2Zm2-6H36v4H4Z' }), + react_1.default.createElement("path", { d: 'M2,4v8H38V4Zm34,6H4V6H36Z' }), + react_1.default.createElement("rect", { x: '28', y: '27', width: '6', height: '2' }), + react_1.default.createElement("rect", { x: '28', y: '17', width: '6', height: '2' }), + react_1.default.createElement("rect", { x: '28', y: '7', width: '6', height: '2' })), + react_1.default.createElement("symbol", { viewBox: '0 0 24 24', id: 'icon-slack' }, + react_1.default.createElement("path", { d: 'M13.1,9.9l1,3.1l-3.2,1.1l-1-3.1L13.1,9.9z M15.3,23C7,25.5,3.5,23.6,1,15.3C-1.5,7,0.4,3.5,8.7,1 C17-1.5,20.5,0.4,23,8.7C25.5,17,23.6,20.5,15.3,23z M19.6,12.5c-0.2-0.7-0.9-1-1.6-0.8l-1.6,0.5l-1-3.1L17,8.6 c0.7-0.2,1-0.9,0.8-1.6c-0.2-0.7-0.9-1-1.6-0.8l-1.6,0.5l-0.5-1.6c-0.2-0.7-0.9-1-1.6-0.8c-0.7,0.2-1,0.9-0.8,1.6l0.5,1.6L9.1,8.6 L8.6,7C8.4,6.4,7.6,6,7,6.2C6.3,6.4,6,7.1,6.2,7.8l0.5,1.6L5.2,9.9c-0.7,0.2-1,0.9-0.8,1.6c0.2,0.5,0.7,0.8,1.2,0.8 c0.1,0,0.3,0,0.4-0.1l1.6-0.5l1,3.1L7,15.4c-0.7,0.2-1,0.9-0.8,1.6c0.2,0.5,0.7,0.8,1.2,0.8c0.1,0,0.3,0,0.4-0.1l1.6-0.5l0.5,1.6 c0.2,0.5,0.7,0.8,1.2,0.8c0.1,0,0.3,0,0.4-0.1c0.7-0.2,1-0.9,0.8-1.6l-0.5-1.6l3.2-1.1l0.5,1.6c0.2,0.5,0.7,0.8,1.2,0.8 c0.1,0,0.3,0,0.4-0.1c0.7-0.2,1-0.9,0.8-1.6l-0.5-1.6l1.6-0.5C19.5,13.8,19.8,13.1,19.6,12.5z' })), + react_1.default.createElement("symbol", { viewBox: '0 0 24 24', id: 'icon-search' }, + react_1.default.createElement("path", { d: 'M23.809 21.646l-6.205-6.205c1.167-1.605 1.857-3.579 1.857-5.711 0-5.365-4.365-9.73-9.731-9.73-5.365 0-9.73 4.365-9.73 9.73 0 5.366 4.365 9.73 9.73 9.73 2.034 0 3.923-.627 5.487-1.698l6.238 6.238 2.354-2.354zm-20.955-11.916c0-3.792 3.085-6.877 6.877-6.877s6.877 3.085 6.877 6.877-3.085 6.877-6.877 6.877c-3.793 0-6.877-3.085-6.877-6.877z' })), + react_1.default.createElement("symbol", { viewBox: '0 0 24 24', id: 'icon-stackoverflow' }, + react_1.default.createElement("path", { d: 'M15 21h-10v-2h10v2zm6-11.665l-1.621-9.335-1.993.346 1.62 9.335 1.994-.346zm-5.964 6.937l-9.746-.975-.186 2.016 9.755.879.177-1.92zm.538-2.587l-9.276-2.608-.526 1.954 9.306 2.5.496-1.846zm1.204-2.413l-8.297-4.864-1.029 1.743 8.298 4.865 1.028-1.744zm1.866-1.467l-5.339-7.829-1.672 1.14 5.339 7.829 1.672-1.14zm-2.644 4.195v8h-12v-8h-2v10h16v-10h-2z' })), + react_1.default.createElement("symbol", { viewBox: '0 0 40 40', id: 'icon-stackoverflow-medium' }, + react_1.default.createElement("polygon", { points: '32 35 6 35 6 26 8 26 8 33 30 33 30 26 32 26 32 35' }), + react_1.default.createElement("path", { d: 'M27,30H11V28H27Zm.35-3.88L11.79,22.92l.4-2,15.56,3.21Zm1.34-3.75L14.31,15.71l.84-1.81,14.39,6.67Zm2.3-3.3-12.22-10L20,7.53l12.22,10Zm3-2.61L24.46,3.9l1.6-1.21,9.49,12.57Z' })), + react_1.default.createElement("symbol", { viewBox: '0 0 24 24', id: 'icon-toggle-left-panel' }, + react_1.default.createElement("path", { d: 'M8,0h16v24H8V0z M0,0v24h6V0H0z' })), + react_1.default.createElement("symbol", { viewBox: '0 0 24 24', id: 'icon-twitter' }, + react_1.default.createElement("path", { d: 'M24 4.557c-.883.392-1.832.656-2.828.775 1.017-.609 1.798-1.574 2.165-2.724-.951.564-2.005.974-3.127 1.195-.897-.957-2.178-1.555-3.594-1.555-3.179 0-5.515 2.966-4.797 6.045-4.091-.205-7.719-2.165-10.148-5.144-1.29 2.213-.669 5.108 1.523 6.574-.806-.026-1.566-.247-2.229-.616-.054 2.281 1.581 4.415 3.949 4.89-.693.188-1.452.232-2.224.084.626 1.956 2.444 3.379 4.6 3.419-2.07 1.623-4.678 2.348-7.29 2.04 2.179 1.397 4.768 2.212 7.548 2.212 9.142 0 14.307-7.721 13.995-14.646.962-.695 1.797-1.562 2.457-2.549z' })), + react_1.default.createElement("symbol", { id: 'icon-youtube', viewBox: '0 0 24 24' }, + react_1.default.createElement("path", { d: 'M19.615 3.184c-3.604-.246-11.631-.245-15.23 0-3.897.266-4.356 2.62-4.385 8.816.029 6.185.484 8.549 4.385 8.816 3.6.245 11.626.246 15.23 0 3.897-.266 4.356-2.62 4.385-8.816-.029-6.185-.484-8.549-4.385-8.816zm-10.615 12.816v-8l8 3.993-8 4.007z' })))); +exports.Icons = Icons; diff --git a/build/lib/components/graphics/LogoFull/Documentation.d.ts b/build/lib/components/graphics/LogoFull/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/graphics/LogoFull/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/graphics/LogoFull/Documentation.js b/build/lib/components/graphics/LogoFull/Documentation.js new file mode 100644 index 00000000..3d146260 --- /dev/null +++ b/build/lib/components/graphics/LogoFull/Documentation.js @@ -0,0 +1,26 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../../components/documentation/ComponentPreview"); +const Property_1 = require("../../../components/documentation/Property"); +const __1 = require("../../.."); +const react_1 = __importDefault(require("react")); +const Documentation = () => (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "LogoFull"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.LogoFull, null), + react_1.default.createElement("hr", null), + react_1.default.createElement(Property_1.Property, { name: 'size', value: 'sm' }), + react_1.default.createElement(__1.LogoFull, { size: 'sm' }), + react_1.default.createElement("hr", null), + react_1.default.createElement(Property_1.Property, { name: 'size', value: 'md' }), + react_1.default.createElement(__1.LogoFull, { size: 'md' }), + react_1.default.createElement("hr", null), + react_1.default.createElement(Property_1.Property, { name: 'size', value: 'lg' }), + react_1.default.createElement(__1.LogoFull, { size: 'lg' }), + react_1.default.createElement("hr", null))))); +exports.Documentation = Documentation; diff --git a/build/lib/components/graphics/LogoFull/index.d.ts b/build/lib/components/graphics/LogoFull/index.d.ts new file mode 100644 index 00000000..e8bbf556 --- /dev/null +++ b/build/lib/components/graphics/LogoFull/index.d.ts @@ -0,0 +1,6 @@ +import { FunctionComponent } from 'react'; +export interface LogoFullProps { + size?: 'sm' | 'md' | 'lg'; +} +declare const LogoFull: FunctionComponent; +export { LogoFull }; diff --git a/build/lib/components/graphics/LogoFull/index.js b/build/lib/components/graphics/LogoFull/index.js new file mode 100644 index 00000000..6af5301d --- /dev/null +++ b/build/lib/components/graphics/LogoFull/index.js @@ -0,0 +1,38 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LogoFull = void 0; +const styles_1 = require("../../../styles"); +const styles_2 = require("./styles"); +const react_1 = __importDefault(require("react")); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const LogoFull = ({ size = 'md' }) => { + const classes = useStyles(); + const componentClasses = (0, styles_1.classNames)(classes.LogoFull, { + [classes.SizeSm]: size === 'sm', + [classes.SizeMd]: size === 'md', + [classes.SizeLg]: size === 'lg' + }); + return (react_1.default.createElement("div", { className: componentClasses, "aria-hidden": 'true' }, + react_1.default.createElement("svg", { viewBox: '0 0 264 44' }, + react_1.default.createElement("path", { className: classes.White, d: 'M94.5,10.6l-0.4-0.2v0L82.2,3.5L73,8.8l-5.8,3.3v0v17.3v0l2.8,1.6l0.4,0.2v0l11.9,6.9l9.2-5.3l5.8-3.3v0V12.2v0L94.5,10.6z' }), + react_1.default.createElement("path", { className: classes.Highlight, d: 'M81.8,24.9c0.2,0.8,0.2,1.8,0.2,3v10.2l-7.7-4.4V21.9c0.1,0,0.2,0,0.3-0.1c0.3,0,0.6-0.1,0.9-0.1c0.3,0,0.7-0.1,1.1-0.1c1.3-0.1,2.4,0,3.2,0.3c0.5,0.2,0.9,0.5,1.3,1C81.4,23.4,81.7,24.1,81.8,24.9z M94.5,10.6l-0.4-0.2v0L82.2,3.5L73,8.8l-5.8,3.3v0v17.3v0l2.8,1.6l0.2,0.1V18.9l0.3-0.1c0.8-0.2,1.8-0.4,3.1-0.6c1.3-0.2,2.8-0.3,4.5-0.3c1.5,0,2.8,0.2,3.9,0.7c1,0.5,1.9,1.1,2.5,2c0.6,0.8,1.1,1.8,1.3,3c0.2,1.1,0.4,2.4,0.4,3.7V36l5.3-3.1l5.8-3.3v0V12.2v0L94.5,10.6z' }), + react_1.default.createElement("g", { className: classes.White }, + react_1.default.createElement("path", { d: 'M14.1,34c-0.2,0.1-0.7,0.3-1.3,0.5c-0.6,0.2-1.4,0.3-2.4,0.3c-0.6,0-1.1-0.1-1.5-0.2c-0.4-0.1-0.8-0.4-1-0.7c-0.3-0.3-0.5-0.8-0.6-1.4c-0.1-0.6-0.2-1.4-0.2-2.3v-8.5h7.1v-3.1H7.1v-5.8l-3.6,0.6v16.8c0,1.3,0.1,2.4,0.3,3.3c0.2,1,0.6,1.8,1.1,2.4c0.5,0.7,1.2,1.2,2.1,1.5c0.8,0.3,1.9,0.5,3.2,0.5c1.1,0,2.1-0.1,2.9-0.4c0.9-0.3,1.4-0.5,1.8-0.6l0.1,0l-0.7-3L14.1,34z' }), + react_1.default.createElement("path", { d: 'M32,20.8c-0.6-0.8-1.4-1.4-2.4-1.8c-1-0.4-2.3-0.6-3.8-0.6c-0.7,0-1.4,0.1-2.1,0.2c-0.6,0.1-1.3,0.3-1.9,0.5V9.5l-3.6,0.6v27.6h3.6V22.1c0.1,0,0.3-0.1,0.5-0.1c0.3-0.1,0.6-0.1,0.9-0.2c0.4-0.1,0.7-0.1,1.1-0.2c0.4,0,0.7-0.1,1.1-0.1c0.9,0,1.6,0.1,2.2,0.3c0.6,0.2,1,0.6,1.4,1.1c0.3,0.5,0.6,1.1,0.8,1.9c0.2,0.8,0.2,1.8,0.2,2.9v9.9h3.6V27c0-1.3-0.1-2.5-0.4-3.5C33,22.4,32.6,21.5,32,20.8z' }), + react_1.default.createElement("path", { d: 'M46.4,18.2c-1.1,0-2.2,0.2-3.2,0.6c-1,0.4-2,1-2.8,1.9c-0.8,0.8-1.5,1.9-1.9,3.1c-0.5,1.2-0.7,2.7-0.7,4.4c0,1.4,0.2,2.8,0.6,3.9c0.4,1.2,1,2.3,1.7,3.1c0.8,0.9,1.8,1.6,3,2.1c1.2,0.5,2.6,0.7,4.3,0.7c1.3,0,2.5-0.1,3.5-0.4c1-0.2,1.8-0.5,2.2-0.7l0.1,0l-0.5-3.1L52.4,34c-0.4,0.2-1,0.4-1.8,0.6c-0.8,0.2-1.8,0.3-2.9,0.3c-2,0-3.6-0.5-4.5-1.5c-0.9-1-1.5-2.4-1.6-4.2h12.8l0-0.1c0-0.2,0-0.4,0-0.6v-0.6c0-3.2-0.7-5.7-2-7.3C50.9,19,48.9,18.2,46.4,18.2z M46.4,21.3c1.3,0,2.4,0.5,3.1,1.4c0.7,0.9,1.1,2.1,1.1,3.5h-9c0.1-0.6,0.2-1.2,0.4-1.7c0.2-0.6,0.5-1.2,0.9-1.6c0.4-0.5,0.9-0.8,1.5-1.1C45,21.5,45.6,21.3,46.4,21.3z' }), + react_1.default.createElement("path", { d: 'M104,20.3c-0.6-0.6-1.3-1.2-2.3-1.5c-0.9-0.4-2.1-0.5-3.4-0.5c-1.2,0-2.3,0.1-3.3,0.3c-1,0.2-1.7,0.4-2.2,0.6l-0.1,0l0.4,3l0.1-0.1c0.4-0.2,1-0.3,1.8-0.5c0.8-0.2,1.8-0.2,2.9-0.2c0.8,0,1.5,0.1,2.1,0.4c0.5,0.2,0.9,0.6,1.2,1c0.3,0.4,0.5,0.9,0.6,1.4c0.1,0.5,0.2,1.1,0.2,1.6v0.8c-0.1,0-0.2,0-0.4-0.1c-0.2,0-0.5-0.1-0.8-0.2c-0.3-0.1-0.7-0.1-1-0.1c-0.4,0-0.7-0.1-1.1-0.1c-1.1,0-2.1,0.1-3.1,0.3c-1,0.2-1.8,0.6-2.6,1c-0.7,0.5-1.3,1.1-1.8,1.8c-0.4,0.8-0.6,1.7-0.6,2.7c0,1.1,0.2,2,0.6,2.8c0.4,0.8,0.91.4,1.6,1.9c0.7,0.5,1.5,0.8,2.3,1c0.9,0.2,1.9,0.3,2.9,0.3c0.7,0,1.5,0,2.3-0.1c0.7-0.1,1.4-0.1,2.1-0.2c0.6-0.1,1.2-0.2,1.8-0.2l0.1,0c0.5-0.1,0.9-0.1,1.1-0.2l0.1,0V25.5c0-1.1-0.1-2-0.4-2.9C105,21.7,104.5,20.9,104,20.3z M102,29.4v5.4c-0.4,0.1-0.9,0.1-1.4,0.2c-0.6,0-1.3,0.1-2.1,0.1c-1.3,0-2.3-0.2-3.1-0.7c-0.7-0.4-1.1-1.2-1.1-2.4c0-0.6,0.1-1.1,0.4-1.5c0.3-0.4,0.7-0.7,1.1-0.9c0.5-0.2,1-0.4,1.5-0.4C98,29,98.5,29,99,29c0.8,0,1.4,0,1.9,0.1C101.4,29.2,101.8,29.3,102,29.4z' }), + react_1.default.createElement("path", { d: 'M121.2,34c-0.2,0.1-0.7,0.3-1.3,0.5c-0.6,0.2-1.4,0.3-2.4,0.3c-0.6,0-1.1-0.1-1.5-0.2c-0.4-0.1-0.8-0.4-1-0.7c-0.3-0.3-0.5-0.8-0.6-1.4c-0.1-0.6-0.2-1.4-0.2-2.3v-8.5h7.1v-3.1h-7.1v-5.8l-3.6,0.6v16.8c0,1.3,0.1,2.4,0.3,3.3c0.2,1,0.6,1.8,1.1,2.4c0.5,0.7,1.2,1.2,2.1,1.5c0.8,0.3,1.9,0.5,3.2,0.5c1.1,0,2.1-0.1,2.9-0.4c0.9-0.3,1.4-0.5,1.8-0.6l0.1,0l-0.7-3L121.2,34z' }), + react_1.default.createElement("rect", { x: '125.3', y: '18.7', width: '3.6', height: '19' }), + react_1.default.createElement("path", { d: 'M127.1,10.9c-0.6,0-1.2,0.2-1.6,0.6c-0.4,0.4-0.7,1-0.7,1.7c0,0.7,0.2,1.3,0.7,1.7c0.4,0.4,1,0.6,1.6,0.6s1.2-0.2,1.6-0.6c0.4-0.4,0.7-1,0.7-1.7c0-0.7-0.2-1.3-0.7-1.7C128.3,11.1,127.7,10.9,127.1,10.9z' }), + react_1.default.createElement("path", { d: 'M145.6,18.8c-0.3,1.2-0.6,2.4-1,3.8c-0.4,1.3-0.8,2.6-1.3,4c-0.4,1.3-0.9,2.6-1.3,3.8c-0.4,1.1-0.8,2.1-1.2,3c-0.4-0.9-0.8-1.9-1.2-3c-0.5-1.2-0.9-2.5-1.3-3.8c-0.4-1.3-0.9-2.6-1.3-4c-0.4-1.3-0.7-2.6-1-3.8l0-0.1h-3.9l0,0.2c0.9,3.5,2,6.9,3.3,10.1c1.3,3.2,2.5,6.1,3.7,8.6l0,0.1h3.2l0-0.1c1.2-2.5,2.4-5.4,3.7-8.6c1.3-3.2,2.4-6.6,3.3-10.1l0-0.2L145.6,18.8L145.6,18.8z' }), + react_1.default.createElement("path", { d: 'M159.6,18.2c-1.1,0-2.2,0.2-3.2,0.6c-1,0.4-2,1-2.8,1.9c-0.8,0.8-1.5,1.9-1.9,3.1c-0.5,1.2-0.7,2.7-0.7,4.4c0,1.4,0.2,2.8,0.6,3.9c0.4,1.2,1,2.3,1.7,3.1c0.8,0.9,1.8,1.6,3,2.1c1.2,0.5,2.6,0.7,4.3,0.7c1.3,0,2.5-0.1,3.5-0.4c1-0.2,1.8-0.5,2.2-0.7l0.1,0l-0.5-3.1l-0.1,0.1c-0.4,0.2-1,0.4-1.8,0.6c-0.8,0.2-1.8,0.3-2.9,0.3c-2,0-3.6-0.5-4.5-1.5c-0.9-1-1.5-2.4-1.6-4.2h12.8l0-0.1c0-0.2,0-0.4,0-0.6v-0.6c0-3.2-0.7-5.7-2-7.3C164.1,19,162.2,18.2,159.6,18.2z M159.6,21.3c1.3,0,2.4,0.5,3.1,1.4c0.7,0.9,1.1,2.1,1.1,3.5h-9c0.1-0.6,0.2-1.2,0.4-1.7c0.2-0.6,0.5-1.1,0.9-1.6c0.4-0.5,0.9-0.8,1.5-1.1C158.2,21.5,158.8,21.3,159.6,21.3z' }), + react_1.default.createElement("path", { d: 'M201.4,18.8c-0.2,1.1-0.5,2.4-0.9,3.7c-0.3,1.3-0.7,2.6-1.1,4s-0.8,2.6-1.2,3.8c-0.3,1.1-0.7,2-1,2.9c-0.4-1-0.7-2.1-1.1-3.3c-0.4-1.3-0.8-2.5-1.1-3.8c-0.4-1.3-0.7-2.6-1-3.8c-0.3-1.2-0.6-2.4-0.8-3.5l0-0.1h-3l0,0.1c-0.2,1.1-0.5,2.3-0.8,3.5c-0.3,1.2-0.7,2.5-1,3.8c-0.4,1.3-0.7,2.6-1.1,3.8c-0.4,1.1-0.7,2.2-1.1,3.3c-0.3-0.8-0.7-1.8-1-2.9c-0.4-1.2-0.8-2.5-1.2-3.8c-0.4-1.3-0.7-2.6-1.1-4c-0.3-1.3-0.6-2.5-0.9-3.7l0-0.1h-3.9l0,0.2c0.9,3.7,1.9,7.1,3,10.3c1.1,3.2,2.1,6,3.2,8.5l0,0.1h3.1l0-0.1c0.7-1.7,1.4-3.7,2.1-5.9c0.7-2.1,1.3-4.2,1.9-6.5c0.6,2.2,1.2,4.4,2,6.5c0.8,2.2,1.5,4.2,2.1,5.9l0,0.1h3.1l0-0.1c1.1-2.5,2.2-5.3,3.2-8.5c1.1-3.2,2.1-6.6,3-10.3l0-0.2L201.4,18.8L201.4,18.8z' }), + react_1.default.createElement("path", { d: 'M216,18.2c-1.1,0-2.2,0.2-3.2,0.6c-1,0.4-2,1-2.8,1.9c-0.8,0.8-1.5,1.9-1.9,3.1c-0.5,1.2-0.7,2.7-0.7,4.4c0,1.4,0.2,2.8,0.6,3.9c0.4,1.2,1,2.2,1.7,3.1c0.8,0.9,1.8,1.6,3,2.1c1.2,0.5,2.6,0.7,4.3,0.7c1.3,0,2.5-0.1,3.5-0.4c1-0.2,1.8-0.5,2.2-0.7l0.1,0l-0.5-3.1L222,34c-0.4,0.2-1,0.4-1.8,0.6c-0.8,0.2-1.8,0.3-2.9,0.3c-2,0-3.6-0.5-4.5-1.5c-0.9-1-1.5-2.4-1.6-4.2h12.8l0-0.1c0-0.2,0-0.4,0-0.6v-0.6c0-3.2-0.7-5.7-2-7.3C220.6,19,218.6,18.2,216,18.2z M216,21.3c1.3,0,2.4,0.5,3.1,1.4c0.7,0.9,1.1,2.1,1.1,3.5h-9c0.1-0.6,0.2-1.2,0.4-1.7c0.2-0.6,0.5-1.2,0.9-1.6c0.4-0.5,0.9-0.8,1.5-1.1C214.6,21.5,215.2,21.3,216,21.3z' }), + react_1.default.createElement("path", { d: 'M244.7,24.2c-0.4-1.2-0.9-2.3-1.7-3.1s-1.6-1.6-2.7-2c-1.1-0.5-2.3-0.7-3.6-0.7c-1.1,0-2.1,0.1-2.9,0.4c-0.7,0.3-1.3,0.5-1.7,0.7v-10l-3.6,0.6v27l0.1,0c0.8,0.2,1.8,0.4,3,0.7c1.2,0.2,2.6,0.3,4.2,0.3c1.5,0,2.8-0.2,3.9-0.7c1.2-0.5,2.2-1.1,3-2c0.8-0.8,1.5-1.9,1.9-3.1c0.4-1.2,0.7-2.6,0.7-4.1C245.3,26.7,245.1,25.4,244.7,24.2z M241.5,28.2c0,2.1-0.5,3.8-1.6,5c-1.1,1.2-2.5,1.7-4.2,1.7c-0.9,0-1.7,0-2.3-0.1c-0.5-0.1-1-0.2-1.3-0.2V22.8c0.4-0.3,1-0.6,1.7-0.9c0.8-0.3,1.6-0.5,2.5-0.5c0.9,0,1.7,0.2,2.4,0.5c0.7,0.3,1.2,0.8,1.6,1.4c0.4,0.6,0.7,1.3,0.9,2.1C241.4,26.3,241.5,27.2,241.5,28.2z' })), + react_1.default.createElement("path", { className: classes.Highlight, d: 'M256,35.3c0,1.6-1.3,3-3,3c-1.6,0-3-1.3-3-3s1.4-3,3-3C254.7,32.2,256,33.6,256,35.3z' })))); +}; +exports.LogoFull = LogoFull; +LogoFull.displayName = 'LogoFull'; diff --git a/build/lib/components/graphics/LogoFull/styles.d.ts b/build/lib/components/graphics/LogoFull/styles.d.ts new file mode 100644 index 00000000..b8fc7211 --- /dev/null +++ b/build/lib/components/graphics/LogoFull/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type LogoFullClassNames = 'LogoFull' | 'Highlight' | 'White' | 'SizeSm' | 'SizeMd' | 'SizeLg'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/graphics/LogoFull/styles.js b/build/lib/components/graphics/LogoFull/styles.js new file mode 100644 index 00000000..ded92a42 --- /dev/null +++ b/build/lib/components/graphics/LogoFull/styles.js @@ -0,0 +1,33 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = (theme) => ({ + LogoFull: { + display: 'flex', + flexDirection: 'column', + overflow: 'hidden', + alignItems: 'center', + justifyContent: 'center', + fontFamily: theme.font.family.headline, + background: theme.color.brand.grayDark + }, + Highlight: { + fill: theme.color.brand.highlight + }, + White: { + fill: theme.color.brand.white + }, + SizeSm: { + width: '132px', + height: '22px' + }, + SizeMd: { + width: '224px', + height: 'auto' + }, + SizeLg: { + width: '396px', + height: '66px' + } +}); +exports.styles = styles; diff --git a/build/lib/components/graphics/LogoMinimal/Documentation.d.ts b/build/lib/components/graphics/LogoMinimal/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/graphics/LogoMinimal/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/graphics/LogoMinimal/Documentation.js b/build/lib/components/graphics/LogoMinimal/Documentation.js new file mode 100644 index 00000000..c883b173 --- /dev/null +++ b/build/lib/components/graphics/LogoMinimal/Documentation.js @@ -0,0 +1,26 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../../components/documentation/ComponentPreview"); +const Property_1 = require("../../../components/documentation/Property"); +const __1 = require("../../.."); +const react_1 = __importDefault(require("react")); +const Documentation = () => (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "LogoMinimal"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.LogoMinimal, null), + react_1.default.createElement("hr", null), + react_1.default.createElement(Property_1.Property, { name: 'size', value: 'sm' }), + react_1.default.createElement(__1.LogoMinimal, { size: 'sm' }), + react_1.default.createElement("hr", null), + react_1.default.createElement(Property_1.Property, { name: 'size', value: 'md' }), + react_1.default.createElement(__1.LogoMinimal, { size: 'md' }), + react_1.default.createElement("hr", null), + react_1.default.createElement(Property_1.Property, { name: 'size', value: 'lg' }), + react_1.default.createElement(__1.LogoMinimal, { size: 'lg' }), + react_1.default.createElement("hr", null))))); +exports.Documentation = Documentation; diff --git a/build/lib/components/graphics/LogoMinimal/index.d.ts b/build/lib/components/graphics/LogoMinimal/index.d.ts new file mode 100644 index 00000000..cd426697 --- /dev/null +++ b/build/lib/components/graphics/LogoMinimal/index.d.ts @@ -0,0 +1,8 @@ +import { LogoFullProps } from '../LogoFull'; +import { FunctionComponent } from 'react'; +interface LogoMinimalProps extends LogoFullProps { + color?: 'default' | 'monochrome'; + isInteractive?: boolean; +} +declare const LogoMinimal: FunctionComponent; +export { LogoMinimal }; diff --git a/build/lib/components/graphics/LogoMinimal/index.js b/build/lib/components/graphics/LogoMinimal/index.js new file mode 100644 index 00000000..107a352c --- /dev/null +++ b/build/lib/components/graphics/LogoMinimal/index.js @@ -0,0 +1,29 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LogoMinimal = void 0; +const styles_1 = require("../../../styles"); +const styles_2 = require("./styles"); +const react_1 = __importDefault(require("react")); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const LogoMinimal = ({ color = 'default', size = 'md', isInteractive = false }) => { + const classes = useStyles(); + const componentClasses = (0, styles_1.classNames)(classes.LogoMinimal, { + [classes.SizeSm]: size === 'sm', + [classes.SizeMd]: size === 'md', + [classes.SizeLg]: size === 'lg', + [classes.IsMonochrome]: color === 'monochrome', + [classes.IsInteractive]: isInteractive + }); + return (react_1.default.createElement("div", { className: componentClasses }, + react_1.default.createElement("svg", { xmlns: 'http://www.w3.org/2000/svg', viewBox: '0 0 112 112', "aria-hidden": 'true' }, + react_1.default.createElement("g", null, + react_1.default.createElement("path", { className: classes.Foreground, d: 'M99,80.9l-43.1,24.9L12.8,80.9V31.1L55.9,6.2L99,31.1V80.9z' }), + react_1.default.createElement("g", null, + react_1.default.createElement("path", { className: classes.Background, d: 'M55.9,78.5c0-2.9-0.2-5.4-0.6-7.4s-1-3.7-1.9-5c-0.9-1.3-2-2.2-3.5-2.8s-3.3-0.9-5.4-0.9 c-1.6,0-3.2,0.1-5,0.3c-1.7,0.2-3,0.4-3.8,0.5v30.9l20.1,11.6l0,0L55.9,78.5L55.9,78.5z' }), + react_1.default.createElement("path", { className: classes.Background, d: 'M55.9,6.2L12.8,31.1v49.8L23.3,87V54.7c2.4-0.7,5.5-1.3,9.4-2c3.9-0.6,8.1-0.9,12.8-0.9 c4.4,0,8.1,0.6,11.1,1.8s5.3,2.9,7.1,5.1c1.8,2.2,3,4.8,3.7,7.9c0.7,3.1,1.1,6.4,1.1,10.1v22L99.2,81V31.1L55.9,6.2z' })))))); +}; +exports.LogoMinimal = LogoMinimal; +LogoMinimal.displayName = 'LogoMinimal'; diff --git a/build/lib/components/graphics/LogoMinimal/styles.d.ts b/build/lib/components/graphics/LogoMinimal/styles.d.ts new file mode 100644 index 00000000..1a630da4 --- /dev/null +++ b/build/lib/components/graphics/LogoMinimal/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type LogoMinimalClassNames = 'LogoMinimal' | 'Foreground' | 'Background' | 'IsMonochrome' | 'IsInteractive' | 'SizeSm' | 'SizeMd' | 'SizeLg'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/graphics/LogoMinimal/styles.js b/build/lib/components/graphics/LogoMinimal/styles.js new file mode 100644 index 00000000..530441f0 --- /dev/null +++ b/build/lib/components/graphics/LogoMinimal/styles.js @@ -0,0 +1,52 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = (theme) => ({ + LogoMinimal: { + display: 'flex', + flexDirection: 'column', + overflow: 'hidden', + alignItems: 'center', + justifyContent: 'center', + fontFamily: theme.font.family.headline, + background: theme.color.brand.grayDark + }, + Foreground: { + fill: theme.color.brand.white + }, + Background: { + fill: theme.color.brand.highlight + }, + IsMonochrome: { + '& $Background': { + fill: theme.color.brand.white + }, + '& $Foreground': { + fill: theme.color.brand.grayDark + } + }, + IsInteractive: { + cursor: 'pointer', + '&:hover': { + '& $Background': { + fill: theme.color.brand.highlight + }, + '& $Foreground': { + fill: theme.color.brand.white + } + } + }, + SizeSm: { + width: '28px', + height: '28px' + }, + SizeMd: { + width: '42px', + height: '42px' + }, + SizeLg: { + width: '112px', + height: '112px' + } +}); +exports.styles = styles; diff --git a/build/lib/components/graphics/LogoProps.d.ts b/build/lib/components/graphics/LogoProps.d.ts new file mode 100644 index 00000000..bf6395ed --- /dev/null +++ b/build/lib/components/graphics/LogoProps.d.ts @@ -0,0 +1,5 @@ +export interface LogoProps { + isAnimated?: boolean; + isVisible?: boolean; + size?: 'sm' | 'md' | 'lg' | 'xl'; +} diff --git a/build/lib/components/graphics/LogoProps.js b/build/lib/components/graphics/LogoProps.js new file mode 100644 index 00000000..c8ad2e54 --- /dev/null +++ b/build/lib/components/graphics/LogoProps.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/build/lib/components/graphics/LogoTheNativeWeb/Documentation.d.ts b/build/lib/components/graphics/LogoTheNativeWeb/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/graphics/LogoTheNativeWeb/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/graphics/LogoTheNativeWeb/Documentation.js b/build/lib/components/graphics/LogoTheNativeWeb/Documentation.js new file mode 100644 index 00000000..5ece2568 --- /dev/null +++ b/build/lib/components/graphics/LogoTheNativeWeb/Documentation.js @@ -0,0 +1,26 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../../components/documentation/ComponentPreview"); +const Property_1 = require("../../../components/documentation/Property"); +const __1 = require("../../.."); +const react_1 = __importDefault(require("react")); +const Documentation = () => (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "LogoTheNativeWeb"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.LogoTheNativeWeb, null), + react_1.default.createElement("hr", null), + react_1.default.createElement(Property_1.Property, { name: 'size', value: 'sm' }), + react_1.default.createElement(__1.LogoTheNativeWeb, { size: 'sm' }), + react_1.default.createElement("hr", null), + react_1.default.createElement(Property_1.Property, { name: 'size', value: 'md' }), + react_1.default.createElement(__1.LogoTheNativeWeb, { size: 'md' }), + react_1.default.createElement("hr", null), + react_1.default.createElement(Property_1.Property, { name: 'size', value: 'lg' }), + react_1.default.createElement(__1.LogoTheNativeWeb, { size: 'lg' }), + react_1.default.createElement("hr", null))))); +exports.Documentation = Documentation; diff --git a/build/lib/components/graphics/LogoTheNativeWeb/index.d.ts b/build/lib/components/graphics/LogoTheNativeWeb/index.d.ts new file mode 100644 index 00000000..dd88b2f2 --- /dev/null +++ b/build/lib/components/graphics/LogoTheNativeWeb/index.d.ts @@ -0,0 +1,4 @@ +import { LogoProps } from '../LogoProps'; +import { FunctionComponent } from 'react'; +declare const LogoTheNativeWeb: FunctionComponent; +export { LogoTheNativeWeb }; diff --git a/build/lib/components/graphics/LogoTheNativeWeb/index.js b/build/lib/components/graphics/LogoTheNativeWeb/index.js new file mode 100644 index 00000000..0fc436f3 --- /dev/null +++ b/build/lib/components/graphics/LogoTheNativeWeb/index.js @@ -0,0 +1,31 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LogoTheNativeWeb = void 0; +const styles_1 = require("../../../styles"); +const styles_2 = require("./styles"); +const react_1 = __importDefault(require("react")); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const LogoTheNativeWeb = ({ isVisible = true, size = 'md' }) => { + const classes = useStyles(); + if (!isVisible) { + return null; + } + const componentClasses = (0, styles_1.classNames)(classes.LogoTheNativeWeb, { + [classes.SizeSm]: size === 'sm', + [classes.SizeMd]: size === 'md', + [classes.SizeLg]: size === 'lg', + [classes.SizeXl]: size === 'xl' + }); + return (react_1.default.createElement("div", { className: componentClasses, "aria-hidden": 'true' }, + react_1.default.createElement("svg", { xmlns: 'http://www.w3.org/2000/svg', viewBox: '0 0 112 112' }, + react_1.default.createElement("g", null, + react_1.default.createElement("path", { className: classes.Foreground, d: 'M99,80.9l-43.1,24.9L12.8,80.9V31.1L55.9,6.2L99,31.1V80.9z' }), + react_1.default.createElement("g", null, + react_1.default.createElement("path", { className: classes.Background, d: 'M55.9,78.5c0-2.9-0.2-5.4-0.6-7.4s-1-3.7-1.9-5c-0.9-1.3-2-2.2-3.5-2.8s-3.3-0.9-5.4-0.9 c-1.6,0-3.2,0.1-5,0.3c-1.7,0.2-3,0.4-3.8,0.5v30.9l20.1,11.6l0,0L55.9,78.5L55.9,78.5z' }), + react_1.default.createElement("path", { className: classes.Background, d: 'M55.9,6.2L12.8,31.1v49.8L23.3,87V54.7c2.4-0.7,5.5-1.3,9.4-2c3.9-0.6,8.1-0.9,12.8-0.9 c4.4,0,8.1,0.6,11.1,1.8s5.3,2.9,7.1,5.1c1.8,2.2,3,4.8,3.7,7.9c0.7,3.1,1.1,6.4,1.1,10.1v22L99.2,81V31.1L55.9,6.2z' })))))); +}; +exports.LogoTheNativeWeb = LogoTheNativeWeb; +LogoTheNativeWeb.displayName = 'LogoTheNativeWeb'; diff --git a/build/lib/components/graphics/LogoTheNativeWeb/styles.d.ts b/build/lib/components/graphics/LogoTheNativeWeb/styles.d.ts new file mode 100644 index 00000000..fa8bf96a --- /dev/null +++ b/build/lib/components/graphics/LogoTheNativeWeb/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type LogoTheNativeWebClassNames = 'LogoTheNativeWeb' | 'Foreground' | 'Background' | 'SizeSm' | 'SizeMd' | 'SizeLg' | 'SizeXl'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/graphics/LogoTheNativeWeb/styles.js b/build/lib/components/graphics/LogoTheNativeWeb/styles.js new file mode 100644 index 00000000..f4f324c9 --- /dev/null +++ b/build/lib/components/graphics/LogoTheNativeWeb/styles.js @@ -0,0 +1,29 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = (theme) => ({ + LogoTheNativeWeb: {}, + Foreground: { + fill: theme.color.brand.white + }, + Background: { + fill: theme.color.brand.highlight + }, + SizeSm: { + width: '36px', + height: '36px' + }, + SizeMd: { + width: '56px', + height: '56px' + }, + SizeLg: { + width: '120px', + height: '120px' + }, + SizeXl: { + width: '200px', + height: '200px' + } +}); +exports.styles = styles; diff --git a/build/lib/components/graphics/LogoWolkenkit/Documentation.d.ts b/build/lib/components/graphics/LogoWolkenkit/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/graphics/LogoWolkenkit/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/graphics/LogoWolkenkit/Documentation.js b/build/lib/components/graphics/LogoWolkenkit/Documentation.js new file mode 100644 index 00000000..960522e7 --- /dev/null +++ b/build/lib/components/graphics/LogoWolkenkit/Documentation.js @@ -0,0 +1,30 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../../components/documentation/ComponentPreview"); +const Property_1 = require("../../../components/documentation/Property"); +const __1 = require("../../.."); +const react_1 = __importDefault(require("react")); +const Documentation = () => (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "LogoWolkenkit"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Container, { style: { height: 100 }, background: 'dark' }, + react_1.default.createElement(__1.LogoWolkenkit, null)), + react_1.default.createElement("hr", null), + react_1.default.createElement(Property_1.Property, { name: 'size', value: 'sm' }), + react_1.default.createElement(__1.Container, { style: { height: 100 }, background: 'dark' }, + react_1.default.createElement(__1.LogoWolkenkit, { size: 'sm' })), + react_1.default.createElement("hr", null), + react_1.default.createElement(Property_1.Property, { name: 'size', value: 'md' }), + react_1.default.createElement(__1.Container, { style: { height: 100 }, background: 'dark' }, + react_1.default.createElement(__1.LogoWolkenkit, { size: 'md' })), + react_1.default.createElement("hr", null), + react_1.default.createElement(Property_1.Property, { name: 'size', value: 'lg' }), + react_1.default.createElement(__1.Container, { style: { height: 180 }, background: 'dark' }, + react_1.default.createElement(__1.LogoWolkenkit, { size: 'lg' })), + react_1.default.createElement("hr", null))))); +exports.Documentation = Documentation; diff --git a/build/lib/components/graphics/LogoWolkenkit/index.d.ts b/build/lib/components/graphics/LogoWolkenkit/index.d.ts new file mode 100644 index 00000000..f4dda643 --- /dev/null +++ b/build/lib/components/graphics/LogoWolkenkit/index.d.ts @@ -0,0 +1,4 @@ +import { LogoProps } from '../LogoProps'; +import { FunctionComponent } from 'react'; +declare const LogoWolkenkit: FunctionComponent; +export { LogoWolkenkit }; diff --git a/build/lib/components/graphics/LogoWolkenkit/index.js b/build/lib/components/graphics/LogoWolkenkit/index.js new file mode 100644 index 00000000..4cbe297b --- /dev/null +++ b/build/lib/components/graphics/LogoWolkenkit/index.js @@ -0,0 +1,42 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.LogoWolkenkit = void 0; +const styles_1 = require("../../../styles"); +const styles_2 = require("./styles"); +const react_1 = __importDefault(require("react")); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const LogoWolkenkit = ({ isAnimated = false, isVisible = true, size = 'md' }) => { + const classes = useStyles(); + if (!isVisible) { + return null; + } + const componentClasses = (0, styles_1.classNames)(classes.LogoWolkenkit, { + [classes.SizeSm]: size === 'sm', + [classes.SizeMd]: size === 'md', + [classes.SizeLg]: size === 'lg', + [classes.SizeXl]: size === 'xl' + }); + const movingCloud1Classes = (0, styles_1.classNames)({ + [classes.MovingCloudAnimated]: isAnimated + }, classes.MovingCloud1); + const movingCloud2Classes = (0, styles_1.classNames)({ + [classes.MovingCloudAnimated]: isAnimated + }, classes.MovingCloud2); + return (react_1.default.createElement("div", { className: componentClasses, "aria-hidden": 'true' }, + react_1.default.createElement("svg", { xmlns: 'http://www.w3.org/2000/svg', viewBox: '0 0 220 220' }, + react_1.default.createElement("defs", null, + react_1.default.createElement("clipPath", { id: 'hexa-mask' }, + react_1.default.createElement("path", { d: 'M176.771,41.636c-2.789,3.1-4.635,6.945-5.431,11.215\n c-1.411-0.477-2.853-0.746-4.425-0.746c-4.109,0-7.768,1.819-10.337,4.672c-4.228-4.566-10.238-7.442-16.95-7.442\n c-0.792,0-1.562,0.05-2.335,0.127c-3.153-9.02-11.716-15.497-21.813-15.497c-9.896,0-18.322,6.215-21.625,14.951\n c-1.282-4.331-5.172-7.547-9.875-7.707c0.038-0.555,0.084-1.108,0.084-1.675c0-6.843-2.936-12.971-7.659-17.205L27,51.294v18.245\n v79.339v0.001l83,48.792l83-48.792v-0.001V64.545V51.294L176.771,41.636z' }))), + react_1.default.createElement("g", { className: 'static-clouds' }, + react_1.default.createElement("path", { fill: '#049CDB', d: 'M176.771,41.636c-2.789,3.1-4.635,6.945-5.431,11.215c-1.411-0.477-2.853-0.746-4.425-0.746\n c-4.109,0-7.768,1.819-10.337,4.672c-4.228-4.566-10.238-7.442-16.95-7.442c-0.792,0-1.562,0.05-2.335,0.127\n c-3.153-9.02-11.716-15.497-21.813-15.497c-9.896,0-18.322,6.215-21.625,14.951c-1.282-4.331-5.172-7.547-9.875-7.707\n c0.038-0.555,0.084-1.108,0.084-1.675c0-6.843-2.936-12.971-7.659-17.205L27,51.294v97.584l83,48.792l83-48.792V51.294\n L176.771,41.636z M151,123.938l-41,23.853l-41-23.853V76.235l41-23.851l41,23.851V123.938z' }), + react_1.default.createElement("path", { fill: '#66D0FD', d: 'M176.299,86.81c0,0.566,0.176,1.115,0.213,1.67c-4.703,0.161-8.597,3.377-9.878,7.707\n C164.025,89.291,158,83.978,151,82.038v41.899l-41,23.853l-41-23.853v-42.57c-1-0.083-1.679-0.137-2.497-0.137\n c-0.58,0-1.191,0.048-1.763,0.088c-2.46-10.126-11.521-17.653-22.41-17.653C36.427,63.664,31,65.896,27,69.539v79.34l83,48.792\n l83-48.792V64.545C183,67.245,176.299,76.174,176.299,86.81z' })), + react_1.default.createElement("path", { className: classes.Box, d: 'M109.999,51.8L69,76.128v0.087v0.911v4.497v3.69v31.166v2.697v5.698v0.911v0.084l41.001,24.331\n L151,125.869v-0.083v-0.912v-4.497v-3.689V85.521v-2.699v-5.696v-0.911v-0.087L109.999,51.8z' }), + react_1.default.createElement("g", { className: 'moving-clouds', clipPath: 'url(#hexa-mask)' }, + react_1.default.createElement("path", { className: movingCloud1Classes, fill: '#FFFFFF', d: 'M152.434,145.188c-0.771-0.078-1.485-0.129-2.279-0.129c-6.711,0-12.703,2.877-16.93,7.444\n c-2.572-2.854-6.246-4.675-10.354-4.675c-1.571,0-3.069,0.271-4.483,0.747c-1.994-10.748-11.396-18.89-22.721-18.89\n c-0.579,0-1.152,0.047-1.722,0.088c-2.461-10.127-11.553-17.653-22.44-17.653c-12.778,0-23.137,10.364-23.137,23.141\n c0,0.566,0.039,1.14,0.077,1.693c-4.698,0.159-8.551,3.405-9.836,7.733C36.497,139.111,32,134.549,27,132\n c-14.333-7.667-37.666,0.667-40.567,13.188c-0.771-0.078-1.485-0.129-2.278-0.129c-6.711,0-12.704,2.877-16.931,7.444\n c-2.572-2.854-6.245-4.675-10.354-4.675c-1.571,0-3.069,0.271-4.483,0.747c-1.995-10.748-11.397-18.89-22.721-18.89\n c-0.579,0-1.152,0.047-1.722,0.088c-2.461-10.127-11.553-17.653-22.44-17.653c-12.778,0-23.137,10.364-23.137,23.141\n c0,0.566,0.039,1.14,0.077,1.693c-4.698,0.159-8.551,3.405-9.836,7.733C-129.503,139.111-134,134.549-139,132v68.879h332V132\n C178.667,124.333,155.334,132.667,152.434,145.188z' }), + react_1.default.createElement("path", { className: movingCloud2Classes, fill: '#FFFFFF', d: 'M152.434,155.188c-0.771-0.078-1.485-0.129-2.279-0.129c-6.711,0-12.703,2.877-16.93,7.444\n c-2.572-2.854-6.246-4.675-10.354-4.675c-1.571,0-3.069,0.271-4.483,0.747c-1.994-10.748-11.396-18.89-22.722-18.89\n c-0.578,0-1.151,0.047-1.722,0.088c-2.461-10.127-11.554-17.653-22.44-17.653c-12.778,0-23.137,10.364-23.137,23.141\n c0,0.566,0.039,1.14,0.077,1.693c-4.698,0.159-8.551,3.405-9.836,7.733C36.497,149.111,32,144.549,27,142\n c-14.333-7.667-37.666,0.667-40.567,13.188c-0.771-0.078-1.485-0.129-2.278-0.129c-6.711,0-12.704,2.877-16.931,7.444\n c-2.572-2.854-6.245-4.675-10.354-4.675c-1.571,0-3.069,0.271-4.483,0.747c-1.995-10.748-11.397-18.89-22.721-18.89\n c-0.579,0-1.152,0.047-1.722,0.088c-2.461-10.127-11.553-17.653-22.44-17.653c-12.778,0-23.137,10.364-23.137,23.141\n c0,0.566,0.039,1.14,0.077,1.693c-4.698,0.159-8.551,3.405-9.836,7.733C-129.503,149.111-134,144.549-139,142v68.879h332V142\n C178.667,134.333,155.334,142.667,152.434,155.188z' }))))); +}; +exports.LogoWolkenkit = LogoWolkenkit; +LogoWolkenkit.displayName = 'LogoWolkenkit'; diff --git a/build/lib/components/graphics/LogoWolkenkit/styles.d.ts b/build/lib/components/graphics/LogoWolkenkit/styles.d.ts new file mode 100644 index 00000000..53b1491d --- /dev/null +++ b/build/lib/components/graphics/LogoWolkenkit/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type LogoWolkenkitClassNames = 'LogoWolkenkit' | 'SizeSm' | 'SizeMd' | 'SizeLg' | 'SizeXl' | 'Box' | '@keyframes move-cloud' | 'MovingCloudAnimated' | 'MovingCloud1' | 'MovingCloud2'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/graphics/LogoWolkenkit/styles.js b/build/lib/components/graphics/LogoWolkenkit/styles.js new file mode 100644 index 00000000..51c04888 --- /dev/null +++ b/build/lib/components/graphics/LogoWolkenkit/styles.js @@ -0,0 +1,58 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = (theme) => ({ + LogoWolkenkit: {}, + SizeSm: { + width: '36px', + height: '36px' + }, + SizeMd: { + width: '56px', + height: '56px' + }, + SizeLg: { + width: '120px', + height: '120px' + }, + SizeXl: { + width: '220px', + height: '220px' + }, + Box: { + fill: theme.color.brand.grayDark + }, + '@keyframes move-cloud': { + '0%': { transform: 'translate3d(0, 0, 0)' }, + '50%': { transform: 'translate3d(83px, 5px, 0)' }, + '100%': { transform: 'translate3d(166px, 0, 0)' } + }, + MovingCloudAnimated: { + animationName: '$move-cloud', + animationTimingFunction: 'linear', + animationIterationCount: 'infinite', + transform: 'translate3d(0, 0, 0)', + willChange: 'transform' + }, + MovingCloud1: { + animationDuration: '50s', + opacity: 0.9, + transform: 'translate3d(0, 0, 0)', + willChange: 'transform' + }, + MovingCloud2: { + animationDuration: '30s', + opacity: 0.95 + }, + [theme.breakpoints.down('sm')]: { + SizeLg: { + width: '56px', + height: '56px' + }, + SizeXl: { + width: '100px', + height: '100px' + } + } +}); +exports.styles = styles; diff --git a/build/lib/components/input/Button/Documentation.d.ts b/build/lib/components/input/Button/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/input/Button/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/input/Button/Documentation.js b/build/lib/components/input/Button/Documentation.js new file mode 100644 index 00000000..ee5f85e3 --- /dev/null +++ b/build/lib/components/input/Button/Documentation.js @@ -0,0 +1,57 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../../components/documentation/ComponentPreview"); +const __1 = require("../../.."); +const react_1 = __importDefault(require("react")); +const Documentation = () => (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "Button"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.Button, { onClick: () => __1.notifications.show({ type: 'success', text: 'onClick' }) }, "Click me!")), + react_1.default.createElement(__1.Headline, { level: '2' }, "Adjusting to flex container"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement("div", { style: { display: 'flex' } }, + react_1.default.createElement(__1.Button, { adjust: 'flex' }, "flex"), + react_1.default.createElement(__1.Button, { adjust: 'auto' }, "auto"), + react_1.default.createElement(__1.Button, { adjust: 'auto' }, "auto"))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Sizes"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement("div", { style: { display: 'flex', alignItems: 'center' } }, + react_1.default.createElement(__1.Button, { size: 'sm' }, "Small Button"), + react_1.default.createElement(__1.Button, null, "Default Button"))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Primary and subtle"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement("div", { style: { display: 'flex' } }, + react_1.default.createElement(__1.Button, { isSubtle: true, isPrimary: true, icon: 'heart' }, "Subtle button"), + react_1.default.createElement(__1.Button, { isPrimary: false }, "Cancel"), + react_1.default.createElement(__1.Button, { isPrimary: true }, "Primary button"))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Hints"), + react_1.default.createElement("p", null, "Hints can be used for displaying keyboard shortcuts."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement("div", null, + react_1.default.createElement(__1.Button, null, + "Small Button ", + react_1.default.createElement(__1.ButtonHint, null, "[Ctrl+Enter]")))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Setting button types explicitly"), + react_1.default.createElement("p", null, "If you use the button inside a form you may want to control the type of your button. By default the type `button` will be used. If you create a primary button the type will be set to `submit` automatically."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement("div", null, + react_1.default.createElement(__1.Button, { isPrimary: true, type: 'button' }, "Primary button that wont submit"), + react_1.default.createElement(__1.Button, { type: 'submit' }, "Submit"), + react_1.default.createElement(__1.Button, { type: 'reset' }, "Reset"))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Icons"), + react_1.default.createElement("p", null, "Hints can be used for displaying keyboard shortcuts."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement("div", null, + react_1.default.createElement(__1.Button, { icon: 'heart' }, "Button with icon"), + react_1.default.createElement(__1.Button, { icon: 'heart' }))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Disabling buttons"), + react_1.default.createElement("p", null, "Buttons can be disabled to show that their action is not available right now."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement("div", null, + react_1.default.createElement(__1.Button, { isPrimary: true, isEnabled: false }, "Disabled primary button"), + react_1.default.createElement(__1.Button, { isEnabled: false }, "Disabled button"))))); +exports.Documentation = Documentation; diff --git a/build/lib/components/input/Button/index.d.ts b/build/lib/components/input/Button/index.d.ts new file mode 100644 index 00000000..82b76b3c --- /dev/null +++ b/build/lib/components/input/Button/index.d.ts @@ -0,0 +1,19 @@ +import { IconSize } from '../../..'; +import React, { CSSProperties, FunctionComponent } from 'react'; +interface ButtonProps { + adjust?: 'flex' | 'auto'; + autoFocus?: boolean; + className?: string; + icon?: string; + iconSize?: IconSize; + id?: string; + isEnabled?: boolean; + isPrimary?: boolean; + isSubtle?: boolean; + size?: 'sm' | 'md'; + style?: CSSProperties; + type?: 'button' | 'submit' | 'reset'; + onClick?: (event: React.MouseEvent) => void; +} +declare const Button: FunctionComponent; +export { Button }; diff --git a/build/lib/components/input/Button/index.js b/build/lib/components/input/Button/index.js new file mode 100644 index 00000000..1ae3dbcb --- /dev/null +++ b/build/lib/components/input/Button/index.js @@ -0,0 +1,35 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Button = void 0; +const styles_1 = require("./styles"); +const styles_2 = require("../../../styles"); +const __1 = require("../../.."); +const react_1 = __importDefault(require("react")); +const useStyles = (0, styles_2.createUseStyles)(styles_1.styles); +const Button = ({ autoFocus = false, adjust, children, className, id, icon, iconSize = 'md', isEnabled = true, onClick = () => { + // Intentionally left blank. +}, isPrimary = false, isSubtle, size = 'md', style, type = 'button' }) => { + const classes = useStyles(); + const componentClasses = (0, styles_2.classNames)(classes.Button, { + [classes.AdjustFlex]: adjust === 'flex', + [classes.AdjustAuto]: adjust === 'auto', + [classes.SizeSm]: size === 'sm', + [classes.SizeMd]: size === 'md', + [classes.TypeSubtle]: isSubtle === true, + [classes.TypePrimary]: isPrimary, + [classes.TypeIcon]: icon, + [classes.TypeIconOnly]: icon && !children + }, className); + let buttonType = type; + if (isPrimary) { + buttonType = 'submit'; + } + return (react_1.default.createElement("button", { autoFocus: autoFocus, disabled: !isEnabled, id: id, type: buttonType, className: componentClasses, style: style, onClick: onClick }, + icon ? react_1.default.createElement(__1.Icon, { className: classes.Icon, name: icon, size: iconSize }) : null, + children ? react_1.default.createElement(__1.Label, null, children) : null)); +}; +exports.Button = Button; +Button.displayName = 'Button'; diff --git a/build/lib/components/input/Button/styles.d.ts b/build/lib/components/input/Button/styles.d.ts new file mode 100644 index 00000000..5e7614e2 --- /dev/null +++ b/build/lib/components/input/Button/styles.d.ts @@ -0,0 +1,5 @@ +import { ComponentClassNames } from '../../..'; +import { Theme } from '../../../themes/Theme'; +export type ButtonClassNames = 'Button' | 'AdjustFlex' | 'AdjustAuto' | 'SizeMd' | 'SizeSm' | 'TypePrimary' | 'TypeIcon' | 'TypeSubtle' | 'TypeIconOnly' | 'Icon'; +declare const getStyles: (theme: Theme) => ComponentClassNames; +export { getStyles as styles }; diff --git a/build/lib/components/input/Button/styles.js b/build/lib/components/input/Button/styles.js new file mode 100644 index 00000000..eefd61e6 --- /dev/null +++ b/build/lib/components/input/Button/styles.js @@ -0,0 +1,148 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const getStyles = (theme) => { + const styles = { + Button: { + display: 'flex', + alignItems: 'center', + justifyContent: 'center', + backgroundColor: theme.color.brand.grayDark, + borderColor: theme.color.brand.grayDark, + borderWidth: '1px', + borderStyle: 'solid', + color: theme.color.brand.white, + fontFamily: theme.font.family.default, + cursor: 'pointer', + whiteSpace: 'nowrap', + overflow: 'hidden', + textOverflow: 'ellipsis', + borderRadius: theme.components.borderRadius.default, + outline: 'none', + transition: 'background-color 300ms cubic-bezier(0.190, 1.000, 0.220, 1.000)', + willChange: 'background-color', + '&:disabled': { + cursor: 'not-allowed', + opacity: 0.3 + }, + '&:focus': { + 'background-color': theme.color.brand.highlight, + borderColor: theme.color.interaction.focus + }, + '&:active:enabled': { + 'background-color': theme.color.brand.grayDark, + opacity: 0.9 + }, + '&:last-child': { + marginRight: 0 + } + }, + Icon: { + flexGrow: 0, + flexShrink: 0, + flexBasis: 'auto', + marginRight: theme.space(1) + }, + AdjustFlex: { + flexGrow: 1, + flexShrink: 1, + flexBasis: '100%' + }, + AdjustAuto: { + flexGrow: 0, + flexShrink: 0 + }, + SizeMd: { + padding: `${theme.space(1)}px ${theme.space(1.5)}px`, + margin: `${theme.space(1)}px`, + marginLeft: 0, + fontSize: theme.font.size.md + }, + SizeSm: { + padding: `${theme.space(1)}px ${theme.space(1.5)}px`, + fontSize: theme.font.size.sm, + margin: 0, + marginRight: `${theme.space(1)}px` + }, + TypePrimary: { + backgroundColor: theme.color.brand.highlight, + borderColor: theme.color.brand.highlight + }, + TypeIcon: { + display: 'flex', + alignItems: 'center', + flexDirection: 'row', + lineHeight: 'normal', + // The fill color is applied as nested rule which increases specificity of + // the selector. It therefore overrides the default fill color of the icon. + '& $Icon': { + fill: theme.color.brand.white + } + }, + TypeSubtle: { + backgroundColor: 'transparent', + borderColor: 'transparent', + color: theme.color.brand.grayDark, + '& $Icon': { + fill: theme.color.brand.grayDark + }, + '&:hover:enabled': { + color: theme.color.brand.highlight, + '& $Icon': { + fill: theme.color.brand.highlight + } + }, + '&:focus': { + background: 'transparent', + color: theme.color.brand.highlight, + border: `1px dotted ${theme.color.interaction.focus} !important`, + borderRadius: '2px', + '& $Icon': { + fill: theme.color.brand.highlight + } + }, + '&:active:enabled': { + color: theme.color.brand.grayDark, + '& $Icon': { + fill: `${theme.color.brand.grayDark} !important` + } + } + }, + TypeIconOnly: { + borderColor: 'transparent', + display: 'flex', + alignItems: 'center', + justifyContent: 'center', + margin: 0, + padding: 0, + background: 'transparent', + '&:focus': { + borderColor: 'transparent', + textDecoration: 'underline', + background: 'none', + border: `1px dotted ${theme.color.interaction.focus} !important`, + borderRadius: '2px', + '& $Icon': { + fill: theme.color.brand.highlight + } + }, + '& $Icon': { + fill: theme.color.brand.grayDark, + marginRight: 0 + }, + '&:hover:enabled': { + '& $Icon': { + fill: theme.color.brand.highlight + } + }, + '&:active:enabled': { + '& $Icon': { + fill: `${theme.color.brand.grayDark} !important`, + marginRight: 0 + } + } + } + }; + return styles; +}; +exports.styles = getStyles; diff --git a/build/lib/components/input/ButtonHint/index.d.ts b/build/lib/components/input/ButtonHint/index.d.ts new file mode 100644 index 00000000..773f13ea --- /dev/null +++ b/build/lib/components/input/ButtonHint/index.d.ts @@ -0,0 +1,3 @@ +import { FunctionComponent } from 'react'; +declare const ButtonHint: FunctionComponent; +export { ButtonHint }; diff --git a/build/lib/components/input/ButtonHint/index.js b/build/lib/components/input/ButtonHint/index.js new file mode 100644 index 00000000..fd115e8d --- /dev/null +++ b/build/lib/components/input/ButtonHint/index.js @@ -0,0 +1,16 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ButtonHint = void 0; +const styles_1 = require("../../../styles"); +const styles_2 = require("./styles"); +const react_1 = __importDefault(require("react")); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const ButtonHint = ({ children }) => { + const classes = useStyles(); + return (react_1.default.createElement("span", { className: classes.ButtonHint }, children)); +}; +exports.ButtonHint = ButtonHint; +ButtonHint.displayName = 'ButtonHint'; diff --git a/build/lib/components/input/ButtonHint/styles.d.ts b/build/lib/components/input/ButtonHint/styles.d.ts new file mode 100644 index 00000000..080cf8ab --- /dev/null +++ b/build/lib/components/input/ButtonHint/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type ButtonHintClassNames = 'ButtonHint'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/input/ButtonHint/styles.js b/build/lib/components/input/ButtonHint/styles.js new file mode 100644 index 00000000..6a843f2e --- /dev/null +++ b/build/lib/components/input/ButtonHint/styles.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = (theme) => ({ + ButtonHint: { + opacity: 0.5, + fontSize: theme.font.size.sm, + paddingLeft: '0.75em' + } +}); +exports.styles = styles; diff --git a/build/lib/components/input/CheckBox/Documentation.d.ts b/build/lib/components/input/CheckBox/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/input/CheckBox/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/input/CheckBox/Documentation.js b/build/lib/components/input/CheckBox/Documentation.js new file mode 100644 index 00000000..90e15249 --- /dev/null +++ b/build/lib/components/input/CheckBox/Documentation.js @@ -0,0 +1,51 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../../components/documentation/ComponentPreview"); +const __1 = require("../../.."); +const react_1 = __importStar(require("react")); +const Documentation = () => { + const [isChecked, setIsChecked] = (0, react_1.useState)(false); + return (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "CheckBox"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement("div", null, + react_1.default.createElement(__1.CheckBox, { checked: isChecked, onChange: () => { + setIsChecked(!isChecked); + } }))))); +}; +exports.Documentation = Documentation; +__1.CheckBox.displayName = 'CheckBox'; diff --git a/build/lib/components/input/CheckBox/index.d.ts b/build/lib/components/input/CheckBox/index.d.ts new file mode 100644 index 00000000..6f6edc0a --- /dev/null +++ b/build/lib/components/input/CheckBox/index.d.ts @@ -0,0 +1,11 @@ +import { CSSProperties, FunctionComponent } from 'react'; +interface CheckBoxProps { + className?: string; + checked?: boolean; + name?: string; + id?: string; + style?: CSSProperties; + onChange?: () => void; +} +declare const CheckBox: FunctionComponent; +export { CheckBox }; diff --git a/build/lib/components/input/CheckBox/index.js b/build/lib/components/input/CheckBox/index.js new file mode 100644 index 00000000..a5f806dd --- /dev/null +++ b/build/lib/components/input/CheckBox/index.js @@ -0,0 +1,16 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CheckBox = void 0; +const styles_1 = require("./styles"); +const styles_2 = require("../../../styles"); +const react_1 = __importDefault(require("react")); +const useStyles = (0, styles_2.createUseStyles)(styles_1.styles); +const CheckBox = ({ checked, className, id, name, style, onChange }) => { + const classes = useStyles(); + const componentClasses = (0, styles_2.classNames)(classes.CheckBox, className); + return (react_1.default.createElement("input", { id: id, className: componentClasses, name: name, style: style, type: 'checkbox', checked: checked, onChange: onChange })); +}; +exports.CheckBox = CheckBox; diff --git a/build/lib/components/input/CheckBox/styles.d.ts b/build/lib/components/input/CheckBox/styles.d.ts new file mode 100644 index 00000000..1b6ef360 --- /dev/null +++ b/build/lib/components/input/CheckBox/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type CheckBoxClassNames = 'CheckBox'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/input/CheckBox/styles.js b/build/lib/components/input/CheckBox/styles.js new file mode 100644 index 00000000..b49208ca --- /dev/null +++ b/build/lib/components/input/CheckBox/styles.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = (theme) => ({ + CheckBox: { + fontFamily: theme.font.family.default + } +}); +exports.styles = styles; diff --git a/build/lib/components/input/Dropdown/Documentation.d.ts b/build/lib/components/input/Dropdown/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/input/Dropdown/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/input/Dropdown/Documentation.js b/build/lib/components/input/Dropdown/Documentation.js new file mode 100644 index 00000000..2e633ad1 --- /dev/null +++ b/build/lib/components/input/Dropdown/Documentation.js @@ -0,0 +1,59 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../../components/documentation/ComponentPreview"); +const Property_1 = require("../../../components/documentation/Property"); +const __1 = require("../../.."); +const react_1 = __importStar(require("react")); +const Documentation = () => { + const [selectedValue, setSelectedValue] = (0, react_1.useState)(''); + const handleChange = (value) => { + setSelectedValue(value); + __1.notifications.show({ type: 'success', text: `onChange(value: ${value})` }); + }; + return (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "Dropdown"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Dropdown, { options: [{ value: 'foo', label: 'Foo' }, { value: 'bar', label: 'Bar' }], value: selectedValue, onChange: (value) => handleChange(value) }), + react_1.default.createElement("hr", null), + react_1.default.createElement(Property_1.Property, { name: 'size', value: 'sm' }), + react_1.default.createElement(__1.Dropdown, { size: 'sm', options: [{ value: 'foo', label: 'Foo' }, { value: 'bar', label: 'Bar' }], value: selectedValue, onChange: (value) => handleChange(value) }))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Providing a label when value has not yet been set"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.Dropdown, { emptyLabel: 'Choose an option\u2026', options: [{ value: 'foo', label: 'Foo' }, { value: 'bar', label: 'Bar' }], value: selectedValue, onChange: (value) => handleChange(value) })))); +}; +exports.Documentation = Documentation; diff --git a/build/lib/components/input/Dropdown/index.d.ts b/build/lib/components/input/Dropdown/index.d.ts new file mode 100644 index 00000000..b7a99f7f --- /dev/null +++ b/build/lib/components/input/Dropdown/index.d.ts @@ -0,0 +1,18 @@ +import { CSSProperties, FunctionComponent } from 'react'; +export interface DropdownOption { + label: string; + value: string; +} +type DropDownSize = 'sm' | 'md'; +interface DropdownProps { + options: DropdownOption[]; + value: string; + emptyLabel?: string; + id?: string; + isSubtle?: boolean; + size?: DropDownSize; + style?: CSSProperties; + onChange?: (value: string) => void; +} +declare const Dropdown: FunctionComponent; +export { Dropdown }; diff --git a/build/lib/components/input/Dropdown/index.js b/build/lib/components/input/Dropdown/index.js new file mode 100644 index 00000000..666f1a03 --- /dev/null +++ b/build/lib/components/input/Dropdown/index.js @@ -0,0 +1,63 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Dropdown = void 0; +const __1 = require("../../.."); +const styles_1 = require("../../../styles"); +const styles_2 = require("./styles"); +const react_1 = __importStar(require("react")); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const Dropdown = ({ emptyLabel, id, options, isSubtle = false, size = 'md', style, value, onChange }) => { + const classes = useStyles(); + const handleChange = (0, react_1.useCallback)((event) => { + if (onChange) { + onChange(event.currentTarget.value); + } + }, [onChange]); + const [isFocused, setIsFocused] = (0, react_1.useState)(false); + const dropdownClassNames = (0, styles_1.classNames)(classes.Dropdown, { + [classes.SizeSm]: size === 'sm', + [classes.SizeMd]: size === 'md', + [classes.IsSubtle]: isSubtle, + [classes.IsFocused]: isFocused + }); + return (react_1.default.createElement("div", { id: id, className: dropdownClassNames, style: style }, + react_1.default.createElement("select", { value: value, onChange: handleChange, onFocus: () => setIsFocused(true), onBlur: () => setIsFocused(false) }, + emptyLabel ? react_1.default.createElement("option", { value: '', key: 'empty-value' }, emptyLabel) : null, + options.map((option) => (react_1.default.createElement("option", { key: option.value, value: option.label }, option.label)))), + react_1.default.createElement(__1.Icon, { key: 'icon', color: 'current', className: classes.CollapseIcon, name: 'expand' }))); +}; +exports.Dropdown = Dropdown; +Dropdown.displayName = 'Dropdown'; diff --git a/build/lib/components/input/Dropdown/styles.d.ts b/build/lib/components/input/Dropdown/styles.d.ts new file mode 100644 index 00000000..e177ff7f --- /dev/null +++ b/build/lib/components/input/Dropdown/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type DropdownClassNames = 'Dropdown' | 'SizeSm' | 'SizeMd' | 'IsFocused' | 'IsSubtle' | 'CollapseIcon'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/input/Dropdown/styles.js b/build/lib/components/input/Dropdown/styles.js new file mode 100644 index 00000000..44c7d685 --- /dev/null +++ b/build/lib/components/input/Dropdown/styles.js @@ -0,0 +1,79 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = (theme) => ({ + Dropdown: { + position: 'relative', + display: 'flex', + alignItems: 'center', + justifyContent: 'center', + overflow: 'hidden', + background: theme.color.brand.grayDark, + border: theme.color.brand.grayDark, + fontFamily: theme.font.family.default, + color: theme.color.brand.white, + '& select': { + flexGrow: 1, + flexShrink: 1, + flexBasis: '100%', + background: 'inherit', + fontSize: 'inherit', + fontWeight: 'inherit', + border: 0, + color: 'inherit', + cursor: 'pointer', + outline: 'none', + appearance: 'none', + whiteSpace: 'nowrap', + overflow: 'hidden', + textOverflow: 'ellipsis', + borderRadius: theme.components.borderRadius.default, + fontFamily: 'inherit', + '&:focus': { + outline: 'none' + } + }, + '&:last-child': { + '& select': { + marginRight: 0 + } + } + }, + SizeSm: { + fontSize: theme.font.size.sm, + margin: 0, + marginRight: '6px', + '& select': { + padding: '7px 40px 7px 11px' + } + }, + SizeMd: { + margin: '16px', + marginLeft: 0, + fontSize: theme.font.size.md, + '& select': { + padding: '7px 40px 7px 11px' + } + }, + IsSubtle: { + background: theme.color.brand.white, + border: theme.color.brand.white, + color: theme.color.brand.grayDark + }, + IsFocused: { + background: theme.color.brand.highlight, + color: theme.color.brand.white + }, + CollapseIcon: { + flexGrow: 0, + flexShrink: 0, + flexBasis: 'auto', + transform: 'rotate(90deg)', + pointerEvents: 'none', + position: 'absolute', + right: '7px', + top: '50%', + marginTop: '-8px' + } +}); +exports.styles = styles; diff --git a/build/lib/components/input/Link/Documentation.d.ts b/build/lib/components/input/Link/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/input/Link/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/input/Link/Documentation.js b/build/lib/components/input/Link/Documentation.js new file mode 100644 index 00000000..c9301331 --- /dev/null +++ b/build/lib/components/input/Link/Documentation.js @@ -0,0 +1,37 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../../components/documentation/ComponentPreview"); +const __1 = require("../../.."); +const react_1 = __importDefault(require("react")); +const handleClick = (event) => { + event.preventDefault(); + __1.notifications.show({ type: 'success', text: `onClick(event: MouseEvent)` }); +}; +const Documentation = () => (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "Link"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.Link, { href: '/en-us/components/input/button' }, "This an interal link")), + react_1.default.createElement(__1.Headline, { level: '2' }, "Anchor links"), + react_1.default.createElement(__1.Paragraph, null, + "When linking to anchors on the current page, the ", + react_1.default.createElement("code", null, "Link"), + " component will smoothly scroll to the target."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.Link, { href: '#intercepting-click-events' }, "This a link to #intercepting-click-events")), + react_1.default.createElement(__1.Headline, { level: '2' }, "Intercepting click events"), + react_1.default.createElement(__1.Paragraph, null, + "When linking to external websites, the ", + react_1.default.createElement("code", null, "rel"), + " and ", + react_1.default.createElement("code", null, "target"), + " attributes will be set automatically, so that external links will open in a new tab."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.Link, { href: 'https://www.thenativeweb.io' }, "This an external link")), + react_1.default.createElement(__1.Headline, { level: '2' }, "Intercepting click events"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.Link, { href: 'https://www.thenativeweb.io', onClick: handleClick }, "This a link with an onClick handler")))); +exports.Documentation = Documentation; diff --git a/build/lib/components/input/Link/index.d.ts b/build/lib/components/input/Link/index.d.ts new file mode 100644 index 00000000..1de89f89 --- /dev/null +++ b/build/lib/components/input/Link/index.d.ts @@ -0,0 +1,12 @@ +import { CSSProperties, FunctionComponent, MouseEvent } from 'react'; +interface LinkProps { + className?: string; + href: string; + id?: string; + style?: CSSProperties; + tabIndex?: number; + onClick?: (event: MouseEvent) => void; + onMouseOver?: (event: MouseEvent) => void; +} +declare const Link: FunctionComponent; +export { Link }; diff --git a/build/lib/components/input/Link/index.js b/build/lib/components/input/Link/index.js new file mode 100644 index 00000000..be9dd54a --- /dev/null +++ b/build/lib/components/input/Link/index.js @@ -0,0 +1,45 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Link = void 0; +const link_1 = __importDefault(require("next/link")); +const scrollToAnchor_1 = require("../../../utils/scrollToAnchor"); +const styles_1 = require("../../../styles"); +const styles_2 = require("./styles"); +const react_1 = __importDefault(require("react")); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const Link = react_1.default.forwardRef(({ id, className, children, href, style, tabIndex, +// eslint-disable-next-line @typescript-eslint/no-unused-vars +onClick, onMouseOver }, ref) => { + const classes = useStyles(); + const linkClasses = (0, styles_1.classNames)(classes.Link, className); + let rel, target; + const isAnchorLink = href.startsWith('#'), isExternalLink = href.startsWith('https://') || href.startsWith('http://'), isMailToLink = href.startsWith('mailto:'); + const anchorProps = { + id, + style, + tabIndex, + href, + className: linkClasses, + target, + rel, + ref, + onClick, + onMouseOver + }; + if (isAnchorLink || isExternalLink || isMailToLink) { + if (isExternalLink) { + anchorProps.target = '_blank'; + anchorProps.rel = 'noopener noreferrer'; + } + if (isAnchorLink && !onClick) { + anchorProps.onClick = scrollToAnchor_1.scrollToAnchor; + } + return react_1.default.createElement('a', anchorProps, children); + } + return (react_1.default.createElement(link_1.default, { href: href }, react_1.default.createElement('a', anchorProps, children))); +}); +exports.Link = Link; +Link.displayName = 'Link'; diff --git a/build/lib/components/input/Link/styles.d.ts b/build/lib/components/input/Link/styles.d.ts new file mode 100644 index 00000000..bcb7f7eb --- /dev/null +++ b/build/lib/components/input/Link/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type LinkClassNames = 'Link'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/input/Link/styles.js b/build/lib/components/input/Link/styles.js new file mode 100644 index 00000000..b1b097d4 --- /dev/null +++ b/build/lib/components/input/Link/styles.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = (theme) => ({ + Link: { + color: theme.color.brand.highlight, + fontSize: 'inherit', + textDecoration: 'none', + '&:hover': { + textDecoration: 'none' + } + } +}); +exports.styles = styles; diff --git a/build/lib/components/input/TextArea/Documentation.d.ts b/build/lib/components/input/TextArea/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/input/TextArea/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/input/TextArea/Documentation.js b/build/lib/components/input/TextArea/Documentation.js new file mode 100644 index 00000000..d11dd8fb --- /dev/null +++ b/build/lib/components/input/TextArea/Documentation.js @@ -0,0 +1,70 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../../components/documentation/ComponentPreview"); +const Property_1 = require("../../../components/documentation/Property"); +const __1 = require("../../.."); +const react_1 = __importStar(require("react")); +const handleFocus = () => { + __1.notifications.show({ type: 'success', text: `onFocus(event: FocusEvent)` }); +}; +const handleBlur = () => { + __1.notifications.show({ type: 'success', text: `onBlur(event: FocusEvent)` }); +}; +const Documentation = () => { + const [currentValue, setCurrentValue] = (0, react_1.useState)(''); + const handleChange = (event) => { + setCurrentValue(event.target.value); + __1.notifications.show({ type: 'success', text: `onChange(event: ChangeEvent)` }); + }; + return (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "TextArea"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.TextArea, { placeholder: 'Enter some text', value: currentValue, onFocus: handleFocus, onChange: handleChange, onBlur: handleBlur })), + react_1.default.createElement(__1.Headline, null, "Size"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement("div", { style: { display: 'flex' } }, + react_1.default.createElement("div", { style: { flexGrow: 1, marginRight: 20 } }, + react_1.default.createElement(Property_1.Property, { name: 'size', value: 'sm' }), + react_1.default.createElement(__1.TextArea, { size: 'sm', placeholder: 'Enter some text' })), + react_1.default.createElement("div", { style: { flexGrow: 1 } }, + react_1.default.createElement(Property_1.Property, { name: 'size', value: 'md' }), + react_1.default.createElement(__1.TextArea, { size: 'md', placeholder: 'Enter some text' })))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Disabled"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.TextArea, { value: 'This TextArea is disabled', disabled: true })))); +}; +exports.Documentation = Documentation; diff --git a/build/lib/components/input/TextArea/index.d.ts b/build/lib/components/input/TextArea/index.d.ts new file mode 100644 index 00000000..c6d71c65 --- /dev/null +++ b/build/lib/components/input/TextArea/index.d.ts @@ -0,0 +1,22 @@ +import { ChangeEvent, CSSProperties, FocusEvent, FunctionComponent } from 'react'; +interface TextAreaProps { + autoFocus?: boolean; + focusDelay?: number; + className?: string; + disabled?: boolean; + id?: string; + maxLength?: number; + minLength?: number; + name?: string; + placeholder?: string; + ref?: any; + required?: boolean; + size?: 'sm' | 'md'; + style?: CSSProperties; + value?: string; + onFocus?: (event: FocusEvent) => void; + onChange?: (event: ChangeEvent) => void; + onBlur?: (event: FocusEvent) => void; +} +declare const TextArea: FunctionComponent; +export { TextArea }; diff --git a/build/lib/components/input/TextArea/index.js b/build/lib/components/input/TextArea/index.js new file mode 100644 index 00000000..cc90b545 --- /dev/null +++ b/build/lib/components/input/TextArea/index.js @@ -0,0 +1,29 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.TextArea = void 0; +const useAutoFocus_1 = require("../../useAutoFocus"); +const styles_1 = require("../../../styles"); +const react_1 = __importDefault(require("react")); +const styles_2 = require("./styles"); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const TextArea = ({ autoFocus = false, className, disabled = false, focusDelay = 0, id, maxLength = Number.MAX_SAFE_INTEGER, minLength = 0, name, value, placeholder, required = false, style, size = 'md', onBlur = () => { + // Intentionally left blank. +}, onChange = () => { + // Intentionally left blank. +}, onFocus = () => { + // Intentionally left blank. +} }) => { + const classes = useStyles(); + const elementRef = (0, useAutoFocus_1.useAutoFocus)({ isEnabled: autoFocus, delay: focusDelay }); + const componentClasses = (0, styles_1.classNames)(classes.TextArea, { + [classes.IsDisabled]: disabled, + [classes.SizeSm]: size === 'sm', + [classes.SizeMd]: size === 'md' + }, className); + return (react_1.default.createElement("textarea", { id: id, ref: elementRef, className: componentClasses, disabled: disabled, maxLength: maxLength, minLength: minLength, name: name, value: value, onBlur: onBlur, onChange: onChange, onFocus: onFocus, placeholder: placeholder, required: required, style: style })); +}; +exports.TextArea = TextArea; +TextArea.displayName = 'TextArea'; diff --git a/build/lib/components/input/TextArea/styles.d.ts b/build/lib/components/input/TextArea/styles.d.ts new file mode 100644 index 00000000..ce51d846 --- /dev/null +++ b/build/lib/components/input/TextArea/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type TextAreaClassNames = 'TextArea' | 'IsDisabled' | 'SizeSm' | 'SizeMd'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/input/TextArea/styles.js b/build/lib/components/input/TextArea/styles.js new file mode 100644 index 00000000..973e51ef --- /dev/null +++ b/build/lib/components/input/TextArea/styles.js @@ -0,0 +1,39 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = (theme) => ({ + TextArea: { + padding: '9px 12px', + fontSize: theme.font.size.md, + fontFamily: theme.font.family.default, + width: '100%', + 'box-sizing': 'border-box', + border: `1px solid`, + borderColor: theme.color.content.border, + '&:invalid': { + borderColor: `${theme.color.interaction.error} !important` + }, + '&:focus': { + outline: 'none', + borderColor: theme.color.interaction.focus + }, + '&::placeholder': { + color: theme.color.brand.gray, + fontFamily: theme.font.family.default, + fontSize: 'inherit', + fontWeight: 400, + opacity: 0.5 + } + }, + IsDisabled: { + color: theme.color.brand.gray, + background: theme.color.brand.grayLight + }, + SizeSm: { + height: `${theme.space(10)}px` + }, + SizeMd: { + height: `${theme.space(18)}px` + } +}); +exports.styles = styles; diff --git a/build/lib/components/input/TextBox/Documentation.d.ts b/build/lib/components/input/TextBox/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/input/TextBox/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/input/TextBox/Documentation.js b/build/lib/components/input/TextBox/Documentation.js new file mode 100644 index 00000000..d412c7bc --- /dev/null +++ b/build/lib/components/input/TextBox/Documentation.js @@ -0,0 +1,77 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../../components/documentation/ComponentPreview"); +const Property_1 = require("../../../components/documentation/Property"); +const __1 = require("../../.."); +const react_1 = __importStar(require("react")); +const Documentation = () => { + const [date, setDate] = (0, react_1.useState)(''); + const [email, setEmail] = (0, react_1.useState)(''); + const [port, setPort] = (0, react_1.useState)(''); + const [search, setSearch] = (0, react_1.useState)(''); + const [time, setTime] = (0, react_1.useState)(''); + const [value, setValue] = (0, react_1.useState)(''); + const [valueMinMax, setValueMinMax] = (0, react_1.useState)('Value length must be between 1 and 100'); + return (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "TextBox"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.TextBox, { value: value, placeholder: 'local.wolkenkit.io', onFocus: (event) => __1.notifications.show({ type: 'success', text: `onFocus: ${event.target.value}` }), onChange: (event) => setValue(event.target.value), onBlur: (event) => __1.notifications.show({ type: 'success', text: `onBlur: ${event.target.value}` }), onEnter: () => __1.notifications.show({ type: 'success', text: `onEnter` }) })), + react_1.default.createElement(__1.Headline, { level: '2' }, "Types"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(Property_1.Property, { name: 'type', value: 'date' }), + react_1.default.createElement(__1.TextBox, { value: date, type: 'date', onChange: (event) => setDate(event.target.value) }), + react_1.default.createElement("hr", null), + react_1.default.createElement(Property_1.Property, { name: 'type', value: 'email' }), + react_1.default.createElement(__1.TextBox, { value: email, type: 'email', onChange: (event) => setEmail(event.target.value) }), + react_1.default.createElement("hr", null), + react_1.default.createElement(Property_1.Property, { name: 'type', value: 'port' }), + react_1.default.createElement(__1.TextBox, { value: port, type: 'port', placeholder: '3000', onChange: (event) => setPort(event.target.value) }), + react_1.default.createElement("hr", null), + react_1.default.createElement(Property_1.Property, { name: 'type', value: 'search' }), + react_1.default.createElement(__1.TextBox, { value: search, type: 'search', onChange: (event) => setSearch(event.target.value) }), + react_1.default.createElement("hr", null), + react_1.default.createElement(Property_1.Property, { name: 'type', value: 'time' }), + react_1.default.createElement(__1.TextBox, { value: time, type: 'time', onChange: (event) => setTime(event.target.value) }))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Min and max length"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.TextBox, { value: valueMinMax, minLength: 1, maxLength: 100, required: true, onChange: (event) => setValueMinMax(event.target.value) })), + react_1.default.createElement(__1.Headline, { level: '2' }, "Disabled"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.TextBox, { value: 'This TextBox is disabled.', disabled: true })))); +}; +exports.Documentation = Documentation; diff --git a/build/lib/components/input/TextBox/index.d.ts b/build/lib/components/input/TextBox/index.d.ts new file mode 100644 index 00000000..4f44c97a --- /dev/null +++ b/build/lib/components/input/TextBox/index.d.ts @@ -0,0 +1,22 @@ +import { ChangeEvent, CSSProperties, FocusEvent, FunctionComponent, KeyboardEvent } from 'react'; +interface TextBoxProps { + autoFocus?: boolean; + className?: string; + disabled?: boolean; + focusDelay?: number; + id?: string; + maxLength?: number; + minLength?: number; + name?: string; + placeholder?: string; + required?: boolean; + style?: CSSProperties; + type?: 'default' | 'date' | 'email' | 'port' | 'time' | 'search'; + value?: string; + onFocus?: (event: FocusEvent) => void; + onChange?: (event: ChangeEvent) => void; + onEnter?: (event: KeyboardEvent) => void; + onBlur?: (event: FocusEvent) => void; +} +declare const TextBox: FunctionComponent; +export { TextBox }; diff --git a/build/lib/components/input/TextBox/index.js b/build/lib/components/input/TextBox/index.js new file mode 100644 index 00000000..5c95cd67 --- /dev/null +++ b/build/lib/components/input/TextBox/index.js @@ -0,0 +1,80 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +exports.TextBox = void 0; +const useAutoFocus_1 = require("../../useAutoFocus"); +const styles_1 = require("../../../styles"); +const react_1 = __importStar(require("react")); +const styles_2 = require("./styles"); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const TextBox = ({ autoFocus = false, className, id, name, maxLength = Number.MAX_SAFE_INTEGER, minLength = 0, value, placeholder, style, type = 'default', disabled = false, required = false, focusDelay = 0, onBlur = () => { + // Intentionally left blank. +}, onChange = () => { + // Intentionally left blank. +}, onEnter = () => { + // Intentionally left blank. +}, onFocus = () => { + // Intentionally left blank. +} }) => { + const classes = useStyles(); + const elementRef = (0, useAutoFocus_1.useAutoFocus)({ isEnabled: autoFocus, delay: focusDelay }); + const handleKeyDown = (0, react_1.useCallback)((event) => { + switch (event.key) { + case 'Enter': + onEnter(event); + break; + default: + break; + } + }, []); + const componentClasses = (0, styles_1.classNames)(classes.TextBox, { + [classes.IsDisabled]: disabled, + [classes.TypeEmail]: type === 'email', + [classes.TypePort]: type === 'port', + [classes.TypeTime]: type === 'time', + [classes.TypeSearch]: type === 'search' + }, className); + let inputType; + switch (type) { + case 'port': + inputType = 'number'; + break; + default: + inputType = type; + } + return (react_1.default.createElement("input", { id: id, ref: elementRef, className: componentClasses, maxLength: maxLength, minLength: minLength, name: name, value: value, onBlur: onBlur, onChange: onChange, onFocus: onFocus, onKeyDown: handleKeyDown, placeholder: placeholder, required: required, style: style, type: inputType, disabled: disabled })); +}; +exports.TextBox = TextBox; +TextBox.displayName = 'TextBox'; diff --git a/build/lib/components/input/TextBox/styles.d.ts b/build/lib/components/input/TextBox/styles.d.ts new file mode 100644 index 00000000..569089ba --- /dev/null +++ b/build/lib/components/input/TextBox/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type TextBoxClassNames = 'TextBox' | 'IsDisabled' | 'TypeEmail' | 'TypePort' | 'TypeTime' | 'TypeSearch'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/input/TextBox/styles.js b/build/lib/components/input/TextBox/styles.js new file mode 100644 index 00000000..086faf50 --- /dev/null +++ b/build/lib/components/input/TextBox/styles.js @@ -0,0 +1,43 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = (theme) => ({ + TextBox: { + padding: '9px 12px', + fontSize: theme.font.size.md, + fontFamily: theme.font.family.default, + width: '100%', + boxSizing: 'border-box', + border: `1px solid`, + borderColor: theme.color.content.border, + borderRadius: '1px', + appearance: 'none', + '&:invalid': { + borderColor: `${theme.color.interaction.error} !important` + }, + '&:focus': { + outline: 'none', + borderColor: theme.color.interaction.focus + }, + '&::placeholder': { + color: theme.color.brand.gray, + fontFamily: theme.font.family.default, + fontSize: 'inherit', + fontWeight: 400, + opacity: 0.5 + } + }, + IsDisabled: { + color: theme.color.brand.gray, + background: theme.color.brand.grayLight + }, + TypeEmail: {}, + TypePort: { + width: '5em' + }, + TypeTime: { + width: '7em' + }, + TypeSearch: {} +}); +exports.styles = styles; diff --git a/build/lib/components/input/Toggle/Documentation.d.ts b/build/lib/components/input/Toggle/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/input/Toggle/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/input/Toggle/Documentation.js b/build/lib/components/input/Toggle/Documentation.js new file mode 100644 index 00000000..31187c58 --- /dev/null +++ b/build/lib/components/input/Toggle/Documentation.js @@ -0,0 +1,106 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../../components/documentation/ComponentPreview"); +const SplitView_1 = require("../../documentation/SplitView"); +const __1 = require("../../.."); +const react_1 = __importStar(require("react")); +const Documentation = () => { + const [selectedValue, setSelectedValue] = (0, react_1.useState)('Value 1'); + const [selectedColor, setSelectedColor] = (0, react_1.useState)('deeppink'); + const handleChange = (newValue) => { + setSelectedValue(newValue); + __1.notifications.show({ type: 'success', text: `onChange(newValue: ${newValue})` }); + }; + const handleColorChange = (newValue) => { + setSelectedColor(newValue); + }; + return (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "Toggle"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Toggle, { values: ['Value 1', 'Value 2'], selectedValue: selectedValue, onChange: handleChange }), + react_1.default.createElement(__1.Text, null, + "Selected value is: ", + selectedValue))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Customizing"), + react_1.default.createElement(__1.Paragraph, null, + "You can provide a custom render function to render custom toggle buttons. The render function will be called for each option and will receive the ", + react_1.default.createElement("code", null, "value"), + ", ", + react_1.default.createElement("code", null, "isSelected"), + " and a function called ", + react_1.default.createElement("code", null, "changeValue"), + " to trigger a value change."), + react_1.default.createElement(SplitView_1.SplitView, null, + react_1.default.createElement(__1.Code, { language: 'jsx' }, ` + + { ({ value, isSelected, changeValue }: RenderToggleOptions): ReactElement => ( +
changeValue(value) } + key={ value } + /> + )} + + `), + react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Toggle, { values: ['deeppink', 'darkgray', 'black'], selectedValue: selectedColor, onChange: handleColorChange }, ({ value, isSelected, changeValue }) => (react_1.default.createElement("div", { style: { + cursor: 'pointer', + margin: 12, + width: 12, + height: 12, + borderRadius: '100%', + background: value, + transform: isSelected ? 'scale(2)' : '' + }, onClick: () => changeValue(value), key: value }))), + react_1.default.createElement(__1.Text, null, + "Selected color is: ", + selectedColor))))); +}; +exports.Documentation = Documentation; diff --git a/build/lib/components/input/Toggle/index.d.ts b/build/lib/components/input/Toggle/index.d.ts new file mode 100644 index 00000000..0d788507 --- /dev/null +++ b/build/lib/components/input/Toggle/index.d.ts @@ -0,0 +1,13 @@ +import { CSSProperties, FunctionComponent, ReactElement } from 'react'; +import { RenderToggleOptions } from './renderDefaultToggle'; +interface ToggleProps { + values: string[]; + selectedValue: string; + children?: ({ value, isSelected, changeValue, classes }: RenderToggleOptions) => ReactElement; + className?: string; + id?: string; + onChange?: (newValue: string) => void; + style?: CSSProperties; +} +declare const Toggle: FunctionComponent; +export { Toggle }; diff --git a/build/lib/components/input/Toggle/index.js b/build/lib/components/input/Toggle/index.js new file mode 100644 index 00000000..96085e6e --- /dev/null +++ b/build/lib/components/input/Toggle/index.js @@ -0,0 +1,58 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Toggle = void 0; +const styles_1 = require("../../../styles"); +const react_1 = __importStar(require("react")); +const renderDefaultToggle_1 = require("./renderDefaultToggle"); +const styles_2 = require("./styles"); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const Toggle = ({ id, className, children = renderDefaultToggle_1.renderDefaultToggle, selectedValue, values, style, onChange }) => { + const classes = useStyles(); + const handleValueChange = (0, react_1.useCallback)((newValue) => { + if (onChange) { + onChange(newValue); + } + }, []); + const componentClasses = (0, styles_1.classNames)(classes.Toggle, className); + return (react_1.default.createElement("div", { id: id, className: componentClasses, style: style }, values.map((value) => children({ + value, + isSelected: selectedValue === value, + changeValue: handleValueChange, + classes + })))); +}; +exports.Toggle = Toggle; +Toggle.displayName = 'Toggle'; diff --git a/build/lib/components/input/Toggle/renderDefaultToggle.d.ts b/build/lib/components/input/Toggle/renderDefaultToggle.d.ts new file mode 100644 index 00000000..5b042994 --- /dev/null +++ b/build/lib/components/input/Toggle/renderDefaultToggle.d.ts @@ -0,0 +1,10 @@ +import { ToggleClassNames } from './styles'; +import { ReactElement } from 'react'; +export interface RenderToggleOptions { + value: string; + isSelected: boolean; + changeValue: (newValue: string) => void; + classes: Record; +} +declare const renderDefaultToggle: ({ value, isSelected, changeValue, classes }: RenderToggleOptions) => ReactElement; +export { renderDefaultToggle }; diff --git a/build/lib/components/input/Toggle/renderDefaultToggle.js b/build/lib/components/input/Toggle/renderDefaultToggle.js new file mode 100644 index 00000000..da70ab53 --- /dev/null +++ b/build/lib/components/input/Toggle/renderDefaultToggle.js @@ -0,0 +1,10 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.renderDefaultToggle = void 0; +const __1 = require("../../.."); +const react_1 = __importDefault(require("react")); +const renderDefaultToggle = ({ value, isSelected, changeValue, classes }) => (react_1.default.createElement(__1.Button, { className: isSelected ? classes.ActiveButton : classes.Button, onClick: () => changeValue(value), key: value }, value)); +exports.renderDefaultToggle = renderDefaultToggle; diff --git a/build/lib/components/input/Toggle/styles.d.ts b/build/lib/components/input/Toggle/styles.d.ts new file mode 100644 index 00000000..1955e3c7 --- /dev/null +++ b/build/lib/components/input/Toggle/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type ToggleClassNames = 'Toggle' | 'ActiveButton' | 'Button'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/input/Toggle/styles.js b/build/lib/components/input/Toggle/styles.js new file mode 100644 index 00000000..b14b03a3 --- /dev/null +++ b/build/lib/components/input/Toggle/styles.js @@ -0,0 +1,32 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = (theme) => ({ + Toggle: { + display: 'flex' + }, + ActiveButton: { + marginRight: 0, + background: theme.color.brand.highlight, + '&:first-child': { + 'border-top-right-radius': 0, + 'border-bottom-right-radius': 0 + }, + '&:last-child': { + 'border-top-left-radius': 0, + 'border-bottom-left-radius': 0 + } + }, + Button: { + marginRight: 0, + '&:first-child': { + 'border-top-right-radius': 0, + 'border-bottom-right-radius': 0 + }, + '&:last-child': { + 'border-top-left-radius': 0, + 'border-bottom-left-radius': 0 + } + } +}); +exports.styles = styles; diff --git a/build/lib/components/layout/Container/Documentation.d.ts b/build/lib/components/layout/Container/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/layout/Container/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/layout/Container/Documentation.js b/build/lib/components/layout/Container/Documentation.js new file mode 100644 index 00000000..3e92375c --- /dev/null +++ b/build/lib/components/layout/Container/Documentation.js @@ -0,0 +1,100 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../../components/documentation/ComponentPreview"); +const __1 = require("../../.."); +const react_1 = __importStar(require("react")); +const Documentation = () => { + const [horizontal, setHorizontal] = (0, react_1.useState)('center'); + const [vertical, setVertical] = (0, react_1.useState)('center'); + return (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "Container"), + react_1.default.createElement(__1.Paragraph, null, + "A ", + react_1.default.createElement("code", null, "Container"), + " can be used to position a single child component on a horizontal and vertical axis. The most common use case this component is to center a child both horizontally and vertically which is the default option."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.Container, { style: { height: '100%' } }, + react_1.default.createElement("div", { style: { background: 'deeppink' } }, "Centered child."))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Setting vertical and horizontal"), + react_1.default.createElement(__1.Paragraph, null, + "The position of the child can be controlled using ", + react_1.default.createElement("code", null, "vertical"), + " and ", + react_1.default.createElement("code", null, "horizontal"), + "."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.ControlGroup, null, + react_1.default.createElement(__1.ControlGroupItem, { label: 'vertical' }, + react_1.default.createElement(__1.Dropdown, { options: [ + { value: 'top', label: 'top' }, + { value: 'center', label: 'center' }, + { value: 'bottom', label: 'bottom' }, + { value: 'stretch', label: 'stretch' } + ], value: vertical, onChange: (value) => setVertical(value) })), + react_1.default.createElement(__1.ControlGroupItem, { label: 'horizontal' }, + react_1.default.createElement(__1.Dropdown, { options: [ + { value: 'left', label: 'left' }, + { value: 'center', label: 'center' }, + { value: 'right', label: 'right' }, + { value: 'stretch', label: 'stretch' } + ], value: horizontal, onChange: (value) => setHorizontal(value) }))), + react_1.default.createElement(__1.Container, { background: 'dark', vertical: vertical, horizontal: horizontal, style: { height: 100 } }, + react_1.default.createElement("div", { style: { background: 'deeppink' } }, + "I'm a child with vertical set to ", + vertical, + " and horizontal set to ", + horizontal, + ".")))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Setting the background color"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Container, { background: 'dark', style: { height: 100 } }, + react_1.default.createElement("div", null, "Child on dark background.")), + react_1.default.createElement(__1.Container, { background: 'light', style: { height: 100 } }, + react_1.default.createElement("div", null, "Child on light background.")), + react_1.default.createElement(__1.Container, { background: 'none', style: { height: 100 } }, + react_1.default.createElement("div", null, "Child on a transparent background.")))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Making a Container scrollable"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.Container, { background: 'dark', style: { height: 200 }, isScrollable: true }, + react_1.default.createElement("div", { style: { background: 'deeppink', width: 400 } }, + "I am very large so my parent is scrollable.", + react_1.default.createElement("div", { style: { height: 400 } }), + "This is the end."))))); +}; +exports.Documentation = Documentation; diff --git a/build/lib/components/layout/Container/index.d.ts b/build/lib/components/layout/Container/index.d.ts new file mode 100644 index 00000000..5ff8638a --- /dev/null +++ b/build/lib/components/layout/Container/index.d.ts @@ -0,0 +1,14 @@ +import { Background } from '../../Background'; +import { CSSProperties, FunctionComponent, ReactElement } from 'react'; +interface ContainerProps { + className?: string; + children?: ReactElement | string | null; + background?: Background; + id?: string; + horizontal?: 'left' | 'center' | 'right' | 'stretch'; + isScrollable?: boolean; + vertical?: 'top' | 'center' | 'bottom' | 'stretch'; + style?: CSSProperties; +} +declare const Container: FunctionComponent; +export { Container }; diff --git a/build/lib/components/layout/Container/index.js b/build/lib/components/layout/Container/index.js new file mode 100644 index 00000000..d9ad76b1 --- /dev/null +++ b/build/lib/components/layout/Container/index.js @@ -0,0 +1,31 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Container = void 0; +const styles_1 = require("../../../styles"); +const styles_2 = require("./styles"); +const react_1 = __importDefault(require("react")); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const Container = ({ className, background = 'none', children, id, horizontal = 'center', isScrollable = false, vertical = 'center', style }) => { + const classes = useStyles(); + const componentClassNames = (0, styles_1.classNames)(classes.Container, { + [classes.BackgroundDark]: background === 'dark', + [classes.BackgroundLight]: background === 'light', + [classes.BackgroundNone]: background === 'none', + [classes.HorizontalLeft]: horizontal === 'left', + [classes.HorizontalCenter]: horizontal === 'center', + [classes.HorizontalRight]: horizontal === 'right', + [classes.HorizontalStretch]: horizontal === 'stretch', + [classes.IsScrollable]: isScrollable, + [classes.IsNotScrollable]: !isScrollable, + [classes.VerticalCenter]: vertical === 'center', + [classes.VerticalStretch]: vertical === 'stretch', + [classes.VerticalTop]: vertical === 'top', + [classes.VerticalBottom]: vertical === 'bottom' + }, className); + return (react_1.default.createElement("div", { id: id, className: componentClassNames, style: style }, children)); +}; +exports.Container = Container; +Container.displayName = 'Container'; diff --git a/build/lib/components/layout/Container/styles.d.ts b/build/lib/components/layout/Container/styles.d.ts new file mode 100644 index 00000000..714f5b4f --- /dev/null +++ b/build/lib/components/layout/Container/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type ContainerClassNames = 'Container' | 'BackgroundDark' | 'BackgroundLight' | 'BackgroundNone' | 'HorizontalLeft' | 'HorizontalCenter' | 'HorizontalRight' | 'HorizontalStretch' | 'IsScrollable' | 'IsNotScrollable' | 'VerticalTop' | 'VerticalCenter' | 'VerticalBottom' | 'VerticalStretch'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/layout/Container/styles.js b/build/lib/components/layout/Container/styles.js new file mode 100644 index 00000000..b2566623 --- /dev/null +++ b/build/lib/components/layout/Container/styles.js @@ -0,0 +1,85 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = (theme) => ({ + Container: { + boxSizing: 'border-box', + position: 'relative', + fontFamily: theme.font.family.default, + fontSize: theme.font.size.md, + display: 'flex', + flexDirection: 'column', + width: '100%', + height: '100%', + '& > *': {} + }, + BackgroundDark: { + background: theme.color.brand.grayDark, + color: theme.color.brand.white + }, + BackgroundLight: { + background: theme.color.brand.grayLight + }, + BackgroundNone: { + background: 'none' + }, + // For all the horizontal and vertical positioning options we're not + // using alignItems and justifyContent but rather margins + // in combination with the 'display: flex' of the parent. + // This will make sure the container is scrollable. + // For a detailed explanation see + // https://stackoverflow.com/questions/33454533/cant-scroll-to-top-of-flex- + // item-that-is-overflowing-container?answertab=active#tab-top + HorizontalLeft: { + // We're not using alignItems: 'flex-start' here but an auto margin, see comment above. + '& > *': { + marginRight: 'auto' + } + }, + HorizontalCenter: { + '& > *': { + marginLeft: 'auto', + marginRight: 'auto' + } + }, + HorizontalRight: { + // We're not using alignItems: 'flex-end' here but an auto margin, see comment above. + '& > *': { + marginLeft: 'auto' + } + }, + HorizontalStretch: { + alignItems: 'stretch' + }, + VerticalTop: { + justifyContent: 'flex-start' + }, + VerticalCenter: { + // We're not using justifyContent: 'center' here but auto margin, see comment above. + '& > *': { + marginTop: 'auto', + marginBottom: 'auto' + } + }, + VerticalBottom: { + // We're not using justifyContent: 'flex-end' here but an auto margin. + '& > *': { + marginTop: 'auto' + } + }, + VerticalStretch: { + alignItems: 'stretch', + '& > *': { + flexGrow: 1, + flexShrink: 1 + } + }, + IsScrollable: { + overflow: 'auto', + '-webkit-overflow-scrolling': 'touch' + }, + IsNotScrollable: { + overflow: 'hidden' + } +}); +exports.styles = styles; diff --git a/build/lib/components/layout/Footer/Documentation.d.ts b/build/lib/components/layout/Footer/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/layout/Footer/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/layout/Footer/Documentation.js b/build/lib/components/layout/Footer/Documentation.js new file mode 100644 index 00000000..2d3b2a5f --- /dev/null +++ b/build/lib/components/layout/Footer/Documentation.js @@ -0,0 +1,95 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../../components/documentation/ComponentPreview"); +const Property_1 = require("../../documentation/Property"); +const __1 = require("../../.."); +const react_1 = __importStar(require("react")); +const Documentation = () => (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "Footer"), + react_1.default.createElement(__1.Paragraph, null, + "A ", + react_1.default.createElement("code", null, "Footer"), + " can be used to present important legal information at the bottom of a page layout."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.Footer, { yearOfCreation: new Date().getFullYear() })), + react_1.default.createElement(__1.Headline, { level: '2' }, "Specifying the year of creation"), + react_1.default.createElement(__1.Paragraph, null, + "You need to set the ", + react_1.default.createElement("em", null, "yearOfCreation"), + " property in order to define the copyright timespan that will be generated automatically."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(react_1.Fragment, null, + react_1.default.createElement(__1.Footer, { yearOfCreation: 2016 }), + react_1.default.createElement(__1.Footer, { yearOfCreation: new Date().getFullYear() }))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Adding an imprint link"), + react_1.default.createElement(__1.Paragraph, null, + "Optionally you may provide a ", + react_1.default.createElement("em", null, "linkToImprint"), + ". This will add a link to your imprint to the legal section of the footer."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.Footer, { linkToImprint: '/en-us/imprint', yearOfCreation: new Date().getFullYear() })), + react_1.default.createElement(__1.Headline, { level: '2' }, "Adding a privacy policy link"), + react_1.default.createElement(__1.Paragraph, null, + "Optionally you may provide a ", + react_1.default.createElement("em", null, "linkToPrivacyPolicy"), + ". This will add a link to your privacy policy to the legal section of the footer."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.Footer, { linkToPrivacyPolicy: '/en-us/privacy-policy', yearOfCreation: new Date().getFullYear() })), + react_1.default.createElement(__1.Headline, { level: '2' }, "Setting the font size"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(react_1.Fragment, null, + react_1.default.createElement(Property_1.Property, { name: 'fontSize', value: 'sm' }), + react_1.default.createElement(__1.Footer, { fontSize: 'sm', borderTop: 'none', yearOfCreation: new Date().getFullYear() }), + react_1.default.createElement("hr", null), + react_1.default.createElement(Property_1.Property, { name: 'fontSize', value: 'md' }), + react_1.default.createElement(__1.Footer, { fontSize: 'md', borderTop: 'none', yearOfCreation: new Date().getFullYear() }))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Setting the color on dark background"), + react_1.default.createElement(__1.Paragraph, null, + "Switch the ", + react_1.default.createElement("code", null, "color"), + " property to ", + react_1.default.createElement("code", null, "light"), + " if you would like to place it on a ", + react_1.default.createElement("code", null, "dark"), + " background. Additionally it can make sense to set the ", + react_1.default.createElement("code", null, "borderTop"), + " property to ", + react_1.default.createElement("code", null, "none"), + "."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, { background: 'dark' }, + react_1.default.createElement(__1.Footer, { color: 'light', yearOfCreation: new Date().getFullYear(), borderTop: 'none' })))); +exports.Documentation = Documentation; diff --git a/build/lib/components/layout/Footer/index.d.ts b/build/lib/components/layout/Footer/index.d.ts new file mode 100644 index 00000000..0257c77f --- /dev/null +++ b/build/lib/components/layout/Footer/index.d.ts @@ -0,0 +1,15 @@ +import { CSSProperties, FunctionComponent } from 'react'; +interface FooterProps { + borderTop?: 'none' | 'dark'; + className?: string; + color?: 'light' | 'dark'; + fontSize?: 'sm' | 'md'; + id?: string; + linkToGithub?: string; + linkToImprint?: string; + linkToPrivacyPolicy?: string; + yearOfCreation: number; + style?: CSSProperties; +} +declare const Footer: FunctionComponent; +export { Footer }; diff --git a/build/lib/components/layout/Footer/index.js b/build/lib/components/layout/Footer/index.js new file mode 100644 index 00000000..86e396fa --- /dev/null +++ b/build/lib/components/layout/Footer/index.js @@ -0,0 +1,54 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Footer = void 0; +const styles_1 = require("../../../styles"); +const styles_2 = require("./styles"); +const __1 = require("../../.."); +const react_1 = __importDefault(require("react")); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const Footer = ({ borderTop = 'dark', className, color = 'dark', fontSize = 'md', id, linkToGithub, linkToImprint, linkToPrivacyPolicy, yearOfCreation, style }) => { + const classes = useStyles(); + const componentClassNames = (0, styles_1.classNames)(classes.Footer, { + [classes.BorderTopNone]: borderTop === 'none', + [classes.ColorLight]: color === 'light', + [classes.ColorDark]: color === 'dark', + [classes.BorderTopDark]: borderTop === 'dark', + [classes.FontSizeSm]: fontSize === 'sm', + [classes.FontSizeMd]: fontSize === 'md' + }, className); + const currentYear = new Date().getFullYear(); + const copyrightTimespan = currentYear !== yearOfCreation ? `${yearOfCreation}-${currentYear}` : `${currentYear}`; + return (react_1.default.createElement("footer", { id: id, className: componentClassNames, style: style }, + react_1.default.createElement(__1.Grid, { columns: { xs: 1, sm: 2 }, columnGap: { xs: 0, sm: 4, md: 10 }, rowGap: { xs: 1, sm: 2 } }, + react_1.default.createElement(__1.GridItem, null, + react_1.default.createElement(__1.Space, { between: { xs: 1, sm: 2 } }, + linkToGithub ? + (react_1.default.createElement("div", { className: classes.Contribute }, + "Found a bug? Missing something? Want to contribute? Just ", + react_1.default.createElement(__1.Link, { href: linkToGithub }, "edit this page on Github"), + ".")) : + null, + react_1.default.createElement("div", { className: classes.MadeBy }, + react_1.default.createElement(__1.MadeBy, { size: 'md', color: color })))), + react_1.default.createElement(__1.GridItem, null, + react_1.default.createElement(__1.Space, { between: { xs: 1 } }, + react_1.default.createElement("div", { className: classes.Copyright }, + "\u00A9 Copyright ", + copyrightTimespan, + " the native web GmbH. All rights reserved."), + react_1.default.createElement("div", { className: classes.Legal }, + linkToImprint ? + react_1.default.createElement(__1.Link, { href: linkToImprint }, "Imprint") : + null, + linkToImprint && linkToPrivacyPolicy ? + react_1.default.createElement("span", null, " & ") : + null, + linkToPrivacyPolicy ? + react_1.default.createElement(__1.Link, { href: linkToPrivacyPolicy }, "Privacy Policy") : + null)))))); +}; +exports.Footer = Footer; +Footer.displayName = 'Footer'; diff --git a/build/lib/components/layout/Footer/styles.d.ts b/build/lib/components/layout/Footer/styles.d.ts new file mode 100644 index 00000000..f1266f5a --- /dev/null +++ b/build/lib/components/layout/Footer/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type FooterClassNames = 'Footer' | 'BorderTopNone' | 'BorderTopDark' | 'ColorLight' | 'ColorDark' | 'FontSizeSm' | 'FontSizeMd' | 'MadeBy' | 'Copyright' | 'Legal' | 'Contribute'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/layout/Footer/styles.js b/build/lib/components/layout/Footer/styles.js new file mode 100644 index 00000000..59e2a570 --- /dev/null +++ b/build/lib/components/layout/Footer/styles.js @@ -0,0 +1,54 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = (theme) => ({ + Footer: { + fontWeight: 300, + '& $MadeBy > *': { + textAlign: 'left' + } + }, + ColorLight: { + color: theme.color.brand.white + }, + ColorDark: { + color: theme.color.brand.gray + }, + BorderTopNone: {}, + BorderTopDark: { + borderTop: `1px solid ${theme.color.content.border}` + }, + FontSizeSm: { + fontSize: theme.font.size.sm + }, + FontSizeMd: { + fontSize: theme.font.size.md + }, + Contribute: {}, + MadeBy: {}, + Copyright: {}, + Legal: {}, + [theme.breakpoints.down('sm')]: { + Footer: { + marginTop: theme.space(4) + }, + BorderTopDark: { + paddingTop: theme.space(2) + } + }, + [theme.breakpoints.up('sm')]: { + Footer: { + marginTop: theme.space(6) + }, + BorderTopDark: { + paddingTop: theme.space(4) + }, + Copyright: { + textAlign: 'right' + }, + Legal: { + textAlign: 'right' + } + } +}); +exports.styles = styles; diff --git a/build/lib/components/layout/Grid/Documentation.d.ts b/build/lib/components/layout/Grid/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/layout/Grid/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/layout/Grid/Documentation.js b/build/lib/components/layout/Grid/Documentation.js new file mode 100644 index 00000000..7537d360 --- /dev/null +++ b/build/lib/components/layout/Grid/Documentation.js @@ -0,0 +1,131 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../../components/documentation/ComponentPreview"); +const __1 = require("../../.."); +const react_1 = __importDefault(require("react")); +const Documentation = () => (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "Grid"), + react_1.default.createElement(__1.Paragraph, null, + "The ", + react_1.default.createElement("code", null, "Grid"), + " component uses the CSS grid layout to create flexible grids. By default it creates a 12-column layout. Please note that for ", + react_1.default.createElement("code", null, "xs"), + " screens a 1-column-layout will be applied. You can adjust this behaviour by using the ", + react_1.default.createElement("code", null, + react_1.default.createElement(__1.Link, { href: '#column-count' }, "columns")), + " property."), + react_1.default.createElement(__1.Paragraph, null, "Each child will automatically be placed inside the next column. Once all the 12 columns have been filled, the next item will be placed inside a new row but within the first column."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.Grid, null, + react_1.default.createElement("div", null, "Column 1"), + react_1.default.createElement("div", null, "Column 2"), + react_1.default.createElement("div", null, "Column 3"), + react_1.default.createElement("div", null, "Column 4"), + react_1.default.createElement("div", null, "Column 5"), + react_1.default.createElement("div", null, "Column 6"), + react_1.default.createElement("div", null, "Column 7"), + react_1.default.createElement("div", null, "Column 8"), + react_1.default.createElement("div", null, "Column 9"), + react_1.default.createElement("div", null, "Column 10"), + react_1.default.createElement("div", null, "Column 11"), + react_1.default.createElement("div", null, "Column 12"), + react_1.default.createElement("div", null, "Column 1"))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Column count"), + react_1.default.createElement(__1.Paragraph, null, + "If you want to adjust the number of columns, use the ", + react_1.default.createElement("code", null, "columns"), + " property."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.Grid, { columns: '3' }, + react_1.default.createElement("div", null, "Column 1"), + react_1.default.createElement("div", null, "Column 2"), + react_1.default.createElement("div", null, "Column 3"), + react_1.default.createElement("div", null, "Column 1"))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Responsive column count"), + react_1.default.createElement(__1.Paragraph, null, + "It is possible to provide multiple ", + react_1.default.createElement("code", null, "columns"), + " values depending on the size of the viewport:"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.Grid, { columns: { xs: 1, sm: 2, md: 3, lg: 4 } }, + react_1.default.createElement(__1.GridItem, null, "First Column"), + react_1.default.createElement(__1.GridItem, null, "Second Column"), + react_1.default.createElement(__1.GridItem, null, "Third Column"), + react_1.default.createElement(__1.GridItem, null, "Fourth Column"))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Colum and row gap"), + react_1.default.createElement(__1.Paragraph, null, + "The ", + react_1.default.createElement("code", null, "columnGap"), + " and the ", + react_1.default.createElement("code", null, "rowGap"), + " property can be used to control horizontal and vertical gaps between items of the grid:"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Grid, { columns: '3', columnGap: '1', rowGap: '1' }, + react_1.default.createElement(__1.GridItem, { style: { background: 'gray' } }, "Small gaps"), + react_1.default.createElement(__1.GridItem, { style: { background: 'gray' } }, "Small gaps"), + react_1.default.createElement(__1.GridItem, { style: { background: 'gray' } }, "Small gaps"), + react_1.default.createElement(__1.GridItem, { style: { background: 'gray' } }, "Small gaps"), + react_1.default.createElement(__1.GridItem, { style: { background: 'gray' } }, "Small gaps"), + react_1.default.createElement(__1.GridItem, { style: { background: 'gray' } }, "Small gaps")), + react_1.default.createElement(__1.Grid, { columns: '3', columnGap: '6', rowGap: '6' }, + react_1.default.createElement(__1.GridItem, { style: { background: 'deeppink' } }, "Bigger gaps"), + react_1.default.createElement(__1.GridItem, { style: { background: 'deeppink' } }, "Bigger gaps"), + react_1.default.createElement(__1.GridItem, { style: { background: 'deeppink' } }, "Bigger gaps"), + react_1.default.createElement(__1.GridItem, { style: { background: 'deeppink' } }, "Bigger gaps"), + react_1.default.createElement(__1.GridItem, { style: { background: 'deeppink' } }, "Bigger gaps"), + react_1.default.createElement(__1.GridItem, { style: { background: 'deeppink' } }, "Bigger gaps")))), + react_1.default.createElement(__1.Headline, null, "GridItem"), + react_1.default.createElement(__1.Paragraph, null, + "If you need more control when positioning elements inside a ", + react_1.default.createElement("code", null, "Grid"), + " use the ", + react_1.default.createElement("code", null, "GridItem"), + " component."), + react_1.default.createElement(__1.Headline, { level: '2' }, "columnSpan"), + react_1.default.createElement(__1.Paragraph, null, + "To span an element across multiple columns, set the ", + react_1.default.createElement("code", null, "columnSpan"), + " property:"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.Grid, null, + react_1.default.createElement(__1.GridItem, { columnSpan: '6' }, "Column from gap 1-6"), + react_1.default.createElement(__1.GridItem, { columnSpan: '6' }, "Column from gap 7-12"), + react_1.default.createElement(__1.GridItem, { columnSpan: '12' }, "Column from gap 1-12"))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Responsive columnSpan"), + react_1.default.createElement(__1.Paragraph, null, + "It is possible to provide multiple ", + react_1.default.createElement("code", null, "columSpan"), + " values depending on the size of the viewport:"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.Grid, null, + react_1.default.createElement(__1.GridItem, { columnSpan: { sm: 12, md: 6, lg: 4 } }, "Spans 12 columns on small, 6 on a medium and 4 columns on large devices\u2026"), + react_1.default.createElement(__1.GridItem, { columnSpan: { sm: 12, md: 6, lg: 4 } }, "Spans 12 columns on small, 6 on a medium and 4 columns on large devices\u2026"), + react_1.default.createElement(__1.GridItem, { columnSpan: { sm: 12, md: 6, lg: 4 } }, "Spans 12 columns on small, 6 on a medium and 4 columns on large devices\u2026"))), + react_1.default.createElement(__1.Headline, { level: '2' }, "columnStart and columnEnd"), + react_1.default.createElement(__1.Paragraph, null, + "Instead of using ", + react_1.default.createElement("code", null, "columnSpan"), + " you can set the ", + react_1.default.createElement("code", null, "columnStart"), + " property to specifiy in which column an element should be start in. Use the `columnEnd` property to set a specific column to end with."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.Grid, null, + react_1.default.createElement(__1.GridItem, { columnStart: '1', columnEnd: '6' }, "Column from gap 1-6"), + react_1.default.createElement(__1.GridItem, { columnStart: '7', columnEnd: '12' }, "Column from gap 7-12"), + react_1.default.createElement(__1.GridItem, { columnStart: '1', columnEnd: '12' }, "Column from gap 1-12"), + react_1.default.createElement(__1.GridItem, { columnStart: '10', columnEnd: '12' }, "Fills only the last three columns"))), + react_1.default.createElement(__1.Paragraph, null, + "Again, it is possible to provide multiple ", + react_1.default.createElement("code", null, "columnStart"), + " and ", + react_1.default.createElement("code", null, "columnEnd"), + " values depending on the size of the viewport:"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.Grid, null, + react_1.default.createElement(__1.GridItem, { columnStart: { sm: 1, lg: 4 }, columnEnd: { sm: 12, lg: 10 } }, "Spans across all 12 columns on small devices and from colum 4-10 on large devices."))))); +exports.Documentation = Documentation; diff --git a/build/lib/components/layout/Grid/index.d.ts b/build/lib/components/layout/Grid/index.d.ts new file mode 100644 index 00000000..911a90b7 --- /dev/null +++ b/build/lib/components/layout/Grid/index.d.ts @@ -0,0 +1,12 @@ +import { ResponsiveSpaceProp } from '../../../types/ResponsiveSpaceProp'; +import { FunctionComponent } from 'react'; +interface GridProps { + id?: string; + className?: string; + columns?: ResponsiveSpaceProp; + columnGap?: ResponsiveSpaceProp; + rowGap?: ResponsiveSpaceProp; + component?: string; +} +declare const Grid: FunctionComponent; +export { Grid }; diff --git a/build/lib/components/layout/Grid/index.js b/build/lib/components/layout/Grid/index.js new file mode 100644 index 00000000..5fd4694b --- /dev/null +++ b/build/lib/components/layout/Grid/index.js @@ -0,0 +1,28 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Grid = void 0; +const utils_1 = require("../../../styles/utils"); +const spaceDependentProperties_1 = require("./spaceDependentProperties"); +const styles_1 = require("../../../styles"); +const styles_2 = require("./styles"); +const react_1 = __importDefault(require("react")); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const Grid = ({ className, columns = { xs: 0, sm: 12 }, columnGap = 2, component = 'div', rowGap = 2, children, id }) => { + const classes = useStyles(); + const spaceDependentClassNames = (0, utils_1.getSpaceDependentClassNamesFromProps)({ + props: { + columns, + columnGap, + rowGap + }, + definitions: spaceDependentProperties_1.spaceDependentProperties, + classes + }); + const componentClasses = (0, styles_1.classNames)(classes.Grid, spaceDependentClassNames, className); + return (react_1.default.createElement(component, { className: componentClasses, id }, children)); +}; +exports.Grid = Grid; +Grid.displayName = 'Grid'; diff --git a/build/lib/components/layout/Grid/spaceDependentProperties.d.ts b/build/lib/components/layout/Grid/spaceDependentProperties.d.ts new file mode 100644 index 00000000..f1bef51d --- /dev/null +++ b/build/lib/components/layout/Grid/spaceDependentProperties.d.ts @@ -0,0 +1,3 @@ +import { ClassDefinitions } from '../../../styles/utils'; +declare const spaceDependentProperties: ClassDefinitions; +export { spaceDependentProperties }; diff --git a/build/lib/components/layout/Grid/spaceDependentProperties.js b/build/lib/components/layout/Grid/spaceDependentProperties.js new file mode 100644 index 00000000..4c1cdcde --- /dev/null +++ b/build/lib/components/layout/Grid/spaceDependentProperties.js @@ -0,0 +1,25 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.spaceDependentProperties = void 0; +const spaceDependentProperties = { + columns({ spaceFactor }) { + if (spaceFactor === 0) { + return { + gridTemplateColumns: '1fr 1fr', + '& > *': { + gridColumn: '1 / -1' + } + }; + } + return { + gridTemplateColumns: `repeat(${spaceFactor}, [col] minmax(0, 1fr))` + }; + }, + columnGap: ({ spaceFactor, theme }) => ({ + gridColumnGap: `${theme.space(Number(spaceFactor))}px` + }), + rowGap: ({ spaceFactor, theme }) => ({ + gridRowGap: `${theme.space(Number(spaceFactor))}px` + }) +}; +exports.spaceDependentProperties = spaceDependentProperties; diff --git a/build/lib/components/layout/Grid/styles.d.ts b/build/lib/components/layout/Grid/styles.d.ts new file mode 100644 index 00000000..83b027ce --- /dev/null +++ b/build/lib/components/layout/Grid/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type GridDefaultClassNames = 'Grid'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/layout/Grid/styles.js b/build/lib/components/layout/Grid/styles.js new file mode 100644 index 00000000..d81cf20e --- /dev/null +++ b/build/lib/components/layout/Grid/styles.js @@ -0,0 +1,55 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const spaceDependentProperties_1 = require("./spaceDependentProperties"); +const utils_1 = require("../../../styles/utils"); +const styles = (theme) => ({ + Grid: { + width: '100%', + display: 'grid' + }, + ...(0, utils_1.createSpaceDependentClasses)({ + theme, + definitions: spaceDependentProperties_1.spaceDependentProperties + }), + ...(0, utils_1.createDefaultSpaceDependantClasses)({ + theme, + definitions: spaceDependentProperties_1.spaceDependentProperties + }), + [theme.breakpoints.only('xs')]: { + ...(0, utils_1.createSpaceDependentClasses)({ + theme, + definitions: spaceDependentProperties_1.spaceDependentProperties, + deviceSize: 'xs' + }) + }, + [theme.breakpoints.up('sm')]: { + ...(0, utils_1.createSpaceDependentClasses)({ + theme, + definitions: spaceDependentProperties_1.spaceDependentProperties, + deviceSize: 'sm' + }) + }, + [theme.breakpoints.up('md')]: { + ...(0, utils_1.createSpaceDependentClasses)({ + theme, + definitions: spaceDependentProperties_1.spaceDependentProperties, + deviceSize: 'md' + }) + }, + [theme.breakpoints.up('lg')]: { + ...(0, utils_1.createSpaceDependentClasses)({ + theme, + definitions: spaceDependentProperties_1.spaceDependentProperties, + deviceSize: 'lg' + }) + }, + [theme.breakpoints.up('xl')]: { + ...(0, utils_1.createSpaceDependentClasses)({ + theme, + definitions: spaceDependentProperties_1.spaceDependentProperties, + deviceSize: 'xl' + }) + } +}); +exports.styles = styles; diff --git a/build/lib/components/layout/GridItem/index.d.ts b/build/lib/components/layout/GridItem/index.d.ts new file mode 100644 index 00000000..480bc2de --- /dev/null +++ b/build/lib/components/layout/GridItem/index.d.ts @@ -0,0 +1,13 @@ +import { ResponsiveSpaceProp } from '../../../types/ResponsiveSpaceProp'; +import { CSSProperties, FunctionComponent } from 'react'; +interface GridItemProps { + id?: string; + className?: string; + columnStart?: ResponsiveSpaceProp; + columnSpan?: ResponsiveSpaceProp; + columnEnd?: ResponsiveSpaceProp; + component?: string; + style?: CSSProperties; +} +declare const GridItem: FunctionComponent; +export { GridItem }; diff --git a/build/lib/components/layout/GridItem/index.js b/build/lib/components/layout/GridItem/index.js new file mode 100644 index 00000000..1bdc49d5 --- /dev/null +++ b/build/lib/components/layout/GridItem/index.js @@ -0,0 +1,24 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.GridItem = void 0; +const utils_1 = require("../../../styles/utils"); +const spaceDependentProperties_1 = require("./spaceDependentProperties"); +const styles_1 = require("./styles"); +const styles_2 = require("../../../styles"); +const react_1 = __importDefault(require("react")); +const useStyles = (0, styles_2.createUseStyles)(styles_1.styles); +const GridItem = ({ component = 'div', className, children, id, style, ...props }) => { + const classes = useStyles(); + const spaceDependentClassNames = (0, utils_1.getSpaceDependentClassNamesFromProps)({ + props: props, + classes, + definitions: spaceDependentProperties_1.spaceDependentProperties + }); + const componentClasses = (0, styles_2.classNames)(classes.GridItem, spaceDependentClassNames, className); + return react_1.default.createElement(component, { className: componentClasses, style, id }, children); +}; +exports.GridItem = GridItem; +GridItem.displayName = 'GridItem'; diff --git a/build/lib/components/layout/GridItem/spaceDependentProperties.d.ts b/build/lib/components/layout/GridItem/spaceDependentProperties.d.ts new file mode 100644 index 00000000..f1bef51d --- /dev/null +++ b/build/lib/components/layout/GridItem/spaceDependentProperties.d.ts @@ -0,0 +1,3 @@ +import { ClassDefinitions } from '../../../styles/utils'; +declare const spaceDependentProperties: ClassDefinitions; +export { spaceDependentProperties }; diff --git a/build/lib/components/layout/GridItem/spaceDependentProperties.js b/build/lib/components/layout/GridItem/spaceDependentProperties.js new file mode 100644 index 00000000..2e7447f3 --- /dev/null +++ b/build/lib/components/layout/GridItem/spaceDependentProperties.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.spaceDependentProperties = void 0; +const spaceDependentProperties = { + columnStart: ({ spaceFactor }) => ({ + gridColumnStart: String(spaceFactor) + }), + columnEnd: ({ spaceFactor }) => ({ + gridColumnEnd: String(Number(spaceFactor) + 1) + }), + columnSpan: ({ spaceFactor }) => ({ + gridColumnStart: `span ${spaceFactor}` + }) +}; +exports.spaceDependentProperties = spaceDependentProperties; diff --git a/build/lib/components/layout/GridItem/styles.d.ts b/build/lib/components/layout/GridItem/styles.d.ts new file mode 100644 index 00000000..371da1bd --- /dev/null +++ b/build/lib/components/layout/GridItem/styles.d.ts @@ -0,0 +1,3 @@ +import { ComponentClassNames, Theme } from '../../..'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/layout/GridItem/styles.js b/build/lib/components/layout/GridItem/styles.js new file mode 100644 index 00000000..0b298999 --- /dev/null +++ b/build/lib/components/layout/GridItem/styles.js @@ -0,0 +1,28 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const spaceDependentProperties_1 = require("./spaceDependentProperties"); +const utils_1 = require("../../../styles/utils"); +const styles = (theme) => ({ + GridItem: { + width: '100%' + }, + ...(0, utils_1.createSpaceDependentClasses)({ theme, definitions: spaceDependentProperties_1.spaceDependentProperties }), + ...(0, utils_1.createDefaultSpaceDependantClasses)({ theme, definitions: spaceDependentProperties_1.spaceDependentProperties }), + [theme.breakpoints.up('xs')]: { + ...(0, utils_1.createSpaceDependentClasses)({ deviceSize: 'xs', theme, definitions: spaceDependentProperties_1.spaceDependentProperties }) + }, + [theme.breakpoints.up('sm')]: { + ...(0, utils_1.createSpaceDependentClasses)({ deviceSize: 'sm', theme, definitions: spaceDependentProperties_1.spaceDependentProperties }) + }, + [theme.breakpoints.up('md')]: { + ...(0, utils_1.createSpaceDependentClasses)({ deviceSize: 'md', theme, definitions: spaceDependentProperties_1.spaceDependentProperties }) + }, + [theme.breakpoints.up('lg')]: { + ...(0, utils_1.createSpaceDependentClasses)({ deviceSize: 'lg', theme, definitions: spaceDependentProperties_1.spaceDependentProperties }) + }, + [theme.breakpoints.up('xl')]: { + ...(0, utils_1.createSpaceDependentClasses)({ deviceSize: 'xl', theme, definitions: spaceDependentProperties_1.spaceDependentProperties }) + } +}); +exports.styles = styles; diff --git a/build/lib/components/layout/HorizontalBar/Documentation.d.ts b/build/lib/components/layout/HorizontalBar/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/layout/HorizontalBar/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/layout/HorizontalBar/Documentation.js b/build/lib/components/layout/HorizontalBar/Documentation.js new file mode 100644 index 00000000..3b5e1278 --- /dev/null +++ b/build/lib/components/layout/HorizontalBar/Documentation.js @@ -0,0 +1,127 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../../components/documentation/ComponentPreview"); +const Property_1 = require("../../documentation/Property"); +const __1 = require("../../.."); +const react_1 = __importStar(require("react")); +const Documentation = () => (react_1.default.createElement(react_1.Fragment, null, + react_1.default.createElement(__1.Headline, null, "HorizontalBar"), + react_1.default.createElement(__1.Paragraph, null, + "The ", + react_1.default.createElement("code", null, "HorizontalBar"), + " can be used for building all kinds of bars, e.g. a header or footer element."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, { previewPadding: false }, + react_1.default.createElement(__1.HorizontalBar, null, "This is a bar")), + react_1.default.createElement(__1.Headline, { level: '2' }, "Setting the borders"), + react_1.default.createElement(__1.Paragraph, null, + "By default, a ", + react_1.default.createElement("code", null, "HorizontalBar"), + " is visually separated by a lower border. Use the property ", + react_1.default.createElement("code", null, "borderBottom"), + " and ", + react_1.default.createElement("code", null, "borderTop"), + " to adjust this behaviour."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(react_1.Fragment, null, + react_1.default.createElement(Property_1.Property, { name: 'borderBottom', value: false }), + react_1.default.createElement(__1.HorizontalBar, { borderBottom: false }, "This bar has no border"), + react_1.default.createElement(Property_1.Property, { name: 'borderTop', value: true }), + react_1.default.createElement(__1.HorizontalBar, { borderTop: true }, "This bar has a border top as well as bottom"))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Setting the background"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, { previewPadding: false }, + react_1.default.createElement(__1.HorizontalBar, { background: 'dark' }, "This is a dark bar")), + react_1.default.createElement(__1.Headline, { level: '2' }, "Sizing elements"), + react_1.default.createElement(__1.Paragraph, null, + "The children of a ", + react_1.default.createElement("code", null, "HorizontalBar"), + " will be rendered from left to right, using only the minimum available horizontal space. By setting the ", + react_1.default.createElement("code", null, "flexGrow"), + " style property, you can enable children to occupy all the available horizontal space."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, { previewPadding: false }, + react_1.default.createElement(react_1.Fragment, null, + react_1.default.createElement(__1.HorizontalBar, null, + react_1.default.createElement("div", { style: { background: 'deeppink' } }, "Element with auto width"), + react_1.default.createElement("div", { style: { background: 'gray' } }, "Another element with auto width")), + react_1.default.createElement(__1.HorizontalBar, null, + react_1.default.createElement("div", { style: { flexGrow: 1, background: 'deeppink' } }, "Growing element"), + react_1.default.createElement("div", { style: { flexGrow: 0, background: 'gray' } }, "Fixed width")))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Aligning elements"), + react_1.default.createElement(__1.Paragraph, null, + "The children of a ", + react_1.default.createElement("code", null, "HorizontalBar"), + " will be rendered from left to right. Use the ", + react_1.default.createElement("code", null, "align"), + " property, to adjust this behaviour."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, { previewPadding: false }, + react_1.default.createElement(react_1.Fragment, null, + react_1.default.createElement(__1.HorizontalBar, { align: 'left' }, + react_1.default.createElement("div", null, "1"), + react_1.default.createElement("div", null, "2")), + react_1.default.createElement(__1.HorizontalBar, { align: 'center' }, + react_1.default.createElement("div", null, "1"), + react_1.default.createElement("div", null, "2")), + react_1.default.createElement(__1.HorizontalBar, { align: 'right' }, + react_1.default.createElement("div", null, "1"), + react_1.default.createElement("div", null, "2")), + react_1.default.createElement(__1.HorizontalBar, { align: 'space-between' }, + react_1.default.createElement("div", null, "1"), + react_1.default.createElement("div", null, "2")))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Adjusting space between items"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, { previewPadding: false }, + react_1.default.createElement(react_1.Fragment, null, + react_1.default.createElement(__1.HorizontalBar, { spaceBetweenItems: 'none' }, + react_1.default.createElement("div", { style: { background: 'deeppink' } }, "Element 1"), + react_1.default.createElement("div", { style: { background: 'gray' } }, "Element 2")), + react_1.default.createElement(__1.HorizontalBar, { spaceBetweenItems: 'sm' }, + react_1.default.createElement("div", { style: { background: 'deeppink' } }, "Growing element"), + react_1.default.createElement("div", { style: { background: 'gray' } }, "Element 2")), + react_1.default.createElement(__1.HorizontalBar, { spaceBetweenItems: 'md' }, + react_1.default.createElement("div", { style: { background: 'deeppink' } }, "Growing element"), + react_1.default.createElement("div", { style: { background: 'gray' } }, "Element 2")), + react_1.default.createElement(__1.HorizontalBar, { spaceBetweenItems: 'lg' }, + react_1.default.createElement("div", { style: { background: 'deeppink' } }, "Growing element"), + react_1.default.createElement("div", { style: { background: 'gray' } }, "Element 2")))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Adjusting horizontal padding"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, { previewPadding: false }, + react_1.default.createElement(react_1.Fragment, null, + react_1.default.createElement(__1.HorizontalBar, { paddingHorizontal: 'none' }, + react_1.default.createElement("div", { style: { background: 'deeppink' } }, "Element 1")), + react_1.default.createElement(__1.HorizontalBar, { paddingHorizontal: 'sm' }, + react_1.default.createElement("div", { style: { background: 'deeppink' } }, "Growing element")), + react_1.default.createElement(__1.HorizontalBar, { paddingHorizontal: 'md' }, + react_1.default.createElement("div", { style: { background: 'deeppink' } }, "Growing element")))))); +exports.Documentation = Documentation; diff --git a/build/lib/components/layout/HorizontalBar/index.d.ts b/build/lib/components/layout/HorizontalBar/index.d.ts new file mode 100644 index 00000000..c3df8bbd --- /dev/null +++ b/build/lib/components/layout/HorizontalBar/index.d.ts @@ -0,0 +1,14 @@ +import { Background } from '../../Background'; +import { FunctionComponent } from 'react'; +interface HorizontalBarProps { + align?: 'stretch' | 'center' | 'left' | 'right' | 'space-between'; + background?: Background; + borderBottom?: boolean; + borderTop?: boolean; + className?: string; + id?: string; + paddingHorizontal?: 'none' | 'sm' | 'md'; + spaceBetweenItems?: 'none' | 'sm' | 'md' | 'lg'; +} +declare const HorizontalBar: FunctionComponent; +export { HorizontalBar }; diff --git a/build/lib/components/layout/HorizontalBar/index.js b/build/lib/components/layout/HorizontalBar/index.js new file mode 100644 index 00000000..b27b2fa6 --- /dev/null +++ b/build/lib/components/layout/HorizontalBar/index.js @@ -0,0 +1,34 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.HorizontalBar = void 0; +const styles_1 = require("../../../styles"); +const styles_2 = require("./styles"); +const react_1 = __importDefault(require("react")); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const HorizontalBar = ({ align = 'stretch', background = 'light', borderTop = false, borderBottom = true, className, children, id, paddingHorizontal = 'md', spaceBetweenItems = 'sm' }) => { + const classes = useStyles(); + const componentClasses = (0, styles_1.classNames)(classes.HorizontalBar, { + [classes.AlignStretch]: align === 'stretch', + [classes.AlignCenter]: align === 'center', + [classes.AlignLeft]: align === 'left', + [classes.AlignRight]: align === 'right', + [classes.AlignSpaceBetween]: align === 'space-between', + [classes.BackgroundDark]: background === 'dark', + [classes.BackgroundLight]: background === 'light', + [classes.PaddingHorizontalNone]: paddingHorizontal === 'none', + [classes.PaddingHorizontalSm]: paddingHorizontal === 'sm', + [classes.PaddingHorizontalMd]: paddingHorizontal === 'md', + [classes.SpaceBetweenItemsNone]: spaceBetweenItems === 'none', + [classes.SpaceBetweenItemsSm]: spaceBetweenItems === 'sm', + [classes.SpaceBetweenItemsMd]: spaceBetweenItems === 'md', + [classes.SpaceBetweenItemsLg]: spaceBetweenItems === 'lg', + [classes.WithBorderBottom]: borderBottom, + [classes.WithBorderTop]: borderTop + }, className); + return (react_1.default.createElement("div", { id: id, className: componentClasses }, children)); +}; +exports.HorizontalBar = HorizontalBar; +HorizontalBar.displayName = 'HorizontalBar'; diff --git a/build/lib/components/layout/HorizontalBar/styles.d.ts b/build/lib/components/layout/HorizontalBar/styles.d.ts new file mode 100644 index 00000000..1f627457 --- /dev/null +++ b/build/lib/components/layout/HorizontalBar/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type HorizontalBarClassNames = 'AlignStretch' | 'AlignCenter' | 'AlignRight' | 'AlignLeft' | 'AlignSpaceBetween' | 'HorizontalBar' | 'BackgroundLight' | 'BackgroundDark' | 'PaddingHorizontalNone' | 'PaddingHorizontalSm' | 'PaddingHorizontalMd' | 'SpaceBetweenItemsNone' | 'SpaceBetweenItemsSm' | 'SpaceBetweenItemsMd' | 'SpaceBetweenItemsLg' | 'WithBorderBottom' | 'WithBorderTop'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/layout/HorizontalBar/styles.js b/build/lib/components/layout/HorizontalBar/styles.js new file mode 100644 index 00000000..b4668cff --- /dev/null +++ b/build/lib/components/layout/HorizontalBar/styles.js @@ -0,0 +1,78 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const color_1 = __importDefault(require("color")); +const styles = (theme) => ({ + HorizontalBar: { + display: 'flex', + alignItems: 'center', + minHeight: theme.components.HorizontalBar.minHeight, + borderStyle: 'solid' + }, + AlignStretch: { + justifyContent: 'stretch' + }, + AlignCenter: { + justifyContent: 'center' + }, + AlignRight: { + justifyContent: 'flex-end' + }, + AlignLeft: { + justifyContent: 'flex-start' + }, + AlignSpaceBetween: { + justifyContent: 'space-between' + }, + BackgroundLight: { + background: theme.color.brand.white, + borderColor: theme.color.brand.grayLight + }, + BackgroundDark: { + background: theme.color.brand.grayDark, + color: theme.color.brand.white, + borderColor: (0, color_1.default)(theme.color.brand.white).alpha(0.15).rgb().toString() + }, + PaddingHorizontalNone: {}, + PaddingHorizontalSm: { + padding: `0 ${theme.space(1)}px` + }, + PaddingHorizontalMd: { + padding: `0 ${theme.space(2)}px` + }, + SpaceBetweenItemsNone: {}, + SpaceBetweenItemsSm: { + '& > *': { + marginRight: theme.space(1) + }, + '& > *:last-child': { + marginRight: 0 + } + }, + SpaceBetweenItemsMd: { + '& > *': { + marginRight: theme.space(2) + }, + '& > *:last-child': { + marginRight: 0 + } + }, + SpaceBetweenItemsLg: { + '& > *': { + marginRight: theme.space(4) + }, + '& > *:last-child': { + marginRight: 0 + } + }, + WithBorderBottom: { + borderBottomWidth: '1px' + }, + WithBorderTop: { + borderTopWidth: '1px' + } +}); +exports.styles = styles; diff --git a/build/lib/components/layout/Sidebar/Documentation.d.ts b/build/lib/components/layout/Sidebar/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/layout/Sidebar/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/layout/Sidebar/Documentation.js b/build/lib/components/layout/Sidebar/Documentation.js new file mode 100644 index 00000000..636bdb03 --- /dev/null +++ b/build/lib/components/layout/Sidebar/Documentation.js @@ -0,0 +1,55 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../../components/documentation/ComponentPreview"); +const __1 = require("../../.."); +const react_1 = __importDefault(require("react")); +const Documentation = () => (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "Sidebar"), + react_1.default.createElement(__1.Paragraph, null, + "The ", + react_1.default.createElement("code", null, "Sidebar"), + " should be used to handle navigation when building an application layout using the ", + react_1.default.createElement("code", null, "Application"), + " component. It's also responsible for applying a consistent branding across the native web applications."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement("div", { style: { position: 'relative', width: '100%', height: '100%' } }, + react_1.default.createElement(__1.Application, { useNotifications: false, useDialogs: false }, + react_1.default.createElement(__1.Sidebar, null, + react_1.default.createElement(__1.SidebarBrand, null, + react_1.default.createElement(__1.Product, { name: 'my-app' }))), + react_1.default.createElement(__1.Container, { background: 'light' }, "My content panel")))), + react_1.default.createElement(__1.Headline, null, "Items"), + react_1.default.createElement(__1.Paragraph, null, + "Add items to the sidebar using the ", + react_1.default.createElement("code", null, "SidebarItem"), + " component. An item is either a top level item that can be actived, e.g. a help item that activates the help mode. Or it is a container for nested items, e.g. an account item that contains a logout item."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement("div", { style: { position: 'relative', width: '100%', height: '100%' } }, + react_1.default.createElement(__1.Application, { useNotifications: false, useDialogs: false }, + react_1.default.createElement(__1.Sidebar, null, + react_1.default.createElement(__1.SidebarBrand, null, + react_1.default.createElement(__1.Product, { name: 'my-app' })), + react_1.default.createElement(__1.SidebarItem, { iconName: 'account' }, + react_1.default.createElement(__1.SidebarItem, null, "You are logged in as Sophie"), + react_1.default.createElement(__1.SidebarItem, { onClick: () => __1.notifications.show({ type: 'success', text: 'onClick: Logout' }) }, "Logout")), + react_1.default.createElement(__1.SidebarItem, { iconName: 'menu', isActive: true }), + react_1.default.createElement(__1.SidebarItem, { iconName: 'toggle-left-panel' }), + react_1.default.createElement(__1.SidebarItem, { iconName: 'help', onClick: () => __1.notifications.show({ type: 'success', text: 'onClick: help' }) }))))), + react_1.default.createElement(__1.Headline, null, "Footer"), + react_1.default.createElement(__1.Paragraph, null, + "A sidebar can also contain a ", + react_1.default.createElement("code", null, "SidebarFooter"), + ". Use it to display and link to the brand that created the product."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement("div", { style: { position: 'relative', width: '100%', height: '100%' } }, + react_1.default.createElement(__1.Application, { useNotifications: false, useDialogs: false }, + react_1.default.createElement(__1.Sidebar, null, + react_1.default.createElement(__1.SidebarBrand, null, + react_1.default.createElement(__1.Product, { name: 'my-app' })), + react_1.default.createElement(__1.SidebarFooter, null, + react_1.default.createElement(__1.Brand, { type: 'minimal', color: 'monochrome' })))))))); +exports.Documentation = Documentation; diff --git a/build/lib/components/layout/Sidebar/index.d.ts b/build/lib/components/layout/Sidebar/index.d.ts new file mode 100644 index 00000000..18bdee3b --- /dev/null +++ b/build/lib/components/layout/Sidebar/index.d.ts @@ -0,0 +1,6 @@ +import { FunctionComponent } from 'react'; +interface SidebarProps { + id?: string; +} +declare const Sidebar: FunctionComponent; +export { Sidebar }; diff --git a/build/lib/components/layout/Sidebar/index.js b/build/lib/components/layout/Sidebar/index.js new file mode 100644 index 00000000..a488237e --- /dev/null +++ b/build/lib/components/layout/Sidebar/index.js @@ -0,0 +1,16 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Sidebar = void 0; +const styles_1 = require("../../../styles"); +const react_1 = __importDefault(require("react")); +const styles_2 = require("./styles"); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const Sidebar = ({ children, id }) => { + const classes = useStyles(); + return (react_1.default.createElement("div", { id: id, className: classes.Sidebar }, children)); +}; +exports.Sidebar = Sidebar; +Sidebar.displayName = 'Sidebar'; diff --git a/build/lib/components/layout/Sidebar/styles.d.ts b/build/lib/components/layout/Sidebar/styles.d.ts new file mode 100644 index 00000000..d9182c19 --- /dev/null +++ b/build/lib/components/layout/Sidebar/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type SidebarClassNames = 'Sidebar'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/layout/Sidebar/styles.js b/build/lib/components/layout/Sidebar/styles.js new file mode 100644 index 00000000..8f0d1d7e --- /dev/null +++ b/build/lib/components/layout/Sidebar/styles.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = (theme) => ({ + Sidebar: { + position: 'relative', + flexGrow: 0, + flexShrink: 0, + display: 'flex', + flexDirection: 'column', + boxSizing: 'content-box', + width: theme.components.Sidebar.width, + background: theme.color.brand.grayDark, + padding: `${theme.space(2)}px 0` + } +}); +exports.styles = styles; diff --git a/build/lib/components/layout/SidebarBrand/index.d.ts b/build/lib/components/layout/SidebarBrand/index.d.ts new file mode 100644 index 00000000..692ea966 --- /dev/null +++ b/build/lib/components/layout/SidebarBrand/index.d.ts @@ -0,0 +1,3 @@ +import { FunctionComponent } from 'react'; +declare const SidebarBrand: FunctionComponent; +export { SidebarBrand }; diff --git a/build/lib/components/layout/SidebarBrand/index.js b/build/lib/components/layout/SidebarBrand/index.js new file mode 100644 index 00000000..1757d261 --- /dev/null +++ b/build/lib/components/layout/SidebarBrand/index.js @@ -0,0 +1,16 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SidebarBrand = void 0; +const styles_1 = require("../../../styles"); +const react_1 = __importDefault(require("react")); +const styles_2 = require("./styles"); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const SidebarBrand = ({ children }) => { + const classes = useStyles(); + return (react_1.default.createElement("div", { className: classes.SidebarBrand }, children)); +}; +exports.SidebarBrand = SidebarBrand; +SidebarBrand.displayName = 'SidebarBrand'; diff --git a/build/lib/components/layout/SidebarBrand/styles.d.ts b/build/lib/components/layout/SidebarBrand/styles.d.ts new file mode 100644 index 00000000..9845ed38 --- /dev/null +++ b/build/lib/components/layout/SidebarBrand/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type SidebarBrandClassNames = 'SidebarBrand'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/layout/SidebarBrand/styles.js b/build/lib/components/layout/SidebarBrand/styles.js new file mode 100644 index 00000000..c58affa2 --- /dev/null +++ b/build/lib/components/layout/SidebarBrand/styles.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = (theme) => ({ + SidebarBrand: { + paddingBottom: `${theme.space(2)}px`, + borderBottom: '1px solid rgba(255, 255, 255, 0.1)' + } +}); +exports.styles = styles; diff --git a/build/lib/components/layout/SidebarFooter/index.d.ts b/build/lib/components/layout/SidebarFooter/index.d.ts new file mode 100644 index 00000000..226485cb --- /dev/null +++ b/build/lib/components/layout/SidebarFooter/index.d.ts @@ -0,0 +1,3 @@ +import { FunctionComponent } from 'react'; +declare const SidebarFooter: FunctionComponent; +export { SidebarFooter }; diff --git a/build/lib/components/layout/SidebarFooter/index.js b/build/lib/components/layout/SidebarFooter/index.js new file mode 100644 index 00000000..8936698f --- /dev/null +++ b/build/lib/components/layout/SidebarFooter/index.js @@ -0,0 +1,16 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SidebarFooter = void 0; +const styles_1 = require("../../../styles"); +const react_1 = __importDefault(require("react")); +const styles_2 = require("./styles"); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const SidebarFooter = ({ children }) => { + const classes = useStyles(); + return (react_1.default.createElement("div", { className: classes.SidebarFooter }, children)); +}; +exports.SidebarFooter = SidebarFooter; +SidebarFooter.displayName = 'SidebarFooter'; diff --git a/build/lib/components/layout/SidebarFooter/styles.d.ts b/build/lib/components/layout/SidebarFooter/styles.d.ts new file mode 100644 index 00000000..ec34b036 --- /dev/null +++ b/build/lib/components/layout/SidebarFooter/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type SidebarFooterClassNames = 'SidebarFooter'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/layout/SidebarFooter/styles.js b/build/lib/components/layout/SidebarFooter/styles.js new file mode 100644 index 00000000..dd8f52f7 --- /dev/null +++ b/build/lib/components/layout/SidebarFooter/styles.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = (theme) => ({ + SidebarFooter: { + position: 'absolute', + bottom: 0, + left: 0, + right: 0, + paddingTop: `${theme.space(2)}px`, + paddingBottom: `${theme.space(2)}px`, + borderTop: '1px solid rgba(255, 255, 255, 0.1)' + } +}); +exports.styles = styles; diff --git a/build/lib/components/layout/SidebarItem/index.d.ts b/build/lib/components/layout/SidebarItem/index.d.ts new file mode 100644 index 00000000..31116e8c --- /dev/null +++ b/build/lib/components/layout/SidebarItem/index.d.ts @@ -0,0 +1,12 @@ +import { FunctionComponent } from 'react'; +interface SidebarItemProps { + className?: string; + iconName?: string; + iconUrl?: string; + id?: string | undefined; + isActive?: boolean; + isNested?: boolean; + onClick?: () => void; +} +declare const SidebarItem: FunctionComponent; +export { SidebarItem }; diff --git a/build/lib/components/layout/SidebarItem/index.js b/build/lib/components/layout/SidebarItem/index.js new file mode 100644 index 00000000..5b709611 --- /dev/null +++ b/build/lib/components/layout/SidebarItem/index.js @@ -0,0 +1,37 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SidebarItem = void 0; +const __1 = require("../../.."); +const isDomNode_1 = require("../../../utils/isDomNode"); +const styles_1 = require("../../../styles"); +const react_1 = __importDefault(require("react")); +const styles_2 = require("./styles"); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const SidebarItem = react_1.default.forwardRef(({ className, iconName, iconUrl, id, isActive = false, isNested = false, children, onClick }, ref) => { + const classes = useStyles(); + const componentClasses = (0, styles_1.classNames)(classes.SidebarItem, { + [classes.IsActive]: isActive, + [classes.IsNested]: isNested, + [classes.IsTopLevel]: !isNested, + [classes.IsClickable]: onClick !== undefined + }, className); + if (isNested) { + return (react_1.default.createElement("div", { id: id, className: componentClasses, onClick: onClick }, + react_1.default.createElement("div", { className: classes.Label }, children))); + } + return (react_1.default.createElement("div", { ref: ref, id: id, className: componentClasses }, + react_1.default.createElement("div", { className: classes.Icon, onClick: onClick }, + iconUrl ? react_1.default.createElement("img", { src: iconUrl }) : null, + iconName ? react_1.default.createElement(__1.Icon, { name: iconName, size: 'md', color: 'current' }) : null), + react_1.default.createElement("div", { className: classes.Items }, react_1.default.Children.map(children, (child) => { + if ((0, isDomNode_1.isDomNode)(child)) { + return child; + } + return react_1.default.cloneElement(child, { isNested: true }); + })))); +}); +exports.SidebarItem = SidebarItem; +SidebarItem.displayName = 'SidebarItem'; diff --git a/build/lib/components/layout/SidebarItem/styles.d.ts b/build/lib/components/layout/SidebarItem/styles.d.ts new file mode 100644 index 00000000..fc82a7fd --- /dev/null +++ b/build/lib/components/layout/SidebarItem/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type SidebarItemClassNames = 'SidebarItem' | 'IsActive' | 'IsClickable' | 'IsTopLevel' | 'IsNested' | 'Icon' | 'Label' | 'Items'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/layout/SidebarItem/styles.js b/build/lib/components/layout/SidebarItem/styles.js new file mode 100644 index 00000000..d587e336 --- /dev/null +++ b/build/lib/components/layout/SidebarItem/styles.js @@ -0,0 +1,84 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const color_1 = __importDefault(require("color")); +const styles = (theme) => ({ + SidebarItem: { + position: 'relative', + flex: '0 0 auto', + overflow: 'visible', + borderBottom: '1px solid rgba(255, 255, 255, 0.1)', + cursor: 'pointer', + color: theme.color.brand.white, + '&$IsTopLevel:hover, &$IsClickable:hover, &$IsActive': { + cursor: 'pointer', + background: theme.color.brand.highlight, + color: theme.color.brand.white, + '& $Items': { + opacity: 1, + pointerEvents: 'all', + transform: 'translate(0, 0)' + } + }, + '&$IsClickable:active': { + background: (0, color_1.default)(theme.color.brand.highlight). + darken(0.1). + rgb(). + string() + }, + '& $Label': {}, + '& $Icon': { + display: 'flex', + justifyContent: 'center', + alignItems: 'center', + paddingTop: `${theme.space(3)}px`, + paddingBottom: `${theme.space(3)}px`, + color: 'inherit', + '& img': { + width: '48px', + height: '48px', + borderRadius: '50%' + } + } + }, + IsActive: {}, + IsClickable: {}, + IsTopLevel: {}, + IsNested: { + flex: '1 1 100%', + cursor: 'default', + whiteSpace: 'nowrap', + '& $Label': { + overflow: 'hidden', + textOverflow: 'ellipsis', + margin: `${theme.space(2)}px ${theme.space(3)}px` + }, + '&$IsClickable': { + color: theme.color.brand.white + } + }, + Icon: {}, + Label: {}, + Items: { + position: 'absolute', + top: 0, + left: theme.components.Sidebar.width, + display: 'flex', + flexDirection: 'column', + justifyContent: 'center', + maxWidth: `${theme.space(50)}px`, + background: theme.color.brand.grayDark, + zIndex: theme.zIndices.overlay, + color: '#848484', + boxShadow: theme.shadow.overlay, + opacity: 0, + pointerEvents: 'none', + transform: 'translate(-20px, 0)', + transition: 'opacity 200ms, transform 300ms cubic-bezier(0.19, 1, 0.22, 1)', + willChange: 'opacity, transform' + } +}); +exports.styles = styles; diff --git a/build/lib/components/layout/Space/Documentation.d.ts b/build/lib/components/layout/Space/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/layout/Space/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/layout/Space/Documentation.js b/build/lib/components/layout/Space/Documentation.js new file mode 100644 index 00000000..82fa8d46 --- /dev/null +++ b/build/lib/components/layout/Space/Documentation.js @@ -0,0 +1,108 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../../components/documentation/ComponentPreview"); +const __1 = require("../../.."); +const react_1 = __importStar(require("react")); +const Documentation = () => (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "Space"), + react_1.default.createElement(__1.Paragraph, null, + "A ", + react_1.default.createElement("code", null, "Space"), + " component can be used to add padding around components."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, { previewPadding: false }, + react_1.default.createElement(react_1.Fragment, null, + react_1.default.createElement(__1.Space, { padding: '1' }, + react_1.default.createElement("div", { style: { background: 'deeppink' } }, "padding: 1")), + react_1.default.createElement(__1.Space, { padding: '2' }, + react_1.default.createElement("div", { style: { background: 'deeppink' } }, "padding: 2")), + react_1.default.createElement(__1.Space, { padding: '3' }, + react_1.default.createElement("div", { style: { background: 'deeppink' } }, "padding: 3")), + react_1.default.createElement(__1.Space, { padding: '15' }, + react_1.default.createElement("div", { style: { background: 'deeppink' } }, "padding: 15")))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Specific paddings"), + react_1.default.createElement(__1.Paragraph, null, + "Instead of the default padding, you can also set specific paddings, e.g. ", + react_1.default.createElement("code", null, "paddingTop"), + "."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, { previewPadding: false }, + react_1.default.createElement(react_1.Fragment, null, + react_1.default.createElement(__1.Space, { paddingTop: '1' }, + react_1.default.createElement("div", { style: { background: 'deeppink' } }, "paddingTop: 3")), + react_1.default.createElement(__1.Space, { paddingBottom: '1' }, + react_1.default.createElement("div", { style: { background: 'deeppink' } }, "paddingBottom: 3")), + react_1.default.createElement(__1.Space, { paddingLeft: '1' }, + react_1.default.createElement("div", { style: { background: 'deeppink' } }, "paddingLeft: 1")), + react_1.default.createElement(__1.Space, { paddingRight: '1' }, + react_1.default.createElement("div", { style: { background: 'deeppink' } }, "paddingRight: 1")))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Horizontal and vertical shortcuts"), + react_1.default.createElement(__1.Paragraph, null, + "As you often need to set both horizontal or both vertical paddings, the ", + react_1.default.createElement("code", null, "Space"), + " components provides two shortcut properties: ", + react_1.default.createElement("code", null, "paddingX"), + " and ", + react_1.default.createElement("code", null, "paddingY"), + "."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, { previewPadding: false }, + react_1.default.createElement(react_1.Fragment, null, + react_1.default.createElement(__1.Space, { paddingX: '3' }, + react_1.default.createElement("div", { style: { background: 'deeppink' } }, "paddingX: 3")), + react_1.default.createElement(__1.Space, { paddingY: '3' }, + react_1.default.createElement("div", { style: { background: 'deeppink' } }, "paddingY: 3")))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Defining space between children"), + react_1.default.createElement(__1.Paragraph, null, + "To specify the space between child elements use the ", + react_1.default.createElement("code", null, "between"), + " property:"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.Space, { between: '3' }, + react_1.default.createElement("div", { style: { background: 'deeppink' } }, "First"), + react_1.default.createElement("div", { style: { background: 'deeppink' } }, "Second"), + react_1.default.createElement("div", { style: { background: 'deeppink' } }, "Last"))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Using responsive values"), + react_1.default.createElement(__1.Paragraph, null, "All properties can also be set depending on the size of the viewport:"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, { previewPadding: false }, + react_1.default.createElement(__1.Space, { between: { xs: 1, sm: 2, md: 4, lg: 6, xl: 8 }, padding: { xs: 1, sm: 2, md: 4, lg: 6, xl: 8 } }, + react_1.default.createElement("div", { style: { background: 'deeppink' } }, + "The padding of this div will change with the size of the viewport. ", + react_1.default.createElement("br", null), + `{ xs: 1, sm: 2, md: 4, lg: 6, xl: 8 }`), + react_1.default.createElement("div", { style: { background: 'deeppink' } }, + "The padding of this div will change with the size of the viewport. ", + react_1.default.createElement("br", null), + `{ xs: 1, sm: 2, md: 4, lg: 6, xl: 8 }`))))); +exports.Documentation = Documentation; diff --git a/build/lib/components/layout/Space/index.d.ts b/build/lib/components/layout/Space/index.d.ts new file mode 100644 index 00000000..fa74b423 --- /dev/null +++ b/build/lib/components/layout/Space/index.d.ts @@ -0,0 +1,16 @@ +import { ResponsiveSpaceProp } from '../../../types/ResponsiveSpaceProp'; +import { FunctionComponent } from 'react'; +interface SpaceProps { + between?: ResponsiveSpaceProp; + className?: string; + id?: string; + padding?: ResponsiveSpaceProp; + paddingLeft?: ResponsiveSpaceProp; + paddingRight?: ResponsiveSpaceProp; + paddingTop?: ResponsiveSpaceProp; + paddingBottom?: ResponsiveSpaceProp; + paddingX?: ResponsiveSpaceProp; + paddingY?: ResponsiveSpaceProp; +} +declare const Space: FunctionComponent; +export { Space }; diff --git a/build/lib/components/layout/Space/index.js b/build/lib/components/layout/Space/index.js new file mode 100644 index 00000000..e1e4b15e --- /dev/null +++ b/build/lib/components/layout/Space/index.js @@ -0,0 +1,23 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Space = void 0; +const utils_1 = require("../../../styles/utils"); +const styles_1 = require("../../../styles"); +const react_1 = __importDefault(require("react")); +const styles_2 = require("./styles"); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const Space = ({ id, className, children, ...props }) => { + const classes = useStyles(); + const spaceDependentClassNames = (0, utils_1.getSpaceDependentClassNamesFromProps)({ + props: props, + classes, + definitions: styles_2.spaceDependentProperties + }); + const componentClasses = (0, styles_1.classNames)(classes.Space, spaceDependentClassNames, className); + return (react_1.default.createElement("div", { id: id, className: componentClasses }, children)); +}; +exports.Space = Space; +Space.displayName = 'Space'; diff --git a/build/lib/components/layout/Space/styles.d.ts b/build/lib/components/layout/Space/styles.d.ts new file mode 100644 index 00000000..def33150 --- /dev/null +++ b/build/lib/components/layout/Space/styles.d.ts @@ -0,0 +1,5 @@ +import { ClassDefinitions } from '../../../styles/utils'; +import { ComponentClassNames, Theme } from '../../..'; +declare const spaceDependentProperties: ClassDefinitions; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles, spaceDependentProperties }; diff --git a/build/lib/components/layout/Space/styles.js b/build/lib/components/layout/Space/styles.js new file mode 100644 index 00000000..ba07acb2 --- /dev/null +++ b/build/lib/components/layout/Space/styles.js @@ -0,0 +1,59 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.spaceDependentProperties = exports.styles = void 0; +const utils_1 = require("../../../styles/utils"); +const spaceDependentProperties = { + between: ({ spaceFactor, theme }) => ({ + '& > *': { + marginBottom: `${theme.space(Number(spaceFactor))}px` + }, + '& > *:last-child': { + marginBottom: `0` + } + }), + padding: ({ spaceFactor, theme }) => ({ + padding: `${theme.space(Number(spaceFactor))}px` + }), + paddingLeft: ({ spaceFactor, theme }) => ({ + paddingLeft: `${theme.space(Number(spaceFactor))}px` + }), + paddingRight: ({ spaceFactor, theme }) => ({ + paddingRight: `${theme.space(Number(spaceFactor))}px` + }), + paddingBottom: ({ spaceFactor, theme }) => ({ + paddingBottom: `${theme.space(Number(spaceFactor))}px` + }), + paddingTop: ({ spaceFactor, theme }) => ({ + paddingTop: `${theme.space(Number(spaceFactor))}px` + }), + paddingX: ({ spaceFactor, theme }) => ({ + paddingLeft: `${theme.space(Number(spaceFactor))}px`, + paddingRight: `${theme.space(Number(spaceFactor))}px` + }), + paddingY: ({ spaceFactor, theme }) => ({ + paddingTop: `${theme.space(Number(spaceFactor))}px`, + paddingBottom: `${theme.space(Number(spaceFactor))}px` + }) +}; +exports.spaceDependentProperties = spaceDependentProperties; +const styles = (theme) => ({ + Space: {}, + ...(0, utils_1.createSpaceDependentClasses)({ theme, definitions: spaceDependentProperties }), + ...(0, utils_1.createDefaultSpaceDependantClasses)({ theme, definitions: spaceDependentProperties }), + [theme.breakpoints.up('xs')]: { + ...(0, utils_1.createSpaceDependentClasses)({ deviceSize: 'xs', theme, definitions: spaceDependentProperties }) + }, + [theme.breakpoints.up('sm')]: { + ...(0, utils_1.createSpaceDependentClasses)({ deviceSize: 'sm', theme, definitions: spaceDependentProperties }) + }, + [theme.breakpoints.up('md')]: { + ...(0, utils_1.createSpaceDependentClasses)({ deviceSize: 'md', theme, definitions: spaceDependentProperties }) + }, + [theme.breakpoints.up('lg')]: { + ...(0, utils_1.createSpaceDependentClasses)({ deviceSize: 'lg', theme, definitions: spaceDependentProperties }) + }, + [theme.breakpoints.up('xl')]: { + ...(0, utils_1.createSpaceDependentClasses)({ deviceSize: 'xl', theme, definitions: spaceDependentProperties }) + } +}); +exports.styles = styles; diff --git a/build/lib/components/navigation/Breadcrumbs/Documentation.d.ts b/build/lib/components/navigation/Breadcrumbs/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/navigation/Breadcrumbs/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/navigation/Breadcrumbs/Documentation.js b/build/lib/components/navigation/Breadcrumbs/Documentation.js new file mode 100644 index 00000000..49855a4e --- /dev/null +++ b/build/lib/components/navigation/Breadcrumbs/Documentation.js @@ -0,0 +1,65 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../documentation/ComponentPreview"); +const __1 = require("../../.."); +const react_1 = __importStar(require("react")); +const Documentation = () => (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "Breadcrumbs"), + react_1.default.createElement(__1.Paragraph, null, + "Use ", + react_1.default.createElement("code", null, "Breadcrumbs"), + " to display the path of a current page or view inside an application."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.Breadcrumbs, { items: ['First level', 'Second level', 'Third level'] })), + react_1.default.createElement(__1.Headline, { level: '2' }, "Sizes"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(react_1.Fragment, null, + react_1.default.createElement(__1.Breadcrumbs, { items: ['First', 'Second', 'Third'], size: 'sm' }), + react_1.default.createElement(__1.Breadcrumbs, { items: ['First', 'Second', 'Third'], size: 'md' }))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Colors"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(react_1.Fragment, null, + react_1.default.createElement(__1.Breadcrumbs, { items: ['First', 'Second', 'Third'], color: 'dark' }), + react_1.default.createElement(__1.Breadcrumbs, { items: ['First', 'Second', 'Third'], color: 'light' }))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Highlight search words"), + react_1.default.createElement(__1.Paragraph, null, + "Use the ", + react_1.default.createElement("code", null, "searchWords"), + " property to highlight several words inside the breadcrumbs."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.Breadcrumbs, { items: ['First level', 'Second level', 'Third level'], searchWords: ['second'] })))); +exports.Documentation = Documentation; diff --git a/build/lib/components/navigation/Breadcrumbs/getStyles.d.ts b/build/lib/components/navigation/Breadcrumbs/getStyles.d.ts new file mode 100644 index 00000000..184aa498 --- /dev/null +++ b/build/lib/components/navigation/Breadcrumbs/getStyles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type BreadcrumbsClassNames = 'Breadcrumbs' | 'Breadcrumb' | 'Separator' | 'ColorLight' | 'ColorDark' | 'SizeMd' | 'SizeSm'; +declare const getStyles: (theme: Theme) => ComponentClassNames; +export { getStyles }; diff --git a/build/lib/components/navigation/Breadcrumbs/getStyles.js b/build/lib/components/navigation/Breadcrumbs/getStyles.js new file mode 100644 index 00000000..0449d1c0 --- /dev/null +++ b/build/lib/components/navigation/Breadcrumbs/getStyles.js @@ -0,0 +1,40 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getStyles = void 0; +const color_1 = __importDefault(require("color")); +const getStyles = (theme) => ({ + Breadcrumbs: { + display: 'flex', + flexWrap: 'wrap', + alignItems: 'center' + }, + Separator: { + display: 'inline-flex' + }, + Breadcrumb: { + display: 'inline' + }, + ColorLight: { + color: (0, color_1.default)(theme.color.brand.grayDark).lighten(2).rgb().toString() + }, + ColorDark: { + color: (0, color_1.default)(theme.color.brand.grayDark).lighten(1).rgb().toString() + }, + SizeSm: { + fontSize: theme.font.size.sm, + '& $Separator': { + marginLeft: '2px' + } + }, + SizeMd: { + fontSize: theme.font.size.md, + '& $Separator': { + marginLeft: theme.space(1), + marginRight: theme.space(0.5) + } + } +}); +exports.getStyles = getStyles; diff --git a/build/lib/components/navigation/Breadcrumbs/index.d.ts b/build/lib/components/navigation/Breadcrumbs/index.d.ts new file mode 100644 index 00000000..20e23dde --- /dev/null +++ b/build/lib/components/navigation/Breadcrumbs/index.d.ts @@ -0,0 +1,11 @@ +import { FunctionComponent } from 'react'; +interface BreadcrumbsProps { + className?: string; + color?: 'light' | 'dark'; + id?: string; + items?: string[]; + searchWords?: string[]; + size?: 'sm' | 'md'; +} +declare const Breadcrumbs: FunctionComponent; +export { Breadcrumbs }; diff --git a/build/lib/components/navigation/Breadcrumbs/index.js b/build/lib/components/navigation/Breadcrumbs/index.js new file mode 100644 index 00000000..2439f105 --- /dev/null +++ b/build/lib/components/navigation/Breadcrumbs/index.js @@ -0,0 +1,32 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Breadcrumbs = void 0; +const getStyles_1 = require("./getStyles"); +const styles_1 = require("../../../styles"); +const __1 = require("../../.."); +const react_1 = __importDefault(require("react")); +const useStyles = (0, styles_1.createUseStyles)(getStyles_1.getStyles); +const Breadcrumbs = ({ className, color = 'dark', id, items, searchWords, size = 'md' }) => { + const classes = useStyles(); + if (!items) { + return null; + } + const componentClasses = (0, styles_1.classNames)(classes.Breadcrumbs, { + [classes.SizeSm]: size === 'sm', + [classes.SizeMd]: size === 'md', + [classes.ColorDark]: color === 'dark', + [classes.ColorLight]: color === 'light' + }, className); + return (react_1.default.createElement("div", { id: id, className: componentClasses }, items.map((breadcrumb, index) => (react_1.default.createElement(react_1.default.Fragment, { key: breadcrumb }, + index > 0 ? + (react_1.default.createElement("div", { className: classes.Separator }, + react_1.default.createElement(__1.Icon, { name: 'chevron', size: 'sm', color: 'current' }))) : + null, + react_1.default.createElement("div", { className: classes.Breadcrumb }, + react_1.default.createElement(__1.HighlightText, { searchWords: searchWords }, breadcrumb))))))); +}; +exports.Breadcrumbs = Breadcrumbs; +Breadcrumbs.displayName = 'Breadcrumbs'; diff --git a/build/lib/components/navigation/MobileToggle/Documentation.d.ts b/build/lib/components/navigation/MobileToggle/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/navigation/MobileToggle/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/navigation/MobileToggle/Documentation.js b/build/lib/components/navigation/MobileToggle/Documentation.js new file mode 100644 index 00000000..82a0ee17 --- /dev/null +++ b/build/lib/components/navigation/MobileToggle/Documentation.js @@ -0,0 +1,55 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../../components/documentation/ComponentPreview"); +const __1 = require("../../.."); +const react_1 = __importStar(require("react")); +const Documentation = () => { + const [isVisible, setIsVisible] = (0, react_1.useState)(true); + return (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "MobileToggle"), + react_1.default.createElement(__1.Paragraph, null, + "A ", + react_1.default.createElement("code", null, "MobileToggle"), + " can be used show and hide mobile navigation elements. It floats above the content layer in the upper right of the application. By default it is only visible on mobile devices. Set the ", + react_1.default.createElement("code", null, "isResponsive"), + " property to ", + react_1.default.createElement("code", null, "true"), + " in order to show it on all screen sizes."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.MobileToggle, { position: 'absolute', isResponsive: false, isVisible: isVisible, onClick: () => setIsVisible(!isVisible) })))); +}; +exports.Documentation = Documentation; diff --git a/build/lib/components/navigation/MobileToggle/index.d.ts b/build/lib/components/navigation/MobileToggle/index.d.ts new file mode 100644 index 00000000..2ffa73a5 --- /dev/null +++ b/build/lib/components/navigation/MobileToggle/index.d.ts @@ -0,0 +1,9 @@ +import { FunctionComponent } from 'react'; +interface MobileToggleProps { + position?: 'fixed' | 'absolute'; + isResponsive?: boolean; + isVisible: boolean; + onClick: () => void; +} +declare const MobileToggle: FunctionComponent; +export { MobileToggle }; diff --git a/build/lib/components/navigation/MobileToggle/index.js b/build/lib/components/navigation/MobileToggle/index.js new file mode 100644 index 00000000..7299b9dd --- /dev/null +++ b/build/lib/components/navigation/MobileToggle/index.js @@ -0,0 +1,78 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +exports.MobileToggle = void 0; +const styles_1 = require("../../../styles"); +const __1 = require("../../.."); +const styles_2 = require("./styles"); +const react_1 = __importStar(require("react")); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const MobileToggle = ({ isResponsive = true, isVisible, position = 'fixed', onClick }) => { + const classes = useStyles(); + const backdropClasses = (0, styles_1.classNames)(classes.MobileToggle, { + [classes.IsVisible]: isVisible, + [classes.PositionFixed]: position === 'fixed', + [classes.PositionAbsolute]: position === 'absolute', + [classes.IsResponsive]: isResponsive, + [classes.IsNotResponsive]: !isResponsive + }); + const toggleClasses = (0, styles_1.classNames)(classes.Toggle, { + [classes.IsVisible]: isVisible, + [classes.PositionFixed]: position === 'fixed', + [classes.PositionAbsolute]: position === 'absolute', + [classes.IsResponsive]: isResponsive, + [classes.IsNotResponsive]: !isResponsive + }); + (0, react_1.useEffect)(() => { + const { body } = document; + if (isVisible) { + body.classList.add('thenativeweb-mobile-toggle--prevent-body-scroll'); + } + else { + body.classList.remove('thenativeweb-mobile-toggle--prevent-body-scroll'); + } + }, [isVisible]); + return (react_1.default.createElement(react_1.Fragment, null, + react_1.default.createElement("div", { className: backdropClasses }, + react_1.default.createElement("div", { onClick: onClick, className: classes.Backdrop })), + react_1.default.createElement("div", { onClick: onClick, className: toggleClasses }, + react_1.default.createElement("div", { className: classes.IconContainer }, + react_1.default.createElement(__1.Transition, { in: isVisible, type: 'Fade' }, + react_1.default.createElement(__1.Icon, { className: classes.NavIcon, name: 'close', size: 'sm', color: 'white' })), + react_1.default.createElement(__1.Transition, { in: !isVisible, type: 'Fade' }, + react_1.default.createElement(__1.Icon, { className: classes.NavIcon, name: 'nav', size: 'md', color: 'white' })))))); +}; +exports.MobileToggle = MobileToggle; +MobileToggle.displayName = 'MobileToggle'; diff --git a/build/lib/components/navigation/MobileToggle/styles.d.ts b/build/lib/components/navigation/MobileToggle/styles.d.ts new file mode 100644 index 00000000..c985ac3e --- /dev/null +++ b/build/lib/components/navigation/MobileToggle/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type MobileToggleClassNames = '@global' | 'MobileToggle' | 'IsResponsive' | 'IsNotResponsive' | 'IsVisible' | 'PositionAbsolute' | 'PositionFixed' | 'Backdrop' | 'Toggle' | 'IconContainer' | 'NavIcon'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/navigation/MobileToggle/styles.js b/build/lib/components/navigation/MobileToggle/styles.js new file mode 100644 index 00000000..5211899a --- /dev/null +++ b/build/lib/components/navigation/MobileToggle/styles.js @@ -0,0 +1,92 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = (theme) => ({ + '@global': { + '.tnw-ux-prevent-body-scroll': { + overflow: 'hidden' + } + }, + MobileToggle: { + zIndex: theme.zIndices.content, + top: 0, + right: 0, + left: 0, + bottom: 0, + pointerEvents: 'none' + }, + IsVisible: {}, + IsResponsive: {}, + PositionAbsolute: { + '&$Toggle': { + position: 'absolute' + } + }, + PositionFixed: { + '&$Toggle': { + position: 'fixed' + } + }, + Backdrop: { + position: 'absolute', + top: 0, + right: 0, + bottom: 0, + left: 0, + background: 'rgba(0, 0, 0, 0.3)', + visibility: 'hidden', + pointerEvents: 'none' + }, + Toggle: { + zIndex: theme.zIndices.navigation + 1, + background: theme.color.brand.grayDark, + position: 'fixed', + right: theme.space(1), + top: theme.space(1), + borderRadius: '50%', + display: 'none', + alignItems: 'center', + justifyContent: 'center', + width: '36px', + height: '36px', + willChange: 'opacity' + }, + IconContainer: { + position: 'relative', + width: '100%', + height: '100%' + }, + NavIcon: { + position: 'absolute', + left: '50%', + top: '50%', + transform: 'translate(-50%, -50%)' + }, + IsNotResponsive: { + '&IsVisible': { + '&$Backdrop': { + visibility: 'visible', + pointerEvents: 'auto' + } + }, + '&$Toggle': { + display: 'flex', + pointerEvents: 'auto' + } + }, + [theme.breakpoints.down('xs')]: { + IsResponsive: { + '&IsVisible': { + '& $Backdrop': { + visibility: 'visible', + pointerEvents: 'auto' + } + }, + '&$Toggle': { + display: 'flex', + pointerEvents: 'auto' + } + } + } +}); +exports.styles = styles; diff --git a/build/lib/components/navigation/PageNavigation/Documentation.d.ts b/build/lib/components/navigation/PageNavigation/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/navigation/PageNavigation/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/navigation/PageNavigation/Documentation.js b/build/lib/components/navigation/PageNavigation/Documentation.js new file mode 100644 index 00000000..04114443 --- /dev/null +++ b/build/lib/components/navigation/PageNavigation/Documentation.js @@ -0,0 +1,131 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../../components/documentation/ComponentPreview"); +const __1 = require("../../.."); +const react_1 = __importDefault(require("react")); +const Documentation = () => { + const pageTree = new __1.PageTree({ + items: [ + { + title: 'First Section', + children: [ + { + title: 'First chapter', + children: [ + { title: 'Page A' }, + { title: 'Page B' } + ] + }, + { + title: 'Second chapter', + children: [ + { title: 'Page C' }, + { title: 'Page D' } + ] + } + ] + }, + { + title: 'Second Section', + children: [ + { title: 'Page E' } + ] + } + ] + }); + return (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "PageNavigation"), + react_1.default.createElement(__1.Paragraph, null, + "A ", + react_1.default.createElement("code", null, "PageNavigation"), + " can be used to display a hierarchy of pages inside an application. It accepts a ", + react_1.default.createElement("code", null, "PageTree"), + " structure as its data source and will build a collapsible tree navigation from it. It generates a ", + react_1.default.createElement(__1.Link, { href: 'https://nextjs.org/docs/api-reference/next/link' }, "next/link"), + " for each page using the slugified title."), + react_1.default.createElement(__1.Paragraph, null, + "First create a new ", + react_1.default.createElement("code", null, "PageTree"), + " and provide ", + react_1.default.createElement("code", null, "items"), + " that with a ", + react_1.default.createElement("code", null, "title"), + ", and ", + react_1.default.createElement("code", null, "children"), + "."), + react_1.default.createElement(__1.Code, null, ` + const pageTree = new PageTree({ + items: [ + { + title: 'First Section', + children: [ + { + title: 'First chapter', + children: [ + { title: 'Page A' }, + { title: 'Page B' } + ] + }, + { + title: 'Second chapter', + children: [ + { title: 'Page C' }, + { title: 'Page D' } + ] + } + ] + }, + { + title: 'Second Section', + children: [ + { title: 'Page E' } + ] + } + ] + }); + `), + react_1.default.createElement(__1.Paragraph, null, + "A ", + react_1.default.createElement("code", null, "PageTree"), + " consists of ", + react_1.default.createElement("code", null, "PageTreeItems"), + " which follow the following interface:"), + react_1.default.createElement(__1.Code, { language: 'typescript' }, ` + interface PageTreeItem { + title: string; + keywords?: string []; + children?: PageTreeItem []; + } + `), + react_1.default.createElement(__1.Paragraph, null, + "Pass this ", + react_1.default.createElement("code", null, "pageTree"), + " to the PageNavigation component."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.PageNavigation, { pageTree: pageTree, activePath: '' })), + react_1.default.createElement(__1.Headline, { level: '2' }, "Setting the active path"), + react_1.default.createElement(__1.Paragraph, null, + "Use the ", + react_1.default.createElement("code", null, "activePath"), + " property to define the active page within your tree. The path to this page will be expanded automatically. Once this property changes, all paths that have been expanded by the user will be closed automatically. If you are using this component from within a Next.js application, you get the ", + react_1.default.createElement("code", null, "activePath"), + " using the ", + react_1.default.createElement("code", null, "asPath"), + " property of the ", + react_1.default.createElement(__1.Link, { href: 'https://nextjs.org/docs/api-reference/next/router' }, "next/router"), + "."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.PageNavigation, { pageTree: pageTree, activePath: '/first-section/first-chapter/page-a' })), + react_1.default.createElement(__1.Headline, { level: '2' }, "Searching for pages"), + react_1.default.createElement(__1.Paragraph, null, + "A search bar can be enabled to quickly search inside a page tree. This search will use the ", + react_1.default.createElement("code", null, "pageTree"), + " as data source and query title, keywords and the breadcrumbs of a page."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.PageNavigation, { showSearchBar: true, pageTree: pageTree, activePath: '/first-section/first-chapter/page-a' })))); +}; +exports.Documentation = Documentation; diff --git a/build/lib/components/navigation/PageNavigation/Page/index.d.ts b/build/lib/components/navigation/PageNavigation/Page/index.d.ts new file mode 100644 index 00000000..884a780b --- /dev/null +++ b/build/lib/components/navigation/PageNavigation/Page/index.d.ts @@ -0,0 +1,9 @@ +import { FunctionComponent } from 'react'; +interface PageProps { + activePath: string; + level?: number; + title: string; + path?: string; +} +declare const Page: FunctionComponent; +export { Page }; diff --git a/build/lib/components/navigation/PageNavigation/Page/index.js b/build/lib/components/navigation/PageNavigation/Page/index.js new file mode 100644 index 00000000..015c3122 --- /dev/null +++ b/build/lib/components/navigation/PageNavigation/Page/index.js @@ -0,0 +1,26 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Page = void 0; +const styles_1 = require("../../../../styles"); +const __1 = require("../../../.."); +const styles_2 = require("./styles"); +const react_1 = __importDefault(require("react")); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const Page = ({ activePath, title, level = 2, path }) => { + const pagePathWithTrailingSlash = `${path}${activePath.endsWith('/') ? '/' : ''}`; + const isActive = activePath === pagePathWithTrailingSlash; + // We need to create a path without an ending slash for the NextLinks. + // Next.js will poll for urls under the hood and gets confused if urls + // end with a slash. + const pagePathWithoutTrailingSlash = pagePathWithTrailingSlash.replace(/\/$/ug, ''); + const classes = useStyles(); + const componentClasses = (0, __1.classNames)(classes.Page, { + [classes.IsActive]: isActive + }, `Level${level}`); + return (react_1.default.createElement(__1.Link, { href: pagePathWithoutTrailingSlash, className: componentClasses }, title)); +}; +exports.Page = Page; +Page.displayName = 'Page'; diff --git a/build/lib/components/navigation/PageNavigation/Page/styles.d.ts b/build/lib/components/navigation/PageNavigation/Page/styles.d.ts new file mode 100644 index 00000000..524bb9fc --- /dev/null +++ b/build/lib/components/navigation/PageNavigation/Page/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../../..'; +export type PageClassNames = 'Page' | 'IsActive'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/navigation/PageNavigation/Page/styles.js b/build/lib/components/navigation/PageNavigation/Page/styles.js new file mode 100644 index 00000000..99193a85 --- /dev/null +++ b/build/lib/components/navigation/PageNavigation/Page/styles.js @@ -0,0 +1,41 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const color_1 = __importDefault(require("color")); +const styles = (theme) => ({ + Page: { + display: 'block', + color: theme.color.brand.gray, + lineHeight: theme.font.size.xl, + marginLeft: theme.space(-2), + padding: `${theme.space(0.5)}px ${theme.space(2)}px ${theme.space(0.5)}px ${theme.space(2)}px`, + '&:hover': { + color: theme.color.brand.highlight + }, + '&.Level2, &.Level3, &.Level4, &.Level5': { + paddingLeft: theme.space(6.5) + } + }, + IsActive: { + borderLeft: '1px solid', + borderLeftColor: (0, color_1.default)(theme.color.brand.highlight). + darken(0.2). + rgb(). + string(), + background: theme.color.brand.highlight, + color: theme.color.brand.white, + fontWeight: 600, + '&:hover': { + color: theme.color.brand.white + } + }, + [theme.breakpoints.up('xs')]: { + Page: { + fontSize: theme.font.size.md + } + } +}); +exports.styles = styles; diff --git a/build/lib/components/navigation/PageNavigation/PageGroup/index.d.ts b/build/lib/components/navigation/PageNavigation/PageGroup/index.d.ts new file mode 100644 index 00000000..85790c8c --- /dev/null +++ b/build/lib/components/navigation/PageNavigation/PageGroup/index.d.ts @@ -0,0 +1,10 @@ +import { FunctionComponent } from 'react'; +interface PageGroupProps { + activePath: string; + path: string; + isActive?: boolean; + title: string; + level: number; +} +declare const PageGroup: FunctionComponent; +export { PageGroup }; diff --git a/build/lib/components/navigation/PageNavigation/PageGroup/index.js b/build/lib/components/navigation/PageNavigation/PageGroup/index.js new file mode 100644 index 00000000..803482ea --- /dev/null +++ b/build/lib/components/navigation/PageNavigation/PageGroup/index.js @@ -0,0 +1,66 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +exports.PageGroup = void 0; +const styles_1 = require("../../../../styles"); +const __1 = require("../../../.."); +const styles_2 = require("./styles"); +const react_1 = __importStar(require("react")); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const PageGroup = ({ activePath, children, path, title, level }) => { + const classes = useStyles(); + const isActive = activePath.startsWith(path); + const [isExpanded, setIsExpanded] = (0, react_1.useState)(isActive); + const handleClick = (0, react_1.useCallback)((event) => { + event.preventDefault(); + event.stopPropagation(); + setIsExpanded(!isExpanded); + }, [isExpanded]); + (0, react_1.useEffect)(() => { + setIsExpanded(isActive); + }, [activePath]); + const componentClasses = (0, __1.classNames)(classes.PageGroup, { + [classes.IsActive]: isActive, + [classes.IsExpanded]: isExpanded, + [classes.IsCollapsed]: !isExpanded + }, `Level${level}`); + return (react_1.default.createElement("div", { className: componentClasses }, + react_1.default.createElement(__1.Link, { href: '#', className: classes.Title, onClick: handleClick }, + react_1.default.createElement(__1.Icon, { className: classes.ExpandIcon, name: 'expand', color: 'current' }), + react_1.default.createElement("span", null, title)), + react_1.default.createElement("div", { className: classes.Children }, children))); +}; +exports.PageGroup = PageGroup; +PageGroup.displayName = 'PageGroup'; diff --git a/build/lib/components/navigation/PageNavigation/PageGroup/styles.d.ts b/build/lib/components/navigation/PageNavigation/PageGroup/styles.d.ts new file mode 100644 index 00000000..367b47c3 --- /dev/null +++ b/build/lib/components/navigation/PageNavigation/PageGroup/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../../..'; +export type PageGroupClassNames = 'PageGroup' | 'Title' | 'ExpandIcon' | 'IsActive' | 'IsExpanded' | 'IsCollapsed' | 'Children'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/navigation/PageNavigation/PageGroup/styles.js b/build/lib/components/navigation/PageNavigation/PageGroup/styles.js new file mode 100644 index 00000000..01a6a345 --- /dev/null +++ b/build/lib/components/navigation/PageNavigation/PageGroup/styles.js @@ -0,0 +1,102 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const color_1 = __importDefault(require("color")); +const styles = (theme) => ({ + PageGroup: { + position: 'relative', + '&$IsCollapsed > $Children': { + display: 'none' + }, + // First Level + '&$IsExpanded': { + '& $Children:after': { + content: '""', + position: 'absolute', + top: 0, + bottom: 0, + left: `${theme.space(2) + 6}px`, + width: '2px', + background: (0, color_1.default)(theme.color.brand.grayDark).alpha(0.25).toString(), + zIndex: theme.zIndices.contentOverlay + }, + '& > $Title > $ExpandIcon': { + transform: 'rotate(90deg)' + }, + '& > $Children': { + display: 'block' + } + }, + // Nested Levels + '&.Level2, &.Level3, &.Level4': { + paddingLeft: theme.space(2) + }, + '&.Level2 > $Title': { + fontWeight: 400 + }, + '&$IsExpanded $IsExpanded': { + '& $Children:after': { + background: 'transparent', + left: '6px', + top: `${theme.space(-4)}px` + } + }, + '&$IsExpanded $IsActive$IsExpanded': { + '& $Children:after': { + background: (0, color_1.default)(theme.color.brand.grayDark).alpha(0.5).toString() + } + }, + '&$IsActive > $Title': { + fontWeight: 600 + } + }, + Title: { + display: 'flex', + padding: `0`, + margin: 0, + cursor: 'pointer', + textDecoration: 'none', + color: theme.color.brand.grayDark, + fontWeight: 600, + minHeight: `${theme.space(4)}px`, + alignItems: 'center', + '&:hover': { + color: theme.color.brand.highlight + } + }, + ExpandIcon: { + flexShrink: 0, + width: 14, + height: 14, + transform: 'rotate(0)', + transition: 'transform 150ms ease-in-out', + marginTop: '2px', + marginRight: '3px', + marginLeft: theme.space(2) + }, + IsCollapsed: {}, + IsExpanded: {}, + IsActive: {}, + Children: { + position: 'relative', + display: 'none', + '& ul': { + listStyle: 'none' + } + }, + [theme.breakpoints.up('xs')]: { + Title: { + fontSize: theme.font.size.lg + }, + PageGroup: { + '& $PageGroup $Title': { + fontSize: theme.font.size.md, + lineHeight: `${theme.space(4)}px` + } + } + } +}); +exports.styles = styles; diff --git a/build/lib/components/navigation/PageNavigation/SearchResults/index.d.ts b/build/lib/components/navigation/PageNavigation/SearchResults/index.d.ts new file mode 100644 index 00000000..56bda817 --- /dev/null +++ b/build/lib/components/navigation/PageNavigation/SearchResults/index.d.ts @@ -0,0 +1,9 @@ +import { PageTreeItemWithMetadata } from '../../../..'; +import { FunctionComponent, ReactNode } from 'react'; +interface SearchResultsProps { + nonIdealState?: ReactNode; + results?: PageTreeItemWithMetadata[]; + query: string; +} +declare const SearchResults: FunctionComponent; +export { SearchResults }; diff --git a/build/lib/components/navigation/PageNavigation/SearchResults/index.js b/build/lib/components/navigation/PageNavigation/SearchResults/index.js new file mode 100644 index 00000000..47815b27 --- /dev/null +++ b/build/lib/components/navigation/PageNavigation/SearchResults/index.js @@ -0,0 +1,33 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SearchResults = void 0; +const styles_1 = require("../../../../styles"); +const link_1 = __importDefault(require("next/link")); +const __1 = require("../../../.."); +const react_1 = __importDefault(require("react")); +const styles_2 = require("./styles"); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const SearchResults = ({ nonIdealState, results, query }) => { + const classes = useStyles(); + if (!results) { + return null; + } + if (results.length === 0) { + return (react_1.default.createElement("div", { className: classes.SearchResults }, nonIdealState)); + } + const searchWords = query.split(' ').filter((word) => word !== ''); + return (react_1.default.createElement("div", { className: classes.SearchResults }, results.map((result) => { + var _a; + return (react_1.default.createElement("div", { className: classes.SearchResult, key: result.path }, + react_1.default.createElement(__1.Breadcrumbs, { items: (_a = result.breadcrumbs) === null || _a === void 0 ? void 0 : _a.slice(0, -1), searchWords: searchWords }), + react_1.default.createElement(link_1.default, { href: result.path }, + react_1.default.createElement(__1.Link, { className: classes.Page, "data-path": result.path, href: result.path }, + react_1.default.createElement(__1.HighlightText, { searchWords: searchWords }, result.title))), + react_1.default.createElement(__1.Tags, { items: result.keywords, searchWords: searchWords }))); + }))); +}; +exports.SearchResults = SearchResults; +SearchResults.displayName = 'SearchResults'; diff --git a/build/lib/components/navigation/PageNavigation/SearchResults/styles.d.ts b/build/lib/components/navigation/PageNavigation/SearchResults/styles.d.ts new file mode 100644 index 00000000..58c53580 --- /dev/null +++ b/build/lib/components/navigation/PageNavigation/SearchResults/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../../..'; +export type SearchResultsClassNames = 'SearchResults' | 'SearchResult' | 'Page'; +declare const getStyles: (theme: Theme) => ComponentClassNames; +export { getStyles as styles }; diff --git a/build/lib/components/navigation/PageNavigation/SearchResults/styles.js b/build/lib/components/navigation/PageNavigation/SearchResults/styles.js new file mode 100644 index 00000000..ea840359 --- /dev/null +++ b/build/lib/components/navigation/PageNavigation/SearchResults/styles.js @@ -0,0 +1,30 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const getStyles = (theme) => ({ + SearchResults: {}, + SearchResult: { + margin: 0, + padding: theme.space(2), + borderBottom: `1px solid ${theme.color.brand.grayLight}`, + fontSize: theme.font.size.md, + '& > *': { + marginBottom: theme.space(1) + }, + '& > *:last-child': { + marginBottom: 0 + } + }, + Page: { + display: 'block', + '&:link, &:visited': { + fontWeight: 600 + }, + '&:hover, &:focus': { + color: theme.color.brand.highlight, + opacity: 1, + background: 'transparent' + } + } +}); +exports.styles = getStyles; diff --git a/build/lib/components/navigation/PageNavigation/index.d.ts b/build/lib/components/navigation/PageNavigation/index.d.ts new file mode 100644 index 00000000..11712ae1 --- /dev/null +++ b/build/lib/components/navigation/PageNavigation/index.d.ts @@ -0,0 +1,13 @@ +import { PageTree } from '../../..'; +import { FunctionComponent, ReactNode } from 'react'; +interface PageNavigationProps { + id?: string; + header?: ReactNode; + footer?: ReactNode; + pageTree: PageTree; + nonIdealState?: ReactNode; + showSearchBar?: boolean; + activePath: string; +} +declare const PageNavigation: FunctionComponent; +export { PageNavigation }; diff --git a/build/lib/components/navigation/PageNavigation/index.js b/build/lib/components/navigation/PageNavigation/index.js new file mode 100644 index 00000000..bcb0d2c4 --- /dev/null +++ b/build/lib/components/navigation/PageNavigation/index.js @@ -0,0 +1,85 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +exports.PageNavigation = void 0; +const styles_1 = require("../../../styles"); +const Page_1 = require("./Page"); +const PageGroup_1 = require("./PageGroup"); +const PageSearch_1 = require("../PageTree/PageSearch"); +const SearchResults_1 = require("./SearchResults"); +const __1 = require("../../.."); +const styles_2 = require("./styles"); +const react_1 = __importStar(require("react")); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const renderItems = ({ item, activePath, level }) => { + if (item.children) { + return (react_1.default.createElement(PageGroup_1.PageGroup, { title: item.title, key: item.path, activePath: activePath, path: item.path, level: level }, item.children.map((childItem) => renderItems({ item: childItem, activePath, level: level + 1 })))); + } + return (react_1.default.createElement(Page_1.Page, { path: item.path, level: level, title: item.title, key: item.title, activePath: activePath })); +}; +const PageNavigation = ({ id, footer, header, pageTree, nonIdealState, showSearchBar, activePath }) => { + const classes = useStyles(); + const pageSearch = new PageSearch_1.PageSearch(pageTree); + const [query, setQuery] = (0, react_1.useState)(''); + const [results, setResults] = (0, react_1.useState)([]); + const handleChange = (event) => { + const newQuery = event.target.value; + const newResults = pageSearch.query(newQuery); + setQuery(newQuery); + setResults(newResults); + }; + (0, react_1.useEffect)(() => { + setQuery(''); + setResults([]); + }, [showSearchBar]); + const level = 1; + return (react_1.default.createElement("div", { id: id, className: classes.PageNavigation }, + header, + showSearchBar ? + (react_1.default.createElement(__1.HorizontalBar, { className: classes.SearchBar }, + react_1.default.createElement(__1.Icon, { className: classes.SearchBarIcon, name: 'search', size: 'sm', color: 'current' }), + react_1.default.createElement(__1.TextBox, { className: classes.SearchField, value: query, autoFocus: true, placeholder: 'Search\u2026', type: 'search', onChange: handleChange }))) : + null, + react_1.default.createElement("div", { className: classes.Content }, + query.length === 0 ? + pageTree.items.map((item) => renderItems({ item, activePath, level })) : + null, + query.length > 0 ? + (react_1.default.createElement(SearchResults_1.SearchResults, { query: query, results: results, nonIdealState: nonIdealState })) : + null), + footer)); +}; +exports.PageNavigation = PageNavigation; +PageNavigation.displayName = 'PageNavigation'; diff --git a/build/lib/components/navigation/PageNavigation/styles.d.ts b/build/lib/components/navigation/PageNavigation/styles.d.ts new file mode 100644 index 00000000..cee97580 --- /dev/null +++ b/build/lib/components/navigation/PageNavigation/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type PageNavigationClassNames = 'PageNavigation' | 'SearchBar' | 'SearchBarIcon' | 'SearchField' | 'Content'; +declare const getStyles: (theme: Theme) => ComponentClassNames; +export { getStyles as styles }; diff --git a/build/lib/components/navigation/PageNavigation/styles.js b/build/lib/components/navigation/PageNavigation/styles.js new file mode 100644 index 00000000..b4c229ef --- /dev/null +++ b/build/lib/components/navigation/PageNavigation/styles.js @@ -0,0 +1,40 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const getStyles = (theme) => ({ + PageNavigation: { + position: 'relative', + width: '100%', + height: '100%', + display: 'flex', + flexDirection: 'column', + '& $SearchBarIcon': { + position: 'absolute', + left: `${theme.space(3)}px`, + pointerEvents: 'none' + }, + '& $SearchField': { + padding: `${theme.space(1)}px ${theme.space(1)}px`, + paddingLeft: `${theme.space(4)}px`, + flexGrow: 1 + }, + '& $Content': { + flexGrow: 1, + overflow: 'auto', + '-webkit-overflow-scrolling': 'touch', + paddingTop: theme.space(1.5) + } + }, + SearchBar: {}, + SearchBarIcon: {}, + SearchField: {}, + Content: {}, + [theme.breakpoints.down('xs')]: { + PageNavigation: { + '& $SearchField': { + marginRight: theme.space(5) + } + } + } +}); +exports.styles = getStyles; diff --git a/build/lib/components/navigation/PageTree/PageSearch.d.ts b/build/lib/components/navigation/PageTree/PageSearch.d.ts new file mode 100644 index 00000000..89414786 --- /dev/null +++ b/build/lib/components/navigation/PageTree/PageSearch.d.ts @@ -0,0 +1,8 @@ +import { PageTree } from '.'; +import { PageTreeItemWithMetadata } from '../../..'; +declare class PageSearch { + private readonly pageTree; + constructor(pageTree: PageTree); + query(query: string): PageTreeItemWithMetadata[]; +} +export { PageSearch }; diff --git a/build/lib/components/navigation/PageTree/PageSearch.js b/build/lib/components/navigation/PageTree/PageSearch.js new file mode 100644 index 00000000..e7ebc643 --- /dev/null +++ b/build/lib/components/navigation/PageTree/PageSearch.js @@ -0,0 +1,30 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.PageSearch = void 0; +class PageSearch { + constructor(pageTree) { + this.pageTree = pageTree; + } + query(query) { + const queryWords = query. + split(' '). + filter((word) => word !== ''); + const patterns = queryWords.map((word) => { + const pattern = new RegExp(`(\\b${word})`, 'iu'); + return pattern; + }); + const results = this.pageTree.itemsFlat.filter((item) => { + let occurences = 0; + for (const pattern of patterns) { + if (pattern.test(item.title) || + pattern.test(item.keywordsAsString) || + pattern.test(item.breadcrumbsAsString)) { + occurences += 1; + } + } + return occurences === patterns.length; + }); + return results; + } +} +exports.PageSearch = PageSearch; diff --git a/build/lib/components/navigation/PageTree/PageTreeItem.d.ts b/build/lib/components/navigation/PageTree/PageTreeItem.d.ts new file mode 100644 index 00000000..cbc9659d --- /dev/null +++ b/build/lib/components/navigation/PageTree/PageTreeItem.d.ts @@ -0,0 +1,5 @@ +export interface PageTreeItem { + title: string; + keywords?: string[]; + children?: PageTreeItem[]; +} diff --git a/build/lib/components/navigation/PageTree/PageTreeItem.js b/build/lib/components/navigation/PageTree/PageTreeItem.js new file mode 100644 index 00000000..c8ad2e54 --- /dev/null +++ b/build/lib/components/navigation/PageTree/PageTreeItem.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/build/lib/components/navigation/PageTree/PageTreeItemWithMetadata.d.ts b/build/lib/components/navigation/PageTree/PageTreeItemWithMetadata.d.ts new file mode 100644 index 00000000..0cabcf93 --- /dev/null +++ b/build/lib/components/navigation/PageTree/PageTreeItemWithMetadata.d.ts @@ -0,0 +1,9 @@ +import { PageTreeItem } from './PageTreeItem'; +export interface PageTreeItemWithMetadata extends PageTreeItem { + slug: string; + keywordsAsString?: string; + path: string; + children?: PageTreeItemWithMetadata[]; + breadcrumbs?: string[]; + breadcrumbsAsString?: string; +} diff --git a/build/lib/components/navigation/PageTree/PageTreeItemWithMetadata.js b/build/lib/components/navigation/PageTree/PageTreeItemWithMetadata.js new file mode 100644 index 00000000..c8ad2e54 --- /dev/null +++ b/build/lib/components/navigation/PageTree/PageTreeItemWithMetadata.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/build/lib/components/navigation/PageTree/index.d.ts b/build/lib/components/navigation/PageTree/index.d.ts new file mode 100644 index 00000000..013ac4db --- /dev/null +++ b/build/lib/components/navigation/PageTree/index.d.ts @@ -0,0 +1,16 @@ +import { PageTreeItem } from './PageTreeItem'; +import { PageTreeItemWithMetadata } from './PageTreeItemWithMetadata'; +declare class PageTree { + private readonly originalItem; + private readonly basePath; + readonly items: PageTreeItemWithMetadata[]; + readonly itemsFlat: PageTreeItemWithMetadata[]; + constructor({ items, basePath }: { + items: PageTreeItem[]; + basePath?: string; + }); + private buildMetaData; + private buildFlatItems; + getPageItemByPath(path: string): PageTreeItemWithMetadata | undefined; +} +export { PageTree }; diff --git a/build/lib/components/navigation/PageTree/index.js b/build/lib/components/navigation/PageTree/index.js new file mode 100644 index 00000000..28e80c67 --- /dev/null +++ b/build/lib/components/navigation/PageTree/index.js @@ -0,0 +1,58 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.PageTree = void 0; +const services_1 = require("../../../services"); +class PageTree { + constructor({ items, basePath = '' }) { + this.originalItem = items; + this.basePath = basePath; + this.items = this.buildMetaData(this.originalItem, basePath, []); + this.itemsFlat = this.buildFlatItems(this.items); + } + buildMetaData(items, path, breadcrumbs) { + const itemsWithMetadata = items.map((item) => { + var _a; + const slug = (0, services_1.slugify)(item.title); + const breadcrumbsForItem = [...breadcrumbs, item.title]; + const breadcrumbsAsString = breadcrumbsForItem.join(' '); + const keywordsAsString = (_a = item.keywords) === null || _a === void 0 ? void 0 : _a.join(' '); + if (item.children) { + return { + ...item, + slug, + path: `${path}/${slug}`, + breadcrumbs: breadcrumbsForItem, + children: this.buildMetaData(item.children, `${path}/${slug}`, breadcrumbsForItem) + }; + } + return { + title: item.title, + slug, + path: `${path}/${slug}`, + breadcrumbs: breadcrumbsForItem, + breadcrumbsAsString, + keywordsAsString, + keywords: item.keywords + }; + }); + return itemsWithMetadata; + } + buildFlatItems(itemsAsTree) { + const flattenedItems = []; + for (const item of itemsAsTree) { + if (item.children) { + flattenedItems.push(...this.buildFlatItems(item.children)); + } + else { + flattenedItems.push({ ...item }); + } + } + return flattenedItems; + } + getPageItemByPath(path) { + const pathWithoutTrailingSlash = path.endsWith('/') ? path.slice(0, Math.max(0, path.length - 1)) : path; + const foundItem = this.itemsFlat.find((item) => item.path === pathWithoutTrailingSlash); + return foundItem; + } +} +exports.PageTree = PageTree; diff --git a/build/lib/components/navigation/useRouteChange/index.d.ts b/build/lib/components/navigation/useRouteChange/index.d.ts new file mode 100644 index 00000000..8b13bbfb --- /dev/null +++ b/build/lib/components/navigation/useRouteChange/index.d.ts @@ -0,0 +1,2 @@ +declare const useRouteChange: (onChange: (url: string) => void, dependencies?: any[]) => void; +export { useRouteChange }; diff --git a/build/lib/components/navigation/useRouteChange/index.js b/build/lib/components/navigation/useRouteChange/index.js new file mode 100644 index 00000000..be0c5c42 --- /dev/null +++ b/build/lib/components/navigation/useRouteChange/index.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.useRouteChange = void 0; +const router_1 = require("next/router"); +const react_1 = require("react"); +const useRouteChange = (onChange, dependencies) => { + const handleRouteChange = (url) => { + onChange(url); + }; + (0, react_1.useEffect)(() => { + router_1.Router.events.on('routeChangeComplete', handleRouteChange); + return () => { + router_1.Router.events.off('routeChangeComplete', handleRouteChange); + }; + }, dependencies); +}; +exports.useRouteChange = useRouteChange; diff --git a/build/lib/components/roots/Application/Documentation.d.ts b/build/lib/components/roots/Application/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/roots/Application/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/roots/Application/Documentation.js b/build/lib/components/roots/Application/Documentation.js new file mode 100644 index 00000000..a7fff361 --- /dev/null +++ b/build/lib/components/roots/Application/Documentation.js @@ -0,0 +1,29 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../../components/documentation/ComponentPreview"); +const __1 = require("../../.."); +const react_1 = __importDefault(require("react")); +const Documentation = () => (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "Application"), + react_1.default.createElement(__1.Paragraph, null, + "The ", + react_1.default.createElement("code", null, "Application"), + " component acts as your application root. It will make sure the most basic things like fonts are available to you."), + react_1.default.createElement(__1.Paragraph, null, + "As it represents the application root, it positions itself absolutely in its parent element, so make sure to set the parent's ", + react_1.default.createElement("code", null, "position"), + " property to ", + react_1.default.createElement("code", null, "relative"), + ". Also, this means that any scrolling is disabled, since you don't typically want to have this at the root-level. If you need any parts of the UI to scroll, use a ", + react_1.default.createElement("code", null, "Container"), + " component."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement("div", { style: { position: 'relative', width: '100%', height: 300, border: '1px solid black' } }, + react_1.default.createElement(__1.Application, null, + react_1.default.createElement(__1.Container, { background: 'dark' }, "Sidebar view"), + react_1.default.createElement(__1.Container, { background: 'none' }, "Content view")))))); +exports.Documentation = Documentation; diff --git a/build/lib/components/roots/Application/index.d.ts b/build/lib/components/roots/Application/index.d.ts new file mode 100644 index 00000000..4314575f --- /dev/null +++ b/build/lib/components/roots/Application/index.d.ts @@ -0,0 +1,10 @@ +import { FunctionComponent } from 'react'; +interface ApplicationProps { + id?: string; + className?: string; + useDialogs?: boolean; + useNotifications?: boolean; + style?: any; +} +declare const Application: FunctionComponent; +export { Application }; diff --git a/build/lib/components/roots/Application/index.js b/build/lib/components/roots/Application/index.js new file mode 100644 index 00000000..0341ed77 --- /dev/null +++ b/build/lib/components/roots/Application/index.js @@ -0,0 +1,23 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Application = void 0; +const styles_1 = require("./styles"); +const styles_2 = require("../../../styles"); +const __1 = require("../../.."); +const react_1 = __importDefault(require("react")); +const useStyles = (0, styles_2.createUseStyles)(styles_1.styles); +const Application = ({ id, children, className, style, useDialogs = true, useNotifications = true }) => { + const classes = useStyles(); + const componentClasses = (0, styles_2.classNames)(classes.Application, className); + return (react_1.default.createElement("div", { id: id, className: componentClasses, style: style }, + react_1.default.createElement("span", { suppressHydrationWarning: true }, + react_1.default.createElement(__1.Icons, null), + useDialogs ? react_1.default.createElement(__1.Dialogs, null) : null, + useNotifications ? react_1.default.createElement(__1.Notifications, null) : null), + react_1.default.createElement("div", { className: classes.ApplicationLayout }, children))); +}; +exports.Application = Application; +Application.displayName = 'Application'; diff --git a/build/lib/components/roots/Application/styles.d.ts b/build/lib/components/roots/Application/styles.d.ts new file mode 100644 index 00000000..13d2da8a --- /dev/null +++ b/build/lib/components/roots/Application/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames } from '../../..'; +export type ApplicationClassNames = 'Application' | 'ApplicationLayout'; +declare const styles: ComponentClassNames; +export { styles }; diff --git a/build/lib/components/roots/Application/styles.js b/build/lib/components/roots/Application/styles.js new file mode 100644 index 00000000..d7ef2eeb --- /dev/null +++ b/build/lib/components/roots/Application/styles.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = { + Application: { + position: 'absolute !important', + left: 0, + top: 0, + right: 0, + bottom: 0 + }, + ApplicationLayout: { + height: '100%', + display: 'grid', + // We define two columns: the first one for the sidebar and the second one for the content. + gridTemplateColumns: 'auto 1fr', + gridTemplateRows: '1fr' + } +}; +exports.styles = styles; diff --git a/build/lib/components/roots/StyleCollector/index.d.ts b/build/lib/components/roots/StyleCollector/index.d.ts new file mode 100644 index 00000000..1cee724c --- /dev/null +++ b/build/lib/components/roots/StyleCollector/index.d.ts @@ -0,0 +1,7 @@ +import { ServerSideStyles } from '../../../styles'; +import { FunctionComponent } from 'react'; +interface StyleCollectorProps { + serverSideStyles: ServerSideStyles; +} +declare const StyleCollector: FunctionComponent; +export { StyleCollector }; diff --git a/build/lib/components/roots/StyleCollector/index.js b/build/lib/components/roots/StyleCollector/index.js new file mode 100644 index 00000000..262c8951 --- /dev/null +++ b/build/lib/components/roots/StyleCollector/index.js @@ -0,0 +1,14 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StyleCollector = void 0; +const react_jss_1 = require("react-jss"); +const react_1 = __importDefault(require("react")); +const StyleCollector = ({ children, serverSideStyles }) => { + const { registry, generateId } = serverSideStyles; + return (react_1.default.createElement(react_jss_1.JssProvider, { registry: registry, generateId: generateId }, children)); +}; +exports.StyleCollector = StyleCollector; +StyleCollector.displayName = 'StyleCollector'; diff --git a/build/lib/components/roots/ThemeProvider/Documentation.d.ts b/build/lib/components/roots/ThemeProvider/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/roots/ThemeProvider/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/roots/ThemeProvider/Documentation.js b/build/lib/components/roots/ThemeProvider/Documentation.js new file mode 100644 index 00000000..30467846 --- /dev/null +++ b/build/lib/components/roots/ThemeProvider/Documentation.js @@ -0,0 +1,43 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../../components/documentation/ComponentPreview"); +const __1 = require("../../.."); +const react_1 = __importDefault(require("react")); +const Documentation = () => (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "ThemeProvider"), + react_1.default.createElement(__1.Paragraph, null, + "Use the ", + react_1.default.createElement("code", null, "ThemeProvider"), + " to set the theme for nested components. It is required at the top level of your application or website. It can be nested so that one part of your component tree can have a different theme than other parts of your application."), + react_1.default.createElement(__1.Paragraph, null, + "By default the ", + react_1.default.createElement("code", null, "ThemeProvider"), + " will use the default theme called ", + react_1.default.createElement("code", null, "TheNativeWeb"), + ". To apply the wolkenkit theme, import the ", + react_1.default.createElement("code", null, "themes"), + " object and pass a new instance of ", + react_1.default.createElement("code", null, "themes.Wolkenkit"), + " as the ", + react_1.default.createElement("code", null, "theme"), + " property."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement("div", { style: { position: 'relative', width: '100%', height: '100%', border: '1px solid black' } }, + react_1.default.createElement(__1.ThemeProvider, { theme: new __1.themes.Wolkenkit() }, + react_1.default.createElement(__1.Application, { useNotifications: false, useDialogs: false }, + react_1.default.createElement(__1.Sidebar, null, + react_1.default.createElement(__1.SidebarBrand, null, + react_1.default.createElement(__1.Product, { name: 'my-app' })), + react_1.default.createElement(__1.SidebarItem, { iconName: 'account' }, + react_1.default.createElement(__1.SidebarItem, null, "You are logged in as Sophie"), + react_1.default.createElement(__1.SidebarItem, null, "Logout")), + react_1.default.createElement(__1.SidebarItem, { iconName: 'menu', isActive: true }), + react_1.default.createElement(__1.SidebarItem, { iconName: 'help' }), + react_1.default.createElement(__1.SidebarFooter, null, + react_1.default.createElement(__1.Brand, { type: 'minimal', color: 'monochrome' }))), + react_1.default.createElement(__1.Container, { background: 'light' }, "My content panel"))))))); +exports.Documentation = Documentation; diff --git a/build/lib/components/roots/ThemeProvider/index.d.ts b/build/lib/components/roots/ThemeProvider/index.d.ts new file mode 100644 index 00000000..8dba77a4 --- /dev/null +++ b/build/lib/components/roots/ThemeProvider/index.d.ts @@ -0,0 +1,7 @@ +import { Theme } from '../../..'; +import { FunctionComponent } from 'react'; +interface ThemeProviderProps { + theme?: Theme; +} +declare const ThemeProvider: FunctionComponent; +export { ThemeProvider }; diff --git a/build/lib/components/roots/ThemeProvider/index.js b/build/lib/components/roots/ThemeProvider/index.js new file mode 100644 index 00000000..a34d23c7 --- /dev/null +++ b/build/lib/components/roots/ThemeProvider/index.js @@ -0,0 +1,12 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ThemeProvider = void 0; +const react_jss_1 = require("react-jss"); +const themes_1 = require("../../../themes"); +const react_1 = __importDefault(require("react")); +const ThemeProvider = ({ theme = new themes_1.themes.TheNativeWeb(), children }) => (react_1.default.createElement(react_jss_1.ThemeProvider, { theme: theme }, children)); +exports.ThemeProvider = ThemeProvider; +ThemeProvider.displayName = 'ThemeProvider'; diff --git a/build/lib/components/roots/Website/Documentation.d.ts b/build/lib/components/roots/Website/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/roots/Website/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/roots/Website/Documentation.js b/build/lib/components/roots/Website/Documentation.js new file mode 100644 index 00000000..2d7eeaf1 --- /dev/null +++ b/build/lib/components/roots/Website/Documentation.js @@ -0,0 +1,25 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../../components/documentation/ComponentPreview"); +const __1 = require("../../.."); +const react_1 = __importDefault(require("react")); +const Documentation = () => (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "Website"), + react_1.default.createElement(__1.Paragraph, null, + "The ", + react_1.default.createElement("code", null, "Website"), + " component acts as your root componenent when building a content-driven, grid-based communication website. It will make sure the most basic things like fonts are available to you."), + react_1.default.createElement(__1.Paragraph, null, + "If you're building an interaction-driven application use the ", + react_1.default.createElement("code", null, "Application"), + " component as your root component instead."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(__1.Website, null, + react_1.default.createElement("header", null, "This header has the right font"), + react_1.default.createElement("article", null, "This is an article"), + react_1.default.createElement("footer", null, "And this is the footer"))))); +exports.Documentation = Documentation; diff --git a/build/lib/components/roots/Website/index.d.ts b/build/lib/components/roots/Website/index.d.ts new file mode 100644 index 00000000..e74e3dd9 --- /dev/null +++ b/build/lib/components/roots/Website/index.d.ts @@ -0,0 +1,8 @@ +import { FunctionComponent } from 'react'; +interface WebsiteProps { + id?: string; + useDialogs?: boolean; + useNotifications?: boolean; +} +declare const Website: FunctionComponent; +export { Website }; diff --git a/build/lib/components/roots/Website/index.js b/build/lib/components/roots/Website/index.js new file mode 100644 index 00000000..a7057e53 --- /dev/null +++ b/build/lib/components/roots/Website/index.js @@ -0,0 +1,46 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Website = void 0; +const __1 = require("../../.."); +const react_1 = __importStar(require("react")); +const Website = ({ children, id, useDialogs = false, useNotifications = false }) => (react_1.default.createElement(react_1.Fragment, null, + react_1.default.createElement("span", { id: id, suppressHydrationWarning: true }, + react_1.default.createElement(__1.Icons, null), + useDialogs ? react_1.default.createElement(__1.Dialogs, null) : null, + useNotifications ? react_1.default.createElement(__1.Notifications, null) : null), + children)); +exports.Website = Website; +Website.displayName = 'Website'; diff --git a/build/lib/components/typography/Headline/Documentation.d.ts b/build/lib/components/typography/Headline/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/typography/Headline/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/typography/Headline/Documentation.js b/build/lib/components/typography/Headline/Documentation.js new file mode 100644 index 00000000..800fbd5b --- /dev/null +++ b/build/lib/components/typography/Headline/Documentation.js @@ -0,0 +1,29 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../../components/documentation/ComponentPreview"); +const __1 = require("../../.."); +const react_1 = __importDefault(require("react")); +const Documentation = () => (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "Headline"), + react_1.default.createElement(__1.Paragraph, null, + "Use the ", + react_1.default.createElement("code", null, "Headline"), + " component and its ", + react_1.default.createElement("code", null, "level"), + " (ranging from 1 to 5) property to structure long textual content. If possible, stick to a maximum level of 3."), + react_1.default.createElement(__1.Paragraph, null, + "By default every ", + react_1.default.createElement("code", null, "Headline"), + " renders a permalink that appears when you hover hover it. It can be used to link to a specific headline."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement("div", { style: { paddingLeft: 20 } }, + react_1.default.createElement(__1.Headline, { level: '1' }, "Level 1"), + react_1.default.createElement(__1.Headline, { level: '2' }, "Level 2"), + react_1.default.createElement(__1.Headline, { level: '3' }, "Level 3"), + react_1.default.createElement(__1.Headline, { level: '4' }, "Level 4"), + react_1.default.createElement(__1.Headline, { level: '5' }, "Level 5"))))); +exports.Documentation = Documentation; diff --git a/build/lib/components/typography/Headline/index.d.ts b/build/lib/components/typography/Headline/index.d.ts new file mode 100644 index 00000000..8ff4aec5 --- /dev/null +++ b/build/lib/components/typography/Headline/index.d.ts @@ -0,0 +1,11 @@ +import { CSSProperties, FunctionComponent } from 'react'; +interface HeadlineProps { + id?: string; + level?: '1' | '2' | '3' | '4' | '5'; + children: string; + style?: CSSProperties; + textAlign?: 'left' | 'center'; + withPermalink?: boolean; +} +declare const Headline: FunctionComponent; +export { Headline }; diff --git a/build/lib/components/typography/Headline/index.js b/build/lib/components/typography/Headline/index.js new file mode 100644 index 00000000..109e0b31 --- /dev/null +++ b/build/lib/components/typography/Headline/index.js @@ -0,0 +1,41 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Headline = void 0; +const __1 = require("../../.."); +const styles_1 = require("../../../styles"); +const styles_2 = require("./styles"); +const react_1 = __importDefault(require("react")); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const Headline = ({ children, id, level = '1', style, textAlign = 'left', withPermalink = true }) => { + const classes = useStyles(); + const componentClasses = (0, styles_1.classNames)(classes.Headline, { + [classes.Level1]: level === '1', + [classes.Level2]: level === '2', + [classes.Level3]: level === '3', + [classes.Level4]: level === '4', + [classes.Level5]: level === '5', + [classes.TextAlignLeft]: textAlign === 'left', + [classes.TextAlignCenter]: textAlign === 'center' + }); + const slug = (0, __1.slugify)(children); + return react_1.default.createElement(`h${level}`, { + className: componentClasses, + id: id !== null && id !== void 0 ? id : slug, + style + }, [ + withPermalink ? + react_1.default.createElement(`a`, { + className: classes.Permalink, + 'aria-hidden': true, + href: `#${id !== null && id !== void 0 ? id : slug}`, + key: 'permalink' + }, '#') : + null, + children + ]); +}; +exports.Headline = Headline; +Headline.displayName = 'Headline'; diff --git a/build/lib/components/typography/Headline/styles.d.ts b/build/lib/components/typography/Headline/styles.d.ts new file mode 100644 index 00000000..54ae98a6 --- /dev/null +++ b/build/lib/components/typography/Headline/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type HeadlineClassNames = 'Headline' | 'Permalink' | 'Level1' | 'Level2' | 'Level3' | 'Level4' | 'Level5' | 'TextAlignLeft' | 'TextAlignCenter'; +declare const getStyles: (theme: Theme) => ComponentClassNames; +export { getStyles as styles }; diff --git a/build/lib/components/typography/Headline/styles.js b/build/lib/components/typography/Headline/styles.js new file mode 100644 index 00000000..72c588ff --- /dev/null +++ b/build/lib/components/typography/Headline/styles.js @@ -0,0 +1,92 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const getStyles = (theme) => ({ + Headline: { + fontFamily: theme.font.family.default, + opacity: 0.95, + padding: 0, + margin: 0, + position: 'relative', + '&:hover $Permalink': { + color: theme.color.brand.highlight + } + }, + Permalink: { + fontSize: `1em`, + color: theme.color.content.background, + fontWeight: '600 !important', + textDecoration: 'none', + paddingRight: `${theme.space(2)}px`, + '&:visited': { + color: `${theme.color.content.background}` + } + }, + Level1: { + fontSize: theme.font.size.xxl, + fontWeight: 600, + margin: `${theme.space(4)}px 0 ${theme.space(2)}px 0`, + marginBottom: `${theme.space(2)}px` + }, + Level2: { + fontSize: theme.font.size.xl, + fontWeight: 600, + margin: `${theme.space(4)}px 0 ${theme.space(1)}px 0` + }, + Level3: { + fontSize: theme.font.size.lg, + fontWeight: 600, + margin: `${theme.space(2)}px 0 ${theme.space(1)}px 0` + }, + Level4: { + fontSize: theme.font.size.md, + fontWeight: 700, + margin: `${theme.space(1)}px 0 ${theme.space(0)}px 0` + }, + Level5: { + fontSize: theme.font.size.md, + fontWeight: 600, + margin: `${theme.space(1)}px 0 ${theme.space(0)}px 0` + }, + TextAlignLeft: { + textAlign: 'left' + }, + TextAlignCenter: { + textAlign: 'center' + }, + [theme.breakpoints.down('sm')]: { + Permalink: { + position: 'relative', + display: 'inline', + color: `${theme.color.brand.highlight} !important`, + paddingRight: `${theme.space(0.5)}px` + }, + Level1: { + fontSize: theme.font.size.xl, + '&:first-of-type': { + marginTop: `${theme.space(3)}px` + } + }, + Level2: { + fontSize: theme.font.size.lg + }, + Level3: { + fontSize: theme.font.size.lg + }, + Level4: { + fontSize: theme.font.size.lg + }, + Level5: { + fontSize: theme.font.size.lg + } + }, + [theme.breakpoints.up('sm')]: { + Permalink: { + position: 'absolute', + display: 'block', + left: `-0.7em`, + top: '0' + } + } +}); +exports.styles = getStyles; diff --git a/build/lib/components/typography/Label/index.d.ts b/build/lib/components/typography/Label/index.d.ts new file mode 100644 index 00000000..7a09b1d1 --- /dev/null +++ b/build/lib/components/typography/Label/index.d.ts @@ -0,0 +1,7 @@ +import { FunctionComponent } from 'react'; +interface LabelProps { + className?: string; + id?: string; +} +declare const Label: FunctionComponent; +export { Label }; diff --git a/build/lib/components/typography/Label/index.js b/build/lib/components/typography/Label/index.js new file mode 100644 index 00000000..8d17a6be --- /dev/null +++ b/build/lib/components/typography/Label/index.js @@ -0,0 +1,16 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Label = void 0; +const styles_1 = require("../../../styles"); +const styles_2 = require("./styles"); +const react_1 = __importDefault(require("react")); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const Label = function ({ children, className, id }) { + const classes = useStyles(); + return (react_1.default.createElement("div", { id: id, className: (0, styles_1.classNames)(classes.Label, className) }, children)); +}; +exports.Label = Label; +Label.displayName = 'Label'; diff --git a/build/lib/components/typography/Label/styles.d.ts b/build/lib/components/typography/Label/styles.d.ts new file mode 100644 index 00000000..6a6a34fe --- /dev/null +++ b/build/lib/components/typography/Label/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames } from '../../..'; +export type LabelClassNames = 'Label'; +declare const styles: ComponentClassNames; +export { styles }; diff --git a/build/lib/components/typography/Label/styles.js b/build/lib/components/typography/Label/styles.js new file mode 100644 index 00000000..e1edda27 --- /dev/null +++ b/build/lib/components/typography/Label/styles.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = { + Label: { + display: 'block', + flexGrow: 1, + flexShrink: 1, + overflow: 'hidden', + textOverflow: 'ellipsis', + whiteSpace: 'nowrap', + color: 'inherit' + } +}; +exports.styles = styles; diff --git a/build/lib/components/typography/Paragraph/Documentation.d.ts b/build/lib/components/typography/Paragraph/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/typography/Paragraph/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/typography/Paragraph/Documentation.js b/build/lib/components/typography/Paragraph/Documentation.js new file mode 100644 index 00000000..bec328ab --- /dev/null +++ b/build/lib/components/typography/Paragraph/Documentation.js @@ -0,0 +1,32 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../../components/documentation/ComponentPreview"); +const __1 = require("../../.."); +const react_1 = __importDefault(require("react")); +const Documentation = () => (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "Paragraph"), + react_1.default.createElement(__1.Paragraph, null, + "If you need to display longer running text that also may contain ", + react_1.default.createElement("code", null, "strong"), + ", ", + react_1.default.createElement("code", null, "em"), + " and ", + react_1.default.createElement("code", null, "code"), + " tags use the ", + react_1.default.createElement("code", null, "Paragraph"), + " commponent."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Paragraph, null, + react_1.default.createElement("em", null, "Emphasized lorem ipsum"), + " dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. ", + react_1.default.createElement("strong", null, "Strong lorem ipsum"), + " dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet."), + react_1.default.createElement(__1.Paragraph, null, + react_1.default.createElement("code", null, "Codified lorem ipsum"), + " dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum."))))); +exports.Documentation = Documentation; diff --git a/build/lib/components/typography/Paragraph/index.d.ts b/build/lib/components/typography/Paragraph/index.d.ts new file mode 100644 index 00000000..041efc09 --- /dev/null +++ b/build/lib/components/typography/Paragraph/index.d.ts @@ -0,0 +1,8 @@ +import { CSSProperties, FunctionComponent } from 'react'; +interface ParagraphProps { + className?: string; + id?: string; + style?: CSSProperties; +} +declare const Paragraph: FunctionComponent; +export { Paragraph }; diff --git a/build/lib/components/typography/Paragraph/index.js b/build/lib/components/typography/Paragraph/index.js new file mode 100644 index 00000000..9c9d1858 --- /dev/null +++ b/build/lib/components/typography/Paragraph/index.js @@ -0,0 +1,17 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Paragraph = void 0; +const styles_1 = require("../../../styles"); +const styles_2 = require("./styles"); +const react_1 = __importDefault(require("react")); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const Paragraph = ({ className, children, id, style }) => { + const classes = useStyles(); + const componentClasses = (0, styles_1.classNames)(classes.Paragraph, className); + return (react_1.default.createElement("p", { id: id, className: componentClasses, style: style }, children)); +}; +exports.Paragraph = Paragraph; +Paragraph.displayName = 'Paragraph'; diff --git a/build/lib/components/typography/Paragraph/styles.d.ts b/build/lib/components/typography/Paragraph/styles.d.ts new file mode 100644 index 00000000..9dd22ee6 --- /dev/null +++ b/build/lib/components/typography/Paragraph/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type ParagraphClassNames = 'Paragraph'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/typography/Paragraph/styles.js b/build/lib/components/typography/Paragraph/styles.js new file mode 100644 index 00000000..9f6a911f --- /dev/null +++ b/build/lib/components/typography/Paragraph/styles.js @@ -0,0 +1,51 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const color_1 = __importDefault(require("color")); +const styles = (theme) => ({ + Paragraph: { + color: 'inherit', + fontFamily: theme.font.family.default, + maxWidth: theme.components.Paragraph.maxWidth, + fontWeight: 300, + '& code': { + fontFamily: theme.font.family.code, + padding: '0.125em 0.2em', + fontSize: '95%', + backgroundColor: (0, color_1.default)(theme.color.brand.gray). + fade(0.92). + rgb(). + string(), + borderRadius: 0, + '& a:link, & a:visited': { + fontFamily: 'inherit', + color: (0, color_1.default)(theme.color.brand.highlight). + darken(0.1). + rgb(). + string() + } + }, + '& strong': { + fontWeight: 600 + }, + '& em': { + fontStyle: 'italic' + } + }, + [theme.breakpoints.up('xs')]: { + Paragraph: { + margin: `${theme.space(1)}px 0`, + fontSize: theme.font.size.md + } + }, + [theme.breakpoints.up('md')]: { + Paragraph: { + margin: `${theme.space(2)}px 0 ${theme.space(2)}px 0`, + fontSize: theme.font.size.lg + } + } +}); +exports.styles = styles; diff --git a/build/lib/components/typography/Text/Documentation.d.ts b/build/lib/components/typography/Text/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/components/typography/Text/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/components/typography/Text/Documentation.js b/build/lib/components/typography/Text/Documentation.js new file mode 100644 index 00000000..8a7bf345 --- /dev/null +++ b/build/lib/components/typography/Text/Documentation.js @@ -0,0 +1,33 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const ComponentPreview_1 = require("../../../components/documentation/ComponentPreview"); +const __1 = require("../../.."); +const react_1 = __importDefault(require("react")); +const Documentation = () => (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "Text"), + react_1.default.createElement(__1.Paragraph, null, + "Whenever you would like to display text inside your application, use the ", + react_1.default.createElement("code", null, "Text"), + " component as it applies consistent font styling."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Text, null, "This is medium text"), + react_1.default.createElement(__1.Text, { size: 'sm' }, "This is small text"))), + react_1.default.createElement(__1.Paragraph, null, "The component also ensures that text will be abbreviated, if the parent component does not hold enough space:"), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement("div", { style: { width: 100, overflow: 'hidden' } }, + react_1.default.createElement(__1.Text, null, "This text will be abbreviated."))), + react_1.default.createElement(__1.Paragraph, null, + "This means by default text will not be wrapped into new lines. To change this default behaviour set the ", + react_1.default.createElement("code", null, "breakLines"), + " option to ", + react_1.default.createElement("code", null, "true"), + "."), + react_1.default.createElement(ComponentPreview_1.ComponentPreview, null, + react_1.default.createElement("div", { style: { width: 100, overflow: 'hidden' } }, + react_1.default.createElement(__1.Text, { breakLines: true }, "This text will be broken into several lines."))))); +exports.Documentation = Documentation; diff --git a/build/lib/components/typography/Text/index.d.ts b/build/lib/components/typography/Text/index.d.ts new file mode 100644 index 00000000..ee4237f4 --- /dev/null +++ b/build/lib/components/typography/Text/index.d.ts @@ -0,0 +1,11 @@ +import { CSSProperties, FunctionComponent } from 'react'; +interface TextProps { + adjust?: 'flex' | 'auto'; + breakLines?: boolean; + className?: string; + id?: string; + size?: 'sm' | 'md'; + style?: CSSProperties; +} +declare const Text: FunctionComponent; +export { Text }; diff --git a/build/lib/components/typography/Text/index.js b/build/lib/components/typography/Text/index.js new file mode 100644 index 00000000..ae9a09cc --- /dev/null +++ b/build/lib/components/typography/Text/index.js @@ -0,0 +1,23 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Text = void 0; +const styles_1 = require("../../../styles"); +const react_1 = __importDefault(require("react")); +const styles_2 = require("./styles"); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const Text = ({ adjust = 'auto', breakLines = false, className, children, id, size = 'md', style }) => { + const classes = useStyles(); + const componentClasses = (0, styles_1.classNames)(classes.Text, { + [classes.BreakLines]: breakLines, + [classes.AdjustFlex]: adjust === 'flex', + [classes.AdjustAuto]: adjust === 'auto', + [classes.SizeSm]: size === 'sm', + [classes.SizeMd]: size === 'md' + }, className); + return (react_1.default.createElement("div", { id: id, className: componentClasses, style: style }, children)); +}; +exports.Text = Text; +Text.displayName = 'Text'; diff --git a/build/lib/components/typography/Text/styles.d.ts b/build/lib/components/typography/Text/styles.d.ts new file mode 100644 index 00000000..8bcfb248 --- /dev/null +++ b/build/lib/components/typography/Text/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../../..'; +export type TextClassNames = 'Text' | 'AdjustAuto' | 'AdjustFlex' | 'SizeMd' | 'SizeSm' | 'BreakLines'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/components/typography/Text/styles.js b/build/lib/components/typography/Text/styles.js new file mode 100644 index 00000000..b4da18b8 --- /dev/null +++ b/build/lib/components/typography/Text/styles.js @@ -0,0 +1,30 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const styles = (theme) => ({ + Text: { + display: 'block', + overflow: 'hidden', + textOverflow: 'ellipsis', + whiteSpace: 'nowrap', + color: 'inherit', + fontFamily: theme.font.family.default + }, + AdjustAuto: {}, + AdjustFlex: { + flexGrow: 1, + flexShrink: 1 + }, + SizeMd: { + padding: `${theme.space(1)}px 0`, + fontSize: theme.font.size.md + }, + SizeSm: { + padding: `${theme.space(1)}px 0`, + fontSize: theme.font.size.sm + }, + BreakLines: { + whiteSpace: 'normal' + } +}); +exports.styles = styles; diff --git a/build/lib/components/useAutoFocus.d.ts b/build/lib/components/useAutoFocus.d.ts new file mode 100644 index 00000000..af50c117 --- /dev/null +++ b/build/lib/components/useAutoFocus.d.ts @@ -0,0 +1,6 @@ +import { Ref } from 'react'; +declare const useAutoFocus: ({ isEnabled, delay }: { + isEnabled?: boolean | undefined; + delay?: number | undefined; +}) => Ref; +export { useAutoFocus }; diff --git a/build/lib/components/useAutoFocus.js b/build/lib/components/useAutoFocus.js new file mode 100644 index 00000000..7596e6c1 --- /dev/null +++ b/build/lib/components/useAutoFocus.js @@ -0,0 +1,25 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.useAutoFocus = void 0; +const react_1 = require("react"); +const useAutoFocus = ({ isEnabled = false, delay = 0 }) => { + const elementRef = (0, react_1.useRef)(null); + const handleFocusTimeout = (0, react_1.useCallback)(() => { + if (elementRef.current) { + elementRef.current.focus(); + } + }, []); + (0, react_1.useEffect)(() => { + let focusTimeout; + if (isEnabled) { + focusTimeout = setTimeout(handleFocusTimeout, delay); + } + return () => { + if (focusTimeout) { + clearTimeout(focusTimeout); + } + }; + }, []); + return elementRef; +}; +exports.useAutoFocus = useAutoFocus; diff --git a/build/lib/components/useForceUpdate.d.ts b/build/lib/components/useForceUpdate.d.ts new file mode 100644 index 00000000..1ac9f657 --- /dev/null +++ b/build/lib/components/useForceUpdate.d.ts @@ -0,0 +1,2 @@ +declare const useForceUpdate: () => () => void; +export { useForceUpdate }; diff --git a/build/lib/components/useForceUpdate.js b/build/lib/components/useForceUpdate.js new file mode 100644 index 00000000..cf006012 --- /dev/null +++ b/build/lib/components/useForceUpdate.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.useForceUpdate = void 0; +const react_1 = require("react"); +const useForceUpdate = () => { + const [, set] = (0, react_1.useState)(true); + return () => { + set((value) => !value); + }; +}; +exports.useForceUpdate = useForceUpdate; diff --git a/build/lib/createRedirect.d.ts b/build/lib/createRedirect.d.ts new file mode 100644 index 00000000..335c6d2e --- /dev/null +++ b/build/lib/createRedirect.d.ts @@ -0,0 +1,6 @@ +import { NextPage } from 'next'; +interface RedirectProps { + metaRedirect: boolean; +} +declare const createRedirect: (destination: string) => NextPage; +export { createRedirect }; diff --git a/build/lib/createRedirect.js b/build/lib/createRedirect.js new file mode 100644 index 00000000..26ee9f31 --- /dev/null +++ b/build/lib/createRedirect.js @@ -0,0 +1,31 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.createRedirect = void 0; +const head_1 = __importDefault(require("next/head")); +const react_1 = __importDefault(require("react")); +const createRedirect = (destination) => { + if (!destination) { + throw new Error('Destination is missing.'); + } + const RedirectComponent = ({ metaRedirect }) => { + if (metaRedirect) { + return (react_1.default.createElement(head_1.default, null, + react_1.default.createElement("meta", { httpEquiv: 'refresh', content: `0; url=${destination}` }))); + } + return null; + }; + // eslint-disable-next-line @typescript-eslint/unbound-method + RedirectComponent.getInitialProps = function ({ res }) { + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition + if (res && res.writeHead) { + res.writeHead(302, { Location: destination }); + res.end(); + } + return { metaRedirect: true }; + }; + return RedirectComponent; +}; +exports.createRedirect = createRedirect; diff --git a/build/lib/index.d.ts b/build/lib/index.d.ts new file mode 100644 index 00000000..d830ba0a --- /dev/null +++ b/build/lib/index.d.ts @@ -0,0 +1,79 @@ +import animate from 'animejs'; +import { Application } from './components/roots/Application'; +import { Brand } from './components/branding/Brand'; +import { Breadcrumbs } from './components/navigation/Breadcrumbs'; +import { BusyIndicator } from './components/feedback/BusyIndicator'; +import { Button } from './components/input/Button'; +import { ButtonHint } from './components/input/ButtonHint'; +import { CheckBox } from './components/input/CheckBox'; +import { Code } from './components/documentation/Code'; +import color from 'color'; +import { ComponentClassNames } from './types/ComponentClassNames'; +import { Container } from './components/layout/Container'; +import { ControlGroup } from './components/forms/ControlGroup'; +import { ControlGroupDivider } from './components/forms/ControlGroupDivider'; +import { ControlGroupItem } from './components/forms/ControlGroupItem'; +import { createRedirect } from './createRedirect'; +import { Dialogs } from './components/feedback/Dialogs'; +import { DocumentationPage } from './layouts/DocumentationPage'; +import { Dropdown } from './components/input/Dropdown'; +import { Footer } from './components/layout/Footer'; +import { Form } from './components/forms/Form'; +import { FormActions } from './components/forms/FormActions'; +import { FormRow } from './components/forms/FormRow'; +import { getLanguageFromUrl } from './utils/getLanguageFromUrl'; +import { Grid } from './components/layout/Grid'; +import { GridItem } from './components/layout/GridItem'; +import { Headline } from './components/typography/Headline'; +import { HighlightText } from './components/feedback/HighlightText'; +import { HorizontalBar } from './components/layout/HorizontalBar'; +import { Icon } from './components/graphics/Icon'; +import { Icons } from './components/graphics/Icons'; +import { IconSize } from './types/IconSize'; +import { Label } from './components/typography/Label'; +import { Language } from './types/Language'; +import { LayoutComponent } from './types/LayoutComponent'; +import { Link } from './components/input/Link'; +import { LogoFull } from './components/graphics/LogoFull'; +import { LogoMinimal } from './components/graphics/LogoMinimal'; +import { LogoTheNativeWeb } from './components/graphics/LogoTheNativeWeb'; +import { LogoWolkenkit } from './components/graphics/LogoWolkenkit'; +import { MadeBy } from './components/branding/MadeBy'; +import { Message } from './components/feedback/Message'; +import { MobileToggle } from './components/navigation/MobileToggle'; +import { Modal } from './components/feedback/Modal'; +import { ModalRow } from './components/feedback/ModalRow'; +import { MultiLanguagePageTree } from './types/MultiLanguagePageTree'; +import { NextApp } from './NextApp'; +import { NextDocument } from './NextDocument'; +import { NonIdealState } from './components/feedback/NonIdealState'; +import { Notifications } from './components/feedback/Notifications'; +import { PageNavigation } from './components/navigation/PageNavigation'; +import { PageTree } from './components/navigation/PageTree'; +import { PageTreeItem } from './components/navigation/PageTree/PageTreeItem'; +import { PageTreeItemWithMetadata } from './components/navigation/PageTree/PageTreeItemWithMetadata'; +import { Paragraph } from './components/typography/Paragraph'; +import { Pattern } from './components/branding/Pattern'; +import { PoweredBy } from './components/branding/PoweredBy'; +import { Product } from './components/branding/Product'; +import { Sidebar } from './components/layout/Sidebar'; +import { SidebarBrand } from './components/layout/SidebarBrand'; +import { SidebarFooter } from './components/layout/SidebarFooter'; +import { SidebarItem } from './components/layout/SidebarItem'; +import { Space } from './components/layout/Space'; +import { StyleCollector } from './components/roots/StyleCollector'; +import { Tags } from './components/feedback/Tags'; +import { Text } from './components/typography/Text'; +import { TextArea } from './components/input/TextArea'; +import { TextBox } from './components/input/TextBox'; +import { ThemeProvider } from './components/roots/ThemeProvider'; +import { Toggle } from './components/input/Toggle'; +import { Transition } from './components/animation/Transition'; +import { TransitionGroup } from './components/animation/TransitionGroup'; +import { useRouteChange } from './components/navigation/useRouteChange'; +import { Website } from './components/roots/Website'; +import { classNames, createUseStyles, removeServerSideStyles, ServerSideStyles, StaticGlobalStyles, useDevice, useTheme } from './styles'; +import { dialogs, excecutionEnvironment, getPortalRootNode, notifications, slugify } from './services'; +import { Theme, themes } from './themes'; +export { animate, Application, Brand, Breadcrumbs, BusyIndicator, Button, ButtonHint, classNames, color, createUseStyles, CheckBox, Code, Container, ControlGroup, ControlGroupDivider, ControlGroupItem, createRedirect, dialogs, Dialogs, DocumentationPage, Dropdown, excecutionEnvironment, Form, FormActions, FormRow, Footer, getLanguageFromUrl, getPortalRootNode, Grid, GridItem, Headline, HighlightText, HorizontalBar, Icon, Icons, Label, Link, LogoFull, LogoMinimal, LogoTheNativeWeb, LogoWolkenkit, MadeBy, Message, MobileToggle, Modal, ModalRow, NextApp, NextDocument, NonIdealState, notifications, Notifications, PageNavigation, PageTree, Paragraph, Pattern, PoweredBy, Product, removeServerSideStyles, Sidebar, SidebarBrand, SidebarFooter, SidebarItem, slugify, Space, StyleCollector, ServerSideStyles, StaticGlobalStyles, Tags, Text, TextArea, TextBox, ThemeProvider, Theme, themes, Toggle, Transition, TransitionGroup, Website, useDevice, useTheme, useRouteChange }; +export type { ComponentClassNames, IconSize, Language, LayoutComponent, MultiLanguagePageTree, PageTreeItem, PageTreeItemWithMetadata }; diff --git a/build/lib/index.js b/build/lib/index.js new file mode 100644 index 00000000..d2a6082d --- /dev/null +++ b/build/lib/index.js @@ -0,0 +1,158 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.notifications = exports.NonIdealState = exports.NextDocument = exports.NextApp = exports.ModalRow = exports.Modal = exports.MobileToggle = exports.Message = exports.MadeBy = exports.LogoWolkenkit = exports.LogoTheNativeWeb = exports.LogoMinimal = exports.LogoFull = exports.Link = exports.Label = exports.Icons = exports.Icon = exports.HorizontalBar = exports.HighlightText = exports.Headline = exports.GridItem = exports.Grid = exports.getPortalRootNode = exports.getLanguageFromUrl = exports.Footer = exports.FormRow = exports.FormActions = exports.Form = exports.excecutionEnvironment = exports.Dropdown = exports.DocumentationPage = exports.Dialogs = exports.dialogs = exports.createRedirect = exports.ControlGroupItem = exports.ControlGroupDivider = exports.ControlGroup = exports.Container = exports.Code = exports.CheckBox = exports.createUseStyles = exports.color = exports.classNames = exports.ButtonHint = exports.Button = exports.BusyIndicator = exports.Breadcrumbs = exports.Brand = exports.Application = exports.animate = void 0; +exports.useRouteChange = exports.useTheme = exports.useDevice = exports.Website = exports.TransitionGroup = exports.Transition = exports.Toggle = exports.themes = exports.Theme = exports.ThemeProvider = exports.TextBox = exports.TextArea = exports.Text = exports.Tags = exports.StaticGlobalStyles = exports.ServerSideStyles = exports.StyleCollector = exports.Space = exports.slugify = exports.SidebarItem = exports.SidebarFooter = exports.SidebarBrand = exports.Sidebar = exports.removeServerSideStyles = exports.Product = exports.PoweredBy = exports.Pattern = exports.Paragraph = exports.PageTree = exports.PageNavigation = exports.Notifications = void 0; +const animejs_1 = __importDefault(require("animejs")); +exports.animate = animejs_1.default; +const Application_1 = require("./components/roots/Application"); +Object.defineProperty(exports, "Application", { enumerable: true, get: function () { return Application_1.Application; } }); +const Brand_1 = require("./components/branding/Brand"); +Object.defineProperty(exports, "Brand", { enumerable: true, get: function () { return Brand_1.Brand; } }); +const Breadcrumbs_1 = require("./components/navigation/Breadcrumbs"); +Object.defineProperty(exports, "Breadcrumbs", { enumerable: true, get: function () { return Breadcrumbs_1.Breadcrumbs; } }); +const BusyIndicator_1 = require("./components/feedback/BusyIndicator"); +Object.defineProperty(exports, "BusyIndicator", { enumerable: true, get: function () { return BusyIndicator_1.BusyIndicator; } }); +const Button_1 = require("./components/input/Button"); +Object.defineProperty(exports, "Button", { enumerable: true, get: function () { return Button_1.Button; } }); +const ButtonHint_1 = require("./components/input/ButtonHint"); +Object.defineProperty(exports, "ButtonHint", { enumerable: true, get: function () { return ButtonHint_1.ButtonHint; } }); +const CheckBox_1 = require("./components/input/CheckBox"); +Object.defineProperty(exports, "CheckBox", { enumerable: true, get: function () { return CheckBox_1.CheckBox; } }); +const Code_1 = require("./components/documentation/Code"); +Object.defineProperty(exports, "Code", { enumerable: true, get: function () { return Code_1.Code; } }); +const color_1 = __importDefault(require("color")); +exports.color = color_1.default; +const Container_1 = require("./components/layout/Container"); +Object.defineProperty(exports, "Container", { enumerable: true, get: function () { return Container_1.Container; } }); +const ControlGroup_1 = require("./components/forms/ControlGroup"); +Object.defineProperty(exports, "ControlGroup", { enumerable: true, get: function () { return ControlGroup_1.ControlGroup; } }); +const ControlGroupDivider_1 = require("./components/forms/ControlGroupDivider"); +Object.defineProperty(exports, "ControlGroupDivider", { enumerable: true, get: function () { return ControlGroupDivider_1.ControlGroupDivider; } }); +const ControlGroupItem_1 = require("./components/forms/ControlGroupItem"); +Object.defineProperty(exports, "ControlGroupItem", { enumerable: true, get: function () { return ControlGroupItem_1.ControlGroupItem; } }); +const createRedirect_1 = require("./createRedirect"); +Object.defineProperty(exports, "createRedirect", { enumerable: true, get: function () { return createRedirect_1.createRedirect; } }); +const Dialogs_1 = require("./components/feedback/Dialogs"); +Object.defineProperty(exports, "Dialogs", { enumerable: true, get: function () { return Dialogs_1.Dialogs; } }); +const DocumentationPage_1 = require("./layouts/DocumentationPage"); +Object.defineProperty(exports, "DocumentationPage", { enumerable: true, get: function () { return DocumentationPage_1.DocumentationPage; } }); +const Dropdown_1 = require("./components/input/Dropdown"); +Object.defineProperty(exports, "Dropdown", { enumerable: true, get: function () { return Dropdown_1.Dropdown; } }); +const Footer_1 = require("./components/layout/Footer"); +Object.defineProperty(exports, "Footer", { enumerable: true, get: function () { return Footer_1.Footer; } }); +const Form_1 = require("./components/forms/Form"); +Object.defineProperty(exports, "Form", { enumerable: true, get: function () { return Form_1.Form; } }); +const FormActions_1 = require("./components/forms/FormActions"); +Object.defineProperty(exports, "FormActions", { enumerable: true, get: function () { return FormActions_1.FormActions; } }); +const FormRow_1 = require("./components/forms/FormRow"); +Object.defineProperty(exports, "FormRow", { enumerable: true, get: function () { return FormRow_1.FormRow; } }); +const getLanguageFromUrl_1 = require("./utils/getLanguageFromUrl"); +Object.defineProperty(exports, "getLanguageFromUrl", { enumerable: true, get: function () { return getLanguageFromUrl_1.getLanguageFromUrl; } }); +const Grid_1 = require("./components/layout/Grid"); +Object.defineProperty(exports, "Grid", { enumerable: true, get: function () { return Grid_1.Grid; } }); +const GridItem_1 = require("./components/layout/GridItem"); +Object.defineProperty(exports, "GridItem", { enumerable: true, get: function () { return GridItem_1.GridItem; } }); +const Headline_1 = require("./components/typography/Headline"); +Object.defineProperty(exports, "Headline", { enumerable: true, get: function () { return Headline_1.Headline; } }); +const HighlightText_1 = require("./components/feedback/HighlightText"); +Object.defineProperty(exports, "HighlightText", { enumerable: true, get: function () { return HighlightText_1.HighlightText; } }); +const HorizontalBar_1 = require("./components/layout/HorizontalBar"); +Object.defineProperty(exports, "HorizontalBar", { enumerable: true, get: function () { return HorizontalBar_1.HorizontalBar; } }); +const Icon_1 = require("./components/graphics/Icon"); +Object.defineProperty(exports, "Icon", { enumerable: true, get: function () { return Icon_1.Icon; } }); +const Icons_1 = require("./components/graphics/Icons"); +Object.defineProperty(exports, "Icons", { enumerable: true, get: function () { return Icons_1.Icons; } }); +const Label_1 = require("./components/typography/Label"); +Object.defineProperty(exports, "Label", { enumerable: true, get: function () { return Label_1.Label; } }); +const Link_1 = require("./components/input/Link"); +Object.defineProperty(exports, "Link", { enumerable: true, get: function () { return Link_1.Link; } }); +const LogoFull_1 = require("./components/graphics/LogoFull"); +Object.defineProperty(exports, "LogoFull", { enumerable: true, get: function () { return LogoFull_1.LogoFull; } }); +const LogoMinimal_1 = require("./components/graphics/LogoMinimal"); +Object.defineProperty(exports, "LogoMinimal", { enumerable: true, get: function () { return LogoMinimal_1.LogoMinimal; } }); +const LogoTheNativeWeb_1 = require("./components/graphics/LogoTheNativeWeb"); +Object.defineProperty(exports, "LogoTheNativeWeb", { enumerable: true, get: function () { return LogoTheNativeWeb_1.LogoTheNativeWeb; } }); +const LogoWolkenkit_1 = require("./components/graphics/LogoWolkenkit"); +Object.defineProperty(exports, "LogoWolkenkit", { enumerable: true, get: function () { return LogoWolkenkit_1.LogoWolkenkit; } }); +const MadeBy_1 = require("./components/branding/MadeBy"); +Object.defineProperty(exports, "MadeBy", { enumerable: true, get: function () { return MadeBy_1.MadeBy; } }); +const Message_1 = require("./components/feedback/Message"); +Object.defineProperty(exports, "Message", { enumerable: true, get: function () { return Message_1.Message; } }); +const MobileToggle_1 = require("./components/navigation/MobileToggle"); +Object.defineProperty(exports, "MobileToggle", { enumerable: true, get: function () { return MobileToggle_1.MobileToggle; } }); +const Modal_1 = require("./components/feedback/Modal"); +Object.defineProperty(exports, "Modal", { enumerable: true, get: function () { return Modal_1.Modal; } }); +const ModalRow_1 = require("./components/feedback/ModalRow"); +Object.defineProperty(exports, "ModalRow", { enumerable: true, get: function () { return ModalRow_1.ModalRow; } }); +const NextApp_1 = require("./NextApp"); +Object.defineProperty(exports, "NextApp", { enumerable: true, get: function () { return NextApp_1.NextApp; } }); +const NextDocument_1 = require("./NextDocument"); +Object.defineProperty(exports, "NextDocument", { enumerable: true, get: function () { return NextDocument_1.NextDocument; } }); +const NonIdealState_1 = require("./components/feedback/NonIdealState"); +Object.defineProperty(exports, "NonIdealState", { enumerable: true, get: function () { return NonIdealState_1.NonIdealState; } }); +const Notifications_1 = require("./components/feedback/Notifications"); +Object.defineProperty(exports, "Notifications", { enumerable: true, get: function () { return Notifications_1.Notifications; } }); +const PageNavigation_1 = require("./components/navigation/PageNavigation"); +Object.defineProperty(exports, "PageNavigation", { enumerable: true, get: function () { return PageNavigation_1.PageNavigation; } }); +const PageTree_1 = require("./components/navigation/PageTree"); +Object.defineProperty(exports, "PageTree", { enumerable: true, get: function () { return PageTree_1.PageTree; } }); +const Paragraph_1 = require("./components/typography/Paragraph"); +Object.defineProperty(exports, "Paragraph", { enumerable: true, get: function () { return Paragraph_1.Paragraph; } }); +const Pattern_1 = require("./components/branding/Pattern"); +Object.defineProperty(exports, "Pattern", { enumerable: true, get: function () { return Pattern_1.Pattern; } }); +const PoweredBy_1 = require("./components/branding/PoweredBy"); +Object.defineProperty(exports, "PoweredBy", { enumerable: true, get: function () { return PoweredBy_1.PoweredBy; } }); +const Product_1 = require("./components/branding/Product"); +Object.defineProperty(exports, "Product", { enumerable: true, get: function () { return Product_1.Product; } }); +const Sidebar_1 = require("./components/layout/Sidebar"); +Object.defineProperty(exports, "Sidebar", { enumerable: true, get: function () { return Sidebar_1.Sidebar; } }); +const SidebarBrand_1 = require("./components/layout/SidebarBrand"); +Object.defineProperty(exports, "SidebarBrand", { enumerable: true, get: function () { return SidebarBrand_1.SidebarBrand; } }); +const SidebarFooter_1 = require("./components/layout/SidebarFooter"); +Object.defineProperty(exports, "SidebarFooter", { enumerable: true, get: function () { return SidebarFooter_1.SidebarFooter; } }); +const SidebarItem_1 = require("./components/layout/SidebarItem"); +Object.defineProperty(exports, "SidebarItem", { enumerable: true, get: function () { return SidebarItem_1.SidebarItem; } }); +const Space_1 = require("./components/layout/Space"); +Object.defineProperty(exports, "Space", { enumerable: true, get: function () { return Space_1.Space; } }); +const StyleCollector_1 = require("./components/roots/StyleCollector"); +Object.defineProperty(exports, "StyleCollector", { enumerable: true, get: function () { return StyleCollector_1.StyleCollector; } }); +const Tags_1 = require("./components/feedback/Tags"); +Object.defineProperty(exports, "Tags", { enumerable: true, get: function () { return Tags_1.Tags; } }); +const Text_1 = require("./components/typography/Text"); +Object.defineProperty(exports, "Text", { enumerable: true, get: function () { return Text_1.Text; } }); +const TextArea_1 = require("./components/input/TextArea"); +Object.defineProperty(exports, "TextArea", { enumerable: true, get: function () { return TextArea_1.TextArea; } }); +const TextBox_1 = require("./components/input/TextBox"); +Object.defineProperty(exports, "TextBox", { enumerable: true, get: function () { return TextBox_1.TextBox; } }); +const ThemeProvider_1 = require("./components/roots/ThemeProvider"); +Object.defineProperty(exports, "ThemeProvider", { enumerable: true, get: function () { return ThemeProvider_1.ThemeProvider; } }); +const Toggle_1 = require("./components/input/Toggle"); +Object.defineProperty(exports, "Toggle", { enumerable: true, get: function () { return Toggle_1.Toggle; } }); +const Transition_1 = require("./components/animation/Transition"); +Object.defineProperty(exports, "Transition", { enumerable: true, get: function () { return Transition_1.Transition; } }); +const TransitionGroup_1 = require("./components/animation/TransitionGroup"); +Object.defineProperty(exports, "TransitionGroup", { enumerable: true, get: function () { return TransitionGroup_1.TransitionGroup; } }); +const useRouteChange_1 = require("./components/navigation/useRouteChange"); +Object.defineProperty(exports, "useRouteChange", { enumerable: true, get: function () { return useRouteChange_1.useRouteChange; } }); +const Website_1 = require("./components/roots/Website"); +Object.defineProperty(exports, "Website", { enumerable: true, get: function () { return Website_1.Website; } }); +const styles_1 = require("./styles"); +Object.defineProperty(exports, "classNames", { enumerable: true, get: function () { return styles_1.classNames; } }); +Object.defineProperty(exports, "createUseStyles", { enumerable: true, get: function () { return styles_1.createUseStyles; } }); +Object.defineProperty(exports, "removeServerSideStyles", { enumerable: true, get: function () { return styles_1.removeServerSideStyles; } }); +Object.defineProperty(exports, "ServerSideStyles", { enumerable: true, get: function () { return styles_1.ServerSideStyles; } }); +Object.defineProperty(exports, "StaticGlobalStyles", { enumerable: true, get: function () { return styles_1.StaticGlobalStyles; } }); +Object.defineProperty(exports, "useDevice", { enumerable: true, get: function () { return styles_1.useDevice; } }); +Object.defineProperty(exports, "useTheme", { enumerable: true, get: function () { return styles_1.useTheme; } }); +const services_1 = require("./services"); +Object.defineProperty(exports, "dialogs", { enumerable: true, get: function () { return services_1.dialogs; } }); +Object.defineProperty(exports, "excecutionEnvironment", { enumerable: true, get: function () { return services_1.excecutionEnvironment; } }); +Object.defineProperty(exports, "getPortalRootNode", { enumerable: true, get: function () { return services_1.getPortalRootNode; } }); +Object.defineProperty(exports, "notifications", { enumerable: true, get: function () { return services_1.notifications; } }); +Object.defineProperty(exports, "slugify", { enumerable: true, get: function () { return services_1.slugify; } }); +const themes_1 = require("./themes"); +Object.defineProperty(exports, "Theme", { enumerable: true, get: function () { return themes_1.Theme; } }); +Object.defineProperty(exports, "themes", { enumerable: true, get: function () { return themes_1.themes; } }); diff --git a/build/lib/layouts/DocumentationPage/Documentation.d.ts b/build/lib/layouts/DocumentationPage/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/layouts/DocumentationPage/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/layouts/DocumentationPage/Documentation.js b/build/lib/layouts/DocumentationPage/Documentation.js new file mode 100644 index 00000000..8943bac9 --- /dev/null +++ b/build/lib/layouts/DocumentationPage/Documentation.js @@ -0,0 +1,66 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const __1 = require("../.."); +const react_1 = __importDefault(require("react")); +const Documentation = () => (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "DocumentationPage"), + react_1.default.createElement(__1.Paragraph, null, + "Use this layout to render documentation sites that feature a tree navigation structure. It consists of a ", + react_1.default.createElement(__1.Link, { href: '/en-us/components/layout/sidebar' }, + react_1.default.createElement("code", null, "SideBar")), + ", a ", + react_1.default.createElement(__1.Link, { href: '/en-us/components/navigation/pagenavigation' }, + react_1.default.createElement("code", null, "PageNavigation")), + ", and a content panel."), + react_1.default.createElement(__1.Headline, { level: '2' }, "Responsive behaviour"), + react_1.default.createElement(__1.Paragraph, null, + "On ", + react_1.default.createElement("code", null, "xs"), + " screens, the content panel will fill the whole page and the ", + react_1.default.createElement("code", null, "PageNavigation"), + " will be rendered in a fullscreen container. A ", + react_1.default.createElement(__1.Link, { href: '/en-us/components/navigation/mobiletoggle' }, + react_1.default.createElement("code", null, "MobileToggle")), + " can then be used to toggle this navigation."), + react_1.default.createElement(__1.Headline, { level: '2' }, "Defining the layout in a page"), + react_1.default.createElement(__1.Paragraph, null, + "Wrap your page within the layout and set the ", + react_1.default.createElement("code", null, "navigation"), + ", ", + react_1.default.createElement("code", null, "productName"), + ", ", + react_1.default.createElement("code", null, "siteTitle"), + ", and ", + react_1.default.createElement("code", null, "yearOfCreation"), + " properties. Additionally you can pass a ", + react_1.default.createElement("code", null, "pageTitle"), + " for each page."), + react_1.default.createElement(__1.Code, null, ` + const navigation: MultiLanguagePageTree = { + 'en-us': [ + { + title: 'First Section', + children: [ + { title: 'Page A' }, + { title: 'Page B' } + ] + } + ] + }; + + // ... + + +
My page content goes here
+
+ `))); +exports.Documentation = Documentation; diff --git a/build/lib/layouts/DocumentationPage/index.d.ts b/build/lib/layouts/DocumentationPage/index.d.ts new file mode 100644 index 00000000..7f6e9f11 --- /dev/null +++ b/build/lib/layouts/DocumentationPage/index.d.ts @@ -0,0 +1,13 @@ +import { MultiLanguagePageTree } from '../..'; +import { FunctionComponent } from 'react'; +interface DocumentationPageProps { + linkToImprint?: string; + linkToPrivacyPolicy?: string; + navigation: MultiLanguagePageTree; + siteTitle: string; + pageTitle?: string; + productName: string; + yearOfCreation: number; +} +declare const DocumentationPage: FunctionComponent; +export { DocumentationPage }; diff --git a/build/lib/layouts/DocumentationPage/index.js b/build/lib/layouts/DocumentationPage/index.js new file mode 100644 index 00000000..0418a536 --- /dev/null +++ b/build/lib/layouts/DocumentationPage/index.js @@ -0,0 +1,116 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DocumentationPage = void 0; +const head_1 = __importDefault(require("next/head")); +const link_1 = __importDefault(require("next/link")); +const router_1 = require("next/router"); +const __1 = require("../.."); +const styles_1 = require("../../styles"); +const styles_2 = require("./styles"); +const react_1 = __importStar(require("react")); +const useStyles = (0, styles_1.createUseStyles)(styles_2.styles); +const DocumentationPage = ({ linkToImprint, linkToPrivacyPolicy, children, navigation, pageTitle, productName, siteTitle, yearOfCreation }) => { + const router = (0, router_1.useRouter)(); + const classes = useStyles(); + const device = (0, __1.useDevice)(); + const isMobile = device === 'xs'; + const [isNavigationVisible, setIsNavigationVisible] = (0, react_1.useState)(true); + const [activePath, setActivePath] = (0, react_1.useState)(router.pathname); + const language = (0, __1.getLanguageFromUrl)(router.pathname); + const basePath = `/${language}`; + const navigationItemsForLanguage = navigation[language]; + if (!Array.isArray(navigationItemsForLanguage)) { + return null; + } + const pageTree = new __1.PageTree({ + items: navigationItemsForLanguage, + basePath + }); + const currentPage = pageTree.getPageItemByPath(activePath); + const componentClasses = (0, styles_1.classNames)(classes.DocumentationPage, { + [classes.WithNavigationVisible]: isNavigationVisible + }); + const hideNavigationOnMobile = (0, react_1.useCallback)(() => { + if (isMobile) { + setIsNavigationVisible(false); + } + }, []); + const toggleNavigation = (0, react_1.useCallback)(() => { + setIsNavigationVisible(!isNavigationVisible); + }, [isNavigationVisible]); + (0, __1.useRouteChange)((newPath) => { + setActivePath(newPath); + hideNavigationOnMobile(); + }, [device]); + (0, react_1.useEffect)(hideNavigationOnMobile, []); + return (react_1.default.createElement("div", { className: componentClasses }, + react_1.default.createElement(head_1.default, null, + pageTitle ? + react_1.default.createElement("title", null, + siteTitle, + " | ", + pageTitle) : + react_1.default.createElement("title", null, + siteTitle, + currentPage ? ` | ${currentPage.title}` : ''), + react_1.default.createElement("link", { key: 'favicon', rel: 'icon', href: '/favicon.png', type: 'image/png' }), + react_1.default.createElement("meta", { key: 'viewport', name: 'viewport', content: 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover' })), + react_1.default.createElement("div", { className: classes.NavigationForDesktop }, + react_1.default.createElement(__1.Sidebar, null, + react_1.default.createElement(link_1.default, { href: basePath }, + react_1.default.createElement(__1.Link, { href: basePath }, + react_1.default.createElement(__1.SidebarBrand, null, + react_1.default.createElement(__1.Product, { name: productName })))), + react_1.default.createElement(__1.SidebarItem, { iconName: 'toggle-left-panel', onClick: toggleNavigation, isActive: isNavigationVisible }))), + react_1.default.createElement(__1.HorizontalBar, { background: 'dark', paddingHorizontal: 'sm', borderBottom: false, className: classes.NavigationForMobile }, + react_1.default.createElement(link_1.default, { href: basePath }, + react_1.default.createElement(__1.Link, { href: basePath }, + react_1.default.createElement(__1.Product, { name: productName, size: 'sm' })))), + react_1.default.createElement(__1.MobileToggle, { isVisible: isNavigationVisible, onClick: toggleNavigation }), + react_1.default.createElement("div", { className: classes.NavigationUniversal }, + react_1.default.createElement(__1.PageNavigation, { nonIdealState: react_1.default.createElement(__1.NonIdealState, { cause: 'Sorry, no pages found.' }, + react_1.default.createElement("p", null, "Try searching for something else!")), pageTree: pageTree, showSearchBar: true, activePath: activePath })), + react_1.default.createElement("div", { className: classes.Content }, + react_1.default.createElement("article", null, + currentPage && (react_1.default.createElement(__1.HorizontalBar, { paddingHorizontal: 'none', className: classes.ContentTopBar }, + react_1.default.createElement(__1.Breadcrumbs, { items: currentPage.breadcrumbs, size: 'md', color: 'light' }))), + children), + react_1.default.createElement(__1.Footer, { linkToGithub: currentPage && `https://github.com/thenativeweb/thenativeweb-ux/edit/main/styleguide/pages${currentPage.path}.tsx`, linkToImprint: linkToImprint, linkToPrivacyPolicy: linkToPrivacyPolicy, yearOfCreation: yearOfCreation })))); +}; +exports.DocumentationPage = DocumentationPage; diff --git a/build/lib/layouts/DocumentationPage/styles.d.ts b/build/lib/layouts/DocumentationPage/styles.d.ts new file mode 100644 index 00000000..fabad39a --- /dev/null +++ b/build/lib/layouts/DocumentationPage/styles.d.ts @@ -0,0 +1,4 @@ +import { ComponentClassNames, Theme } from '../..'; +export type DocumentationPageClassNames = 'DocumentationPage' | 'WithNavigationVisible' | 'NavigationUniversal' | 'NavigationForDesktop' | 'NavigationForMobile' | 'Content' | 'ContentTopBar'; +declare const styles: (theme: Theme) => ComponentClassNames; +export { styles }; diff --git a/build/lib/layouts/DocumentationPage/styles.js b/build/lib/layouts/DocumentationPage/styles.js new file mode 100644 index 00000000..a24b71cc --- /dev/null +++ b/build/lib/layouts/DocumentationPage/styles.js @@ -0,0 +1,125 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.styles = void 0; +const navigationPanelWidthXs = '100%'; +const navigationPanelWidthSm = '200px'; +const navigationPanelWidthMd = '300px'; +const styles = (theme) => ({ + DocumentationPage: { + background: theme.color.brand.white, + minHeight: '100vh' + }, + WithNavigationVisible: { + '& $NavigationUniversal': { + overflowY: 'auto', + overflowX: 'hidden' + } + }, + NavigationForDesktop: { + zIndex: theme.zIndices.navigation, + position: 'fixed', + top: 0, + left: 0, + height: '100%', + overflow: 'hidden', + display: 'flex' + }, + NavigationForMobile: {}, + NavigationUniversal: { + zIndex: theme.zIndices.navigation, + position: 'fixed', + top: 0, + width: '0px', + height: '100%', + overflow: 'hidden', + background: theme.color.brand.white, + transition: `width 200ms, transform 300ms ${theme.ease.outCirc}, opacity 500ms ${theme.ease.outCirc}` + }, + Content: { + transition: 'margin-left 200ms', + display: 'flex', + flexDirection: 'column', + minHeight: '100vh', + '& > article': { + flexGrow: 1 + } + }, + ContentTopBar: {}, + [theme.breakpoints.only('xs')]: { + NavigationForDesktop: { + display: 'none' + }, + NavigationForMobile: { + display: 'flex' + }, + NavigationUniversal: { + left: 0, + opacity: 0, + width: navigationPanelWidthXs, + pointerEvents: 'none', + transform: 'translate(0,-20px)', + '& > *': { + width: navigationPanelWidthXs + } + }, + Content: { + paddingLeft: theme.space(2), + paddingRight: theme.space(2), + paddingBottom: theme.space(3) + }, + WithNavigationVisible: { + '& $NavigationUniversal': { + pointerEvents: 'all', + opacity: 1, + transform: 'translate(0,0)' + }, + '& $Content': { + marginLeft: 0 + } + } + }, + [theme.breakpoints.up('sm')]: { + NavigationForDesktop: { + display: 'flex' + }, + NavigationForMobile: { + display: 'none !important' + }, + NavigationUniversal: { + borderRight: `1px solid ${theme.color.brand.grayLight}`, + left: theme.components.Sidebar.width, + '& > *': { + width: navigationPanelWidthSm + } + }, + Content: { + padding: theme.space(6), + paddingTop: 0, + marginLeft: theme.components.Sidebar.width + }, + WithNavigationVisible: { + '& $NavigationUniversal': { + width: navigationPanelWidthSm + }, + '& $Content': { + marginLeft: `calc(${navigationPanelWidthSm} + ${theme.components.Sidebar.width})` + } + } + }, + [theme.breakpoints.up('md')]: { + NavigationUniversal: { + '& > *': { + width: navigationPanelWidthMd + } + }, + WithNavigationVisible: { + '& $NavigationUniversal': { + width: navigationPanelWidthMd + }, + '& $Content': { + marginLeft: `calc(${navigationPanelWidthMd} + ${theme.components.Sidebar.width})` + } + } + } +}); +exports.styles = styles; diff --git a/build/lib/services/DialogService/Documentation.d.ts b/build/lib/services/DialogService/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/services/DialogService/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/services/DialogService/Documentation.js b/build/lib/services/DialogService/Documentation.js new file mode 100644 index 00000000..f886aed3 --- /dev/null +++ b/build/lib/services/DialogService/Documentation.js @@ -0,0 +1,53 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const SplitView_1 = require("../../components/documentation/SplitView"); +const __1 = require("../.."); +const react_1 = __importDefault(require("react")); +const Documentation = () => (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "dialogs"), + react_1.default.createElement(__1.Paragraph, null, + "Use the ", + react_1.default.createElement("code", null, "dialogs"), + " service to display standard dialogs, e.g. a confirmation dialog."), + react_1.default.createElement(__1.Headline, { level: '2' }, "Confirming a critical action"), + react_1.default.createElement(__1.Paragraph, null, + "To confirm a critical action, use the ", + react_1.default.createElement("code", null, "confirm"), + " function of the ", + react_1.default.createElement("code", null, "notifications"), + " service:"), + react_1.default.createElement(SplitView_1.SplitView, null, + react_1.default.createElement(__1.Code, { language: 'tsx' }, ` + + `), + react_1.default.createElement(__1.Button, { onClick: async () => { + const chosenAction = await __1.dialogs.confirm({ + title: 'Do you really want to delete the item?', + actions: { + confirm: 'Delete item!', + cancel: 'Cancel' + } + }); + __1.notifications.show({ type: 'success', text: `You chose ${chosenAction}.` }); + } }, "Delete")))); +exports.Documentation = Documentation; diff --git a/build/lib/services/DialogService/index.d.ts b/build/lib/services/DialogService/index.d.ts new file mode 100644 index 00000000..ed8646d8 --- /dev/null +++ b/build/lib/services/DialogService/index.d.ts @@ -0,0 +1,26 @@ +import { EventEmitter } from 'events'; +interface State { + confirm: { + isVisible: boolean; + title: string; + actions: { + cancel: string; + confirm: string; + }; + onCancel: () => void; + onConfirm: () => void; + }; +} +declare class DialogService extends EventEmitter { + state: State; + constructor(); + hideConfirm(): void; + confirm({ title, actions }: { + title: string; + actions: { + cancel: string; + confirm: string; + }; + }): Promise; +} +export { DialogService }; diff --git a/build/lib/services/DialogService/index.js b/build/lib/services/DialogService/index.js new file mode 100644 index 00000000..28dc2c95 --- /dev/null +++ b/build/lib/services/DialogService/index.js @@ -0,0 +1,54 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DialogService = void 0; +const events_1 = require("events"); +const defaultState = { + confirm: { + isVisible: false, + title: '', + actions: { + cancel: '', + confirm: '' + }, + onCancel() { + // Intentionally left blank. + }, + onConfirm() { + // Intentionally left blank. + } + } +}; +class DialogService extends events_1.EventEmitter { + constructor() { + super(); + this.state = defaultState; + } + hideConfirm() { + this.state = defaultState; + this.emit('changed'); + } + async confirm({ title, actions }) { + return new Promise((resolve) => { + this.state = { + confirm: { + isVisible: true, + title, + actions, + onConfirm: () => { + this.hideConfirm(); + resolve('confirm'); + }, + onCancel: () => { + this.hideConfirm(); + resolve('cancel'); + } + } + }; + // Delay the rendering for keyboard events not to conflict. + setTimeout(() => { + this.emit('changed'); + }, 0.1 * 1000); + }); + } +} +exports.DialogService = DialogService; diff --git a/build/lib/services/ExecutionEnvironmentService.d.ts b/build/lib/services/ExecutionEnvironmentService.d.ts new file mode 100644 index 00000000..47ede8c2 --- /dev/null +++ b/build/lib/services/ExecutionEnvironmentService.d.ts @@ -0,0 +1,5 @@ +declare class ExecutionEnvironmentService { + canUseDom: boolean; + constructor(); +} +export { ExecutionEnvironmentService }; diff --git a/build/lib/services/ExecutionEnvironmentService.js b/build/lib/services/ExecutionEnvironmentService.js new file mode 100644 index 00000000..b3dafcbf --- /dev/null +++ b/build/lib/services/ExecutionEnvironmentService.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ExecutionEnvironmentService = void 0; +class ExecutionEnvironmentService { + constructor() { + this.canUseDom = Boolean( + /* eslint-disable @typescript-eslint/unbound-method */ + typeof window !== 'undefined' && + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition + window.document && + window.document.createElement + /* eslint-enable @typescript-eslint/unbound-method */ + ); + } +} +exports.ExecutionEnvironmentService = ExecutionEnvironmentService; diff --git a/build/lib/services/NotificationService/Documentation.d.ts b/build/lib/services/NotificationService/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/services/NotificationService/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/services/NotificationService/Documentation.js b/build/lib/services/NotificationService/Documentation.js new file mode 100644 index 00000000..b1bfb608 --- /dev/null +++ b/build/lib/services/NotificationService/Documentation.js @@ -0,0 +1,71 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const SplitView_1 = require("../../components/documentation/SplitView"); +const __1 = require("../.."); +const react_1 = __importDefault(require("react")); +const Documentation = () => (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "notifications"), + react_1.default.createElement(__1.Paragraph, null, + "Use the ", + react_1.default.createElement("code", null, "notifications"), + " service to inform the user about events without blocking his current worfklow. Notifications will only be visible for a short period of time and won&aops;t be persisted."), + react_1.default.createElement(__1.Headline, { level: '2' }, "Showing a notification"), + react_1.default.createElement(__1.Paragraph, null, + "To add a notifiction to the stack, use the ", + react_1.default.createElement("code", null, "show"), + " function of the ", + react_1.default.createElement("code", null, "notifications"), + " service:"), + react_1.default.createElement(SplitView_1.SplitView, null, + react_1.default.createElement(__1.Code, { language: 'jsx' }, ` + + `), + react_1.default.createElement(__1.Button, { onClick: () => __1.notifications.show({ + type: 'success', + text: 'This is a notification!' + }) }, "Show Notification")), + react_1.default.createElement(__1.Headline, { level: '2' }, "Success or error"), + react_1.default.createElement(__1.Paragraph, null, + "Use the ", + react_1.default.createElement("code", null, "type"), + " option to notify about the user about an ", + react_1.default.createElement("code", null, "error"), + " or a ", + react_1.default.createElement("code", null, "success"), + "."), + react_1.default.createElement(SplitView_1.SplitView, null, + react_1.default.createElement(__1.Code, { language: 'jsx' }, ` + + `), + react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Button, { onClick: () => __1.notifications.show({ + type: 'error', + text: 'This is an error!' + }) }, "Inform about error!"), + react_1.default.createElement(__1.Button, { onClick: () => __1.notifications.show({ + type: 'success', + text: 'This is a success!' + }) }, "Inform about success!"))))); +exports.Documentation = Documentation; diff --git a/build/lib/services/NotificationService/index.d.ts b/build/lib/services/NotificationService/index.d.ts new file mode 100644 index 00000000..1eb8fc96 --- /dev/null +++ b/build/lib/services/NotificationService/index.d.ts @@ -0,0 +1,27 @@ +import { EventEmitter } from 'events'; +export type NotificationType = 'error' | 'success'; +export interface Notification { + id: string; + type: NotificationType; + text: string; + duration: number; +} +interface State { + items: Notification[]; +} +declare class NotificationService extends EventEmitter { + state: State; + constructor(); + addNotification({ type, text, duration }: { + type: NotificationType; + text: string; + duration: number; + }): Notification; + removeNotification(notification: Notification): void; + show({ type, text, duration }: { + type: NotificationType; + text: string; + duration?: number; + }): void; +} +export { NotificationService }; diff --git a/build/lib/services/NotificationService/index.js b/build/lib/services/NotificationService/index.js new file mode 100644 index 00000000..84bb4e4f --- /dev/null +++ b/build/lib/services/NotificationService/index.js @@ -0,0 +1,39 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NotificationService = void 0; +const events_1 = require("events"); +const uuid_1 = require("uuid"); +class NotificationService extends events_1.EventEmitter { + constructor() { + super(); + this.state = { + items: [] + }; + } + addNotification({ type, text, duration }) { + const notification = { + id: (0, uuid_1.v4)(), + type, + text, + duration + }; + this.state.items.unshift(notification); + this.emit('changed'); + return notification; + } + removeNotification(notification) { + const notificationIndex = this.state.items.indexOf(notification); + this.state.items.splice(notificationIndex, 1); + this.emit('changed'); + } + show({ type = 'success', text, duration = 3000 }) { + if (!duration) { + throw new Error('Duration is missing.'); + } + const notification = this.addNotification({ type, text, duration }); + setTimeout(() => { + this.removeNotification(notification); + }, duration); + } +} +exports.NotificationService = NotificationService; diff --git a/build/lib/services/getPortalRootNode.d.ts b/build/lib/services/getPortalRootNode.d.ts new file mode 100644 index 00000000..2727d7d0 --- /dev/null +++ b/build/lib/services/getPortalRootNode.d.ts @@ -0,0 +1,2 @@ +declare const getPortalRootNode: (id?: string, tag?: string) => HTMLElement; +export { getPortalRootNode }; diff --git a/build/lib/services/getPortalRootNode.js b/build/lib/services/getPortalRootNode.js new file mode 100644 index 00000000..24b500aa --- /dev/null +++ b/build/lib/services/getPortalRootNode.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getPortalRootNode = void 0; +const portals = {}; +const getPortalRootNode = function (id = 'thenativeweb-ux-portal', tag = 'span') { + let portal = portals[id]; + if (!portal) { + portal = document.createElement(tag); + portal.setAttribute('id', id); + document.body.appendChild(portal); + portals[id] = portal; + } + return portal; +}; +exports.getPortalRootNode = getPortalRootNode; diff --git a/build/lib/services/index.d.ts b/build/lib/services/index.d.ts new file mode 100644 index 00000000..4690fca2 --- /dev/null +++ b/build/lib/services/index.d.ts @@ -0,0 +1,9 @@ +import { DialogService } from './DialogService'; +import { ExecutionEnvironmentService } from './ExecutionEnvironmentService'; +import { getPortalRootNode } from './getPortalRootNode'; +import { NotificationService } from './NotificationService'; +import { slugify } from './slugify'; +declare const dialogs: DialogService; +declare const excecutionEnvironment: ExecutionEnvironmentService; +declare const notifications: NotificationService; +export { dialogs, excecutionEnvironment, getPortalRootNode, notifications, slugify }; diff --git a/build/lib/services/index.js b/build/lib/services/index.js new file mode 100644 index 00000000..5ed7ce41 --- /dev/null +++ b/build/lib/services/index.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.slugify = exports.notifications = exports.getPortalRootNode = exports.excecutionEnvironment = exports.dialogs = void 0; +const DialogService_1 = require("./DialogService"); +const ExecutionEnvironmentService_1 = require("./ExecutionEnvironmentService"); +const getPortalRootNode_1 = require("./getPortalRootNode"); +Object.defineProperty(exports, "getPortalRootNode", { enumerable: true, get: function () { return getPortalRootNode_1.getPortalRootNode; } }); +const NotificationService_1 = require("./NotificationService"); +const slugify_1 = require("./slugify"); +Object.defineProperty(exports, "slugify", { enumerable: true, get: function () { return slugify_1.slugify; } }); +const dialogs = new DialogService_1.DialogService(); +exports.dialogs = dialogs; +const excecutionEnvironment = new ExecutionEnvironmentService_1.ExecutionEnvironmentService(); +exports.excecutionEnvironment = excecutionEnvironment; +const notifications = new NotificationService_1.NotificationService(); +exports.notifications = notifications; diff --git a/build/lib/services/slugify.d.ts b/build/lib/services/slugify.d.ts new file mode 100644 index 00000000..d62a3961 --- /dev/null +++ b/build/lib/services/slugify.d.ts @@ -0,0 +1,2 @@ +declare const slugify: (text: string) => string; +export { slugify }; diff --git a/build/lib/services/slugify.js b/build/lib/services/slugify.js new file mode 100644 index 00000000..119a9a4c --- /dev/null +++ b/build/lib/services/slugify.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.slugify = void 0; +const slugify = function (text) { + return text. + toLowerCase(). + replace(/ /gu, '-'). + replace(/[^A-Za-z0-9-]/gu, ''); +}; +exports.slugify = slugify; diff --git a/build/lib/styles/Documentation.d.ts b/build/lib/styles/Documentation.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/styles/Documentation.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/styles/Documentation.js b/build/lib/styles/Documentation.js new file mode 100644 index 00000000..ae7d183d --- /dev/null +++ b/build/lib/styles/Documentation.js @@ -0,0 +1,64 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const __1 = require(".."); +const react_1 = __importDefault(require("react")); +const Documentation = () => (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "Creating custom components"), + react_1.default.createElement(__1.Paragraph, null, + react_1.default.createElement("code", null, "thenativeweb-ux"), + " uses ", + react_1.default.createElement(__1.Link, { href: 'https://cssinjs.org' }, "JSS"), + " and ", + react_1.default.createElement(__1.Link, { href: 'https://github.com/JedWatson/classnames' }, "classnames"), + " to style its components. If you create custom components, you can use same underlying technologies to create styles using TypeScript."), + react_1.default.createElement(__1.Code, { language: 'tsx' }, ` + import { classNames, ComponentClassNames, createUseStyles, Theme } from 'thenativeweb-ux'; + import React, { FunctionComponent, ReactElement } from 'react'; + + type CustomComponentClassNames = 'CustomComponent' | 'SizeLg'; + + const useStyles = createUseStyles((theme): ComponentClassNames => ({ + CustomComponent: { + width: theme.customComponent.width + }, + + SizeLg: { + fontSize: '24px' + } + })); + + interface CustomComponentProps { + className?: string; + id: string; + size?: 'lg'; + } + + const CustomComponent: FunctionComponent = ({ + className, + children, + id, + size + }): ReactElement => { + const classes = useStyles(); + const componentClasses = classNames( + classes.CustomComponent, + { + [classes.SizeLg]: size === 'lg' + }, + className + ); + + return ( +
+ { children } +
+ ); + }; + + export { CustomComponent }; + `))); +exports.Documentation = Documentation; diff --git a/build/lib/styles/ServerSideStyles.d.ts b/build/lib/styles/ServerSideStyles.d.ts new file mode 100644 index 00000000..a728092c --- /dev/null +++ b/build/lib/styles/ServerSideStyles.d.ts @@ -0,0 +1,10 @@ +import { GenerateId } from 'jss'; +import { SheetsRegistry } from 'react-jss'; +import { ReactElement } from 'react'; +declare class ServerSideStyles { + registry: SheetsRegistry; + generateId: GenerateId; + constructor(); + generateStyleTag(): ReactElement; +} +export { ServerSideStyles }; diff --git a/build/lib/styles/ServerSideStyles.js b/build/lib/styles/ServerSideStyles.js new file mode 100644 index 00000000..d44d0da7 --- /dev/null +++ b/build/lib/styles/ServerSideStyles.js @@ -0,0 +1,21 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ServerSideStyles = void 0; +const minifyCss_1 = require("./minifyCss"); +const react_jss_1 = require("react-jss"); +const react_1 = __importDefault(require("react")); +class ServerSideStyles { + constructor() { + this.registry = new react_jss_1.SheetsRegistry(); + this.generateId = (0, react_jss_1.createGenerateId)(); + } + generateStyleTag() { + const styles = this.registry.toString(); + const minifiedStyles = (0, minifyCss_1.minifyCss)(styles); + return (react_1.default.createElement("style", { id: 'server-side-styles', dangerouslySetInnerHTML: { __html: minifiedStyles } })); + } +} +exports.ServerSideStyles = ServerSideStyles; diff --git a/build/lib/styles/StaticGlobalStyles.d.ts b/build/lib/styles/StaticGlobalStyles.d.ts new file mode 100644 index 00000000..d5f30be2 --- /dev/null +++ b/build/lib/styles/StaticGlobalStyles.d.ts @@ -0,0 +1,11 @@ +import { Theme } from '..'; +import { ReactElement } from 'react'; +declare class StaticGlobalStyles { + private readonly theme; + constructor({ theme }: { + theme: Theme; + }); + generateStyleTag(): ReactElement; + private buildStyles; +} +export { StaticGlobalStyles }; diff --git a/build/lib/styles/StaticGlobalStyles.js b/build/lib/styles/StaticGlobalStyles.js new file mode 100644 index 00000000..6e06d6ab --- /dev/null +++ b/build/lib/styles/StaticGlobalStyles.js @@ -0,0 +1,40 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StaticGlobalStyles = void 0; +const minifyCss_1 = require("./minifyCss"); +const react_1 = __importDefault(require("react")); +class StaticGlobalStyles { + constructor({ theme }) { + this.theme = theme; + } + generateStyleTag() { + const styles = this.buildStyles(); + const minfiedStyles = (0, minifyCss_1.minifyCss)(styles); + return (react_1.default.createElement("style", { id: 'static-global-styles', dangerouslySetInnerHTML: { __html: minfiedStyles } })); + } + buildStyles() { + return ` + ${this.theme.font.import ? `@import url(${this.theme.font.import});` : ''} + + body, html { + margin: 0; + padding: 0; + font-family: ${this.theme.font.family.default}; + font-size: ${this.theme.font.size.md}; + line-height: 1.4; + } + + div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { + margin: 0; + padding: 0; + border: 0; + font-family: inherit; + box-sizing: border-box; + } + `; + } +} +exports.StaticGlobalStyles = StaticGlobalStyles; diff --git a/build/lib/styles/classNames.d.ts b/build/lib/styles/classNames.d.ts new file mode 100644 index 00000000..2cc72a18 --- /dev/null +++ b/build/lib/styles/classNames.d.ts @@ -0,0 +1,2 @@ +import classNames from 'classnames'; +export { classNames }; diff --git a/build/lib/styles/classNames.js b/build/lib/styles/classNames.js new file mode 100644 index 00000000..9087bcd6 --- /dev/null +++ b/build/lib/styles/classNames.js @@ -0,0 +1,8 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.classNames = void 0; +const classnames_1 = __importDefault(require("classnames")); +exports.classNames = classnames_1.default; diff --git a/build/lib/styles/createUseStyles.d.ts b/build/lib/styles/createUseStyles.d.ts new file mode 100644 index 00000000..69f397e4 --- /dev/null +++ b/build/lib/styles/createUseStyles.d.ts @@ -0,0 +1,8 @@ +import { ComponentClassNames } from '../types/ComponentClassNames'; +import { Theme } from '../themes/Theme'; +type Classes = Record; +type UseStyles = () => Classes; +type CreateUseStylesParameterWithTheme = (theme: TTheme) => ComponentClassNames; +type CreateUseStylesParameter = ComponentClassNames; +declare const customCreateUseStyles: (styles: CreateUseStylesParameter | CreateUseStylesParameterWithTheme) => UseStyles; +export { customCreateUseStyles as createUseStyles }; diff --git a/build/lib/styles/createUseStyles.js b/build/lib/styles/createUseStyles.js new file mode 100644 index 00000000..a35e8257 --- /dev/null +++ b/build/lib/styles/createUseStyles.js @@ -0,0 +1,6 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.createUseStyles = void 0; +const react_jss_1 = require("react-jss"); +const customCreateUseStyles = (styles) => (0, react_jss_1.createUseStyles)(styles); +exports.createUseStyles = customCreateUseStyles; diff --git a/build/lib/styles/index.d.ts b/build/lib/styles/index.d.ts new file mode 100644 index 00000000..0afdbfe1 --- /dev/null +++ b/build/lib/styles/index.d.ts @@ -0,0 +1,8 @@ +import { classNames } from './classNames'; +import { createUseStyles } from './createUseStyles'; +import { removeServerSideStyles } from './removeServerSideStyles'; +import { ServerSideStyles } from './ServerSideStyles'; +import { StaticGlobalStyles } from './StaticGlobalStyles'; +import { useDevice } from './useDevice'; +import { useTheme } from './useCustomTheme'; +export { classNames, createUseStyles, removeServerSideStyles, StaticGlobalStyles, ServerSideStyles, useDevice, useTheme }; diff --git a/build/lib/styles/index.js b/build/lib/styles/index.js new file mode 100644 index 00000000..3b099419 --- /dev/null +++ b/build/lib/styles/index.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.useTheme = exports.useDevice = exports.ServerSideStyles = exports.StaticGlobalStyles = exports.removeServerSideStyles = exports.createUseStyles = exports.classNames = void 0; +const classNames_1 = require("./classNames"); +Object.defineProperty(exports, "classNames", { enumerable: true, get: function () { return classNames_1.classNames; } }); +const createUseStyles_1 = require("./createUseStyles"); +Object.defineProperty(exports, "createUseStyles", { enumerable: true, get: function () { return createUseStyles_1.createUseStyles; } }); +const removeServerSideStyles_1 = require("./removeServerSideStyles"); +Object.defineProperty(exports, "removeServerSideStyles", { enumerable: true, get: function () { return removeServerSideStyles_1.removeServerSideStyles; } }); +const ServerSideStyles_1 = require("./ServerSideStyles"); +Object.defineProperty(exports, "ServerSideStyles", { enumerable: true, get: function () { return ServerSideStyles_1.ServerSideStyles; } }); +const StaticGlobalStyles_1 = require("./StaticGlobalStyles"); +Object.defineProperty(exports, "StaticGlobalStyles", { enumerable: true, get: function () { return StaticGlobalStyles_1.StaticGlobalStyles; } }); +const useDevice_1 = require("./useDevice"); +Object.defineProperty(exports, "useDevice", { enumerable: true, get: function () { return useDevice_1.useDevice; } }); +const useCustomTheme_1 = require("./useCustomTheme"); +Object.defineProperty(exports, "useTheme", { enumerable: true, get: function () { return useCustomTheme_1.useTheme; } }); diff --git a/build/lib/styles/minifyCss.d.ts b/build/lib/styles/minifyCss.d.ts new file mode 100644 index 00000000..05cacb54 --- /dev/null +++ b/build/lib/styles/minifyCss.d.ts @@ -0,0 +1,2 @@ +declare const minifyCss: (css: string) => string; +export { minifyCss }; diff --git a/build/lib/styles/minifyCss.js b/build/lib/styles/minifyCss.js new file mode 100644 index 00000000..57c7b2aa --- /dev/null +++ b/build/lib/styles/minifyCss.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.minifyCss = void 0; +const common_tags_1 = require("common-tags"); +const minifyCss = function (css) { + return (0, common_tags_1.oneLine)(css); +}; +exports.minifyCss = minifyCss; diff --git a/build/lib/styles/removeServerSideStyles.d.ts b/build/lib/styles/removeServerSideStyles.d.ts new file mode 100644 index 00000000..cfd69f3c --- /dev/null +++ b/build/lib/styles/removeServerSideStyles.d.ts @@ -0,0 +1,2 @@ +declare const removeServerSideStyles: () => void; +export { removeServerSideStyles }; diff --git a/build/lib/styles/removeServerSideStyles.js b/build/lib/styles/removeServerSideStyles.js new file mode 100644 index 00000000..b58a8fd1 --- /dev/null +++ b/build/lib/styles/removeServerSideStyles.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.removeServerSideStyles = void 0; +const removeServerSideStyles = function () { + const style = document.getElementById('server-side-styles'); + if (!style) { + return; + } + if (!style.parentNode) { + return; + } + style.parentNode.removeChild(style); +}; +exports.removeServerSideStyles = removeServerSideStyles; diff --git a/build/lib/styles/useCustomTheme.d.ts b/build/lib/styles/useCustomTheme.d.ts new file mode 100644 index 00000000..e608e8b5 --- /dev/null +++ b/build/lib/styles/useCustomTheme.d.ts @@ -0,0 +1,3 @@ +import { Theme } from '../themes/Theme'; +declare const useCustomTheme: () => Theme; +export { useCustomTheme as useTheme }; diff --git a/build/lib/styles/useCustomTheme.js b/build/lib/styles/useCustomTheme.js new file mode 100644 index 00000000..a8be6ee5 --- /dev/null +++ b/build/lib/styles/useCustomTheme.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.useTheme = void 0; +const react_jss_1 = require("react-jss"); +const useCustomTheme = function () { + return (0, react_jss_1.useTheme)(); +}; +exports.useTheme = useCustomTheme; diff --git a/build/lib/styles/useDevice.d.ts b/build/lib/styles/useDevice.d.ts new file mode 100644 index 00000000..78423f3d --- /dev/null +++ b/build/lib/styles/useDevice.d.ts @@ -0,0 +1,3 @@ +import { Size } from '../themes/Size'; +declare const useDevice: () => Size | undefined; +export { useDevice }; diff --git a/build/lib/styles/useDevice.js b/build/lib/styles/useDevice.js new file mode 100644 index 00000000..bf7adbeb --- /dev/null +++ b/build/lib/styles/useDevice.js @@ -0,0 +1,42 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.useDevice = void 0; +const useCustomTheme_1 = require("./useCustomTheme"); +const react_1 = require("react"); +const useDevice = () => { + const isClient = typeof window === 'object'; + const theme = (0, useCustomTheme_1.useTheme)(); + const getDevice = () => { + const width = isClient ? window.innerWidth : 0; + let size; + if (width > 0 && width <= theme.breakpoints.steps.sm) { + size = 'xs'; + } + else if (width > theme.breakpoints.steps.sm && width <= theme.breakpoints.steps.md) { + size = 'sm'; + } + else if (width > theme.breakpoints.steps.md && width <= theme.breakpoints.steps.lg) { + size = 'md'; + } + else if (width > theme.breakpoints.steps.lg && width <= theme.breakpoints.steps.xl) { + size = 'lg'; + } + else if (width > theme.breakpoints.steps.xl) { + size = 'xl'; + } + return size; + }; + const [device, setDevice] = (0, react_1.useState)(getDevice); + const handleResize = () => { + setDevice(getDevice()); + }; + (0, react_1.useEffect)(() => { + if (!isClient) { + return; + } + window.addEventListener('resize', handleResize); + return () => window.removeEventListener('resize', handleResize); + }, []); + return device; +}; +exports.useDevice = useDevice; diff --git a/build/lib/styles/utils.d.ts b/build/lib/styles/utils.d.ts new file mode 100644 index 00000000..aec1a27f --- /dev/null +++ b/build/lib/styles/utils.d.ts @@ -0,0 +1,25 @@ +import { NestedCssProperties } from '../types/NestedCssProperties'; +import { ResponsiveSpaceFactor } from '../types/ResponsiveSpaceFactor'; +import { ResponsiveSpaceProp } from '../types/ResponsiveSpaceProp'; +import { Theme } from '..'; +type CssAttributesFunction = ({ spaceFactor, theme }: { + spaceFactor: ResponsiveSpaceFactor; + theme: Theme; +}) => NestedCssProperties; +export type ClassDefinitions = Partial | CssAttributesFunction>>; +declare const createSpaceDependentClasses: ({ theme, definitions, deviceSize, maximumSpaceFactor }: { + theme: Theme; + definitions: ClassDefinitions; + deviceSize?: string; + maximumSpaceFactor?: number; +}) => Record; +declare const createDefaultSpaceDependantClasses: ({ theme, definitions }: { + theme: Theme; + definitions: ClassDefinitions; +}) => Record; +declare const getSpaceDependentClassNamesFromProps: ({ props, definitions, classes }: { + props: Partial>; + definitions: ClassDefinitions; + classes: any; +}) => string[]; +export { createDefaultSpaceDependantClasses, createSpaceDependentClasses, getSpaceDependentClassNamesFromProps }; diff --git a/build/lib/styles/utils.js b/build/lib/styles/utils.js new file mode 100644 index 00000000..96a13f5d --- /dev/null +++ b/build/lib/styles/utils.js @@ -0,0 +1,55 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getSpaceDependentClassNamesFromProps = exports.createSpaceDependentClasses = exports.createDefaultSpaceDependantClasses = void 0; +const createSpaceDependentClasses = function ({ theme, definitions, deviceSize = '', maximumSpaceFactor = 17 }) { + const classes = {}; + for (let spaceFactor = 0; spaceFactor < maximumSpaceFactor; spaceFactor++) { + for (const propertyName of Object.keys(definitions)) { + const cssAttributes = definitions[propertyName]; + const className = `${deviceSize}-${propertyName}-${spaceFactor}`; + classes[className] = typeof cssAttributes === 'function' ? + cssAttributes({ spaceFactor, theme }) : + cssAttributes; + } + } + return classes; +}; +exports.createSpaceDependentClasses = createSpaceDependentClasses; +const createDefaultSpaceDependantClasses = function ({ theme, definitions = {} }) { + const emptySpaceProperties = {}; + for (const propertyName of Object.keys(definitions)) { + emptySpaceProperties[propertyName] = {}; + } + let classes = {}; + for (const deviceSize of ['xs', 'sm', 'md', 'lg', 'xl']) { + classes = { + ...classes, + ...createSpaceDependentClasses({ + theme, + definitions: emptySpaceProperties, + deviceSize + }) + }; + } + return classes; +}; +exports.createDefaultSpaceDependantClasses = createDefaultSpaceDependantClasses; +const getSpaceDependentClassNamesFromProps = function ({ props, definitions, classes }) { + const responsiveClassNames = []; + for (const propertyName of Object.keys(definitions)) { + const propertyValue = props[propertyName]; + if (typeof propertyValue === 'string' || typeof propertyValue === 'number') { + responsiveClassNames.push(classes[`-${propertyName}-${propertyValue}`]); + } + else { + if (!propertyValue) { + continue; + } + for (const [sizeKey, sizeValue] of Object.entries(propertyValue)) { + responsiveClassNames.push(classes[`${sizeKey}-${propertyName}-${sizeValue}`]); + } + } + } + return responsiveClassNames; +}; +exports.getSpaceDependentClassNamesFromProps = getSpaceDependentClassNamesFromProps; diff --git a/build/lib/themes/BrandColors.d.ts b/build/lib/themes/BrandColors.d.ts new file mode 100644 index 00000000..6f4bba3d --- /dev/null +++ b/build/lib/themes/BrandColors.d.ts @@ -0,0 +1,9 @@ +export interface BrandColors { + black: string; + gray: string; + grayDark: string; + grayLight: string; + grayModest: string; + highlight: string; + white: string; +} diff --git a/build/lib/themes/BrandColors.js b/build/lib/themes/BrandColors.js new file mode 100644 index 00000000..c8ad2e54 --- /dev/null +++ b/build/lib/themes/BrandColors.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/build/lib/themes/Breakpoints.d.ts b/build/lib/themes/Breakpoints.d.ts new file mode 100644 index 00000000..40e0646e --- /dev/null +++ b/build/lib/themes/Breakpoints.d.ts @@ -0,0 +1,27 @@ +import { Size } from './Size'; +declare class Breakpoints { + readonly steps: { + xs: number; + sm: number; + md: number; + lg: number; + xl: number; + }; + private readonly unit; + constructor(steps?: { + xs: number; + sm: number; + md: number; + lg: number; + xl: number; + }, unit?: string); + static getNextSize(size: Size): Size | undefined; + static getMinWidthRule(minWidth: number, unit: string): string; + static getMaxWidthRule(maxWidth: number, unit: string): string; + static getMinMaxWidthRule(minWidth: number, maxWidth: number, unit: string): string; + up(size: Size | number): string; + down(size: Size | number): string; + only(size: Size): string; + between(lowerSize: Size | number, upperSize: Size | number): string; +} +export { Breakpoints }; diff --git a/build/lib/themes/Breakpoints.js b/build/lib/themes/Breakpoints.js new file mode 100644 index 00000000..8578d731 --- /dev/null +++ b/build/lib/themes/Breakpoints.js @@ -0,0 +1,90 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Breakpoints = void 0; +const defaultSteps = { + xs: 0, + sm: 600, + md: 960, + lg: 1280, + xl: 1920 +}; +class Breakpoints { + constructor(steps = defaultSteps, unit = 'px') { + this.steps = steps; + this.unit = unit; + } + static getNextSize(size) { + if (size === 'xs') { + return 'sm'; + } + if (size === 'sm') { + return 'md'; + } + if (size === 'md') { + return 'lg'; + } + if (size === 'lg') { + return 'xl'; + } + return undefined; + } + static getMinWidthRule(minWidth, unit) { + return `@media (min-width:${minWidth}${unit})`; + } + // In order to create media queries with proper ranges, which is not possible + // out of the box with min- and max-width queries, we use a common hack + // popularized by frameworks like Bootstrap: We remove 0.2 pixels from the + // maxWidth so that viewports with this actual maxWidth won't be affected by + // this rule. Kudos to https://getbootstrap.com/docs/4.3/layout/overview/ + static getMaxWidthRule(maxWidth, unit) { + return `@media (max-width:${maxWidth - 0.02}${unit})`; + } + // In order to create media queries with proper ranges, which is not possible + // out of the box with min- and max-width queries, we use a common hack + // popularized by frameworks like Bootstrap: We remove 0.2 pixels from the + // maxWidth so that viewports with this actual maxWidth won't be affected by + // this rule. Kudos to https://getbootstrap.com/docs/4.3/layout/overview/ + static getMinMaxWidthRule(minWidth, maxWidth, unit) { + return `@media (min-width:${minWidth}${unit}) and (max-width:${maxWidth - 0.02}${unit})`; + } + up(size) { + if (typeof size === 'number') { + return Breakpoints.getMinWidthRule(size, this.unit); + } + const minWidth = this.steps[size]; + return Breakpoints.getMinWidthRule(minWidth, this.unit); + } + down(size) { + if (typeof size === 'number') { + return Breakpoints.getMaxWidthRule(size, this.unit); + } + const nextSize = Breakpoints.getNextSize(size); + if (!nextSize) { + // Calling down('xl') means we want to target all devices including xl + // and all above which is not possible to achieve with a maxWidth query + // so we're using up('xs') here. + return this.up('xs'); + } + const maxWidth = this.steps[nextSize]; + return Breakpoints.getMaxWidthRule(maxWidth, this.unit); + } + only(size) { + return this.between(size, size); + } + between(lowerSize, upperSize) { + if (typeof lowerSize === 'number' && typeof upperSize === 'number') { + return Breakpoints.getMinMaxWidthRule(lowerSize, upperSize, this.unit); + } + if (typeof lowerSize === 'number' || typeof upperSize === 'number') { + throw new Error('Lower size and upper size must either both be sizes or numbers.'); + } + const nextUpperSize = Breakpoints.getNextSize(upperSize); + if (!nextUpperSize) { + return this.up(lowerSize); + } + const minWidth = this.steps[lowerSize]; + const maxWidth = this.steps[nextUpperSize]; + return Breakpoints.getMinMaxWidthRule(minWidth, maxWidth, this.unit); + } +} +exports.Breakpoints = Breakpoints; diff --git a/build/lib/themes/DivisionColors.d.ts b/build/lib/themes/DivisionColors.d.ts new file mode 100644 index 00000000..05f70636 --- /dev/null +++ b/build/lib/themes/DivisionColors.d.ts @@ -0,0 +1,9 @@ +export interface DivisionColors { + company: string; + concepts: string; + learning: string; + services: string; + techlounge: string; + technologies: string; + wolkenkit: string; +} diff --git a/build/lib/themes/DivisionColors.js b/build/lib/themes/DivisionColors.js new file mode 100644 index 00000000..c8ad2e54 --- /dev/null +++ b/build/lib/themes/DivisionColors.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/build/lib/themes/Documentation/index.d.ts b/build/lib/themes/Documentation/index.d.ts new file mode 100644 index 00000000..e05952b2 --- /dev/null +++ b/build/lib/themes/Documentation/index.d.ts @@ -0,0 +1,3 @@ +import { ReactElement } from 'react'; +declare const Documentation: () => ReactElement; +export { Documentation }; diff --git a/build/lib/themes/Documentation/index.js b/build/lib/themes/Documentation/index.js new file mode 100644 index 00000000..9c3224d6 --- /dev/null +++ b/build/lib/themes/Documentation/index.js @@ -0,0 +1,117 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Documentation = void 0; +const SplitView_1 = require("../../components/documentation/SplitView"); +const __1 = require("../.."); +const themes_1 = require("./themes"); +const react_1 = __importDefault(require("react")); +const Documentation = () => (react_1.default.createElement(react_1.default.Fragment, null, + react_1.default.createElement(__1.Headline, null, "Creating custom themes"), + react_1.default.createElement(__1.Paragraph, null, + react_1.default.createElement("code", null, "thenativeweb-ux"), + " comes with two default themes, ", + react_1.default.createElement("code", null, "themes.TheNativeWeb"), + " and ", + react_1.default.createElement("code", null, "themes.Wolkenkit"), + ". Both of them extend the abstract class ", + react_1.default.createElement("code", null, "Theme"), + "."), + react_1.default.createElement(__1.Paragraph, null, + "In order to create a custom theme, you have two options: create a new theme by extending the abstract ", + react_1.default.createElement("code", null, "Theme"), + " or extending one of the default themes."), + react_1.default.createElement(__1.Headline, { level: '2' }, "Creating a theme from scratch"), + react_1.default.createElement(__1.Paragraph, null, + "You create a custom theme by extending the abstract class ", + react_1.default.createElement("code", null, "Theme"), + ". Use this option if you would like to override theme properties like colors or font sizes."), + react_1.default.createElement(SplitView_1.SplitView, null, + react_1.default.createElement(__1.Code, { language: 'tsx' }, ` + const customThemeThatExtendsBaseTheme = new CustomThemeThatExtendsBaseTheme({ + name: 'CustomTheme', + spaceUnit: 18, + + brandColors: { + black: '#000000', + highlight: '#48bb78', + gray: '#222', + grayDark: '#111', + grayLight: '#eeeeee', + grayModest: '#999999', + white: '#ffffff' + }, + + interactionColors: { + focus: '#363d45' + }, + + fontSizes: { + xxs: '12px', + xs: '16px', + sm: '18px', + md: '20px', + lg: '24px', + xl: '30px', + xxl: '48px' + }, + + pattern: { + opacity: 0.05, + backgroundImage: 'none' + } + }); + + + + + `), + react_1.default.createElement(__1.ThemeProvider, { theme: themes_1.customThemeThatExtendsBaseTheme }, + react_1.default.createElement(__1.Button, null, "Styled with theme that extends base class"))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Extending one of the default themes"), + react_1.default.createElement(__1.Paragraph, null, + "If you would like to use a default theme but simply need to override some properties, extend ", + react_1.default.createElement("code", null, "themes.TheNativeWeb"), + " or ", + react_1.default.createElement("code", null, "themes.Wolkenkit"), + "."), + react_1.default.createElement(SplitView_1.SplitView, null, + react_1.default.createElement(__1.Code, { language: 'tsx' }, ` + class CustomThemeThatExtendsWolkenkit extends themes.Wolkenkit { + public constructor () { + super(); + + this.font.size.md = '18px'; + } + } + + + + + `), + react_1.default.createElement(__1.ThemeProvider, { theme: new themes_1.CustomThemeThatExtendsWolkenkit() }, + react_1.default.createElement(__1.Button, null, "Styled with theme that extends Wolkenkit"))), + react_1.default.createElement(__1.Headline, { level: '2' }, "Extending a theme with custom properties"), + react_1.default.createElement(__1.Paragraph, null, "If you want to extend your theme with additional properties, add them as readonly properties to your theme class."), + react_1.default.createElement(__1.Code, { language: 'tsx' }, ` + class CustomThemeWithCustomProperty extends themes.Wolkenkit { + public readonly customComponent = { + width: '300px' + }; + } + `), + react_1.default.createElement(__1.Paragraph, null, "You can now use these properties when styling your custom components. You just need to make sure that you reference the custom theme instead of the default one."), + react_1.default.createElement(__1.Code, { language: 'tsx' }, ` + import { CustomTheme as Theme } from '../../themes/CustomTheme'; + + const styles = (theme: Theme) => ({ + CustomComponent: { + width: theme.customComponent.width + } + }); + + export { styles }; + `))); +exports.Documentation = Documentation; diff --git a/build/lib/themes/Documentation/themes.d.ts b/build/lib/themes/Documentation/themes.d.ts new file mode 100644 index 00000000..a4c8081e --- /dev/null +++ b/build/lib/themes/Documentation/themes.d.ts @@ -0,0 +1,13 @@ +import { Theme, themes } from '../..'; +declare class CustomThemeThatExtendsBaseTheme extends Theme { +} +declare const customThemeThatExtendsBaseTheme: CustomThemeThatExtendsBaseTheme; +declare class CustomThemeThatExtendsWolkenkit extends themes.Wolkenkit { + constructor(); +} +declare class CustomThemeWithCustomProperty extends themes.Wolkenkit { + readonly customComponent: { + width: string; + }; +} +export { customThemeThatExtendsBaseTheme, CustomThemeThatExtendsWolkenkit, CustomThemeWithCustomProperty }; diff --git a/build/lib/themes/Documentation/themes.js b/build/lib/themes/Documentation/themes.js new file mode 100644 index 00000000..dc7488a2 --- /dev/null +++ b/build/lib/themes/Documentation/themes.js @@ -0,0 +1,53 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CustomThemeWithCustomProperty = exports.CustomThemeThatExtendsWolkenkit = exports.customThemeThatExtendsBaseTheme = void 0; +const __1 = require("../.."); +class CustomThemeThatExtendsBaseTheme extends __1.Theme { +} +const customThemeThatExtendsBaseTheme = new CustomThemeThatExtendsBaseTheme({ + name: 'CustomTheme', + spaceUnit: 18, + brandColors: { + black: '#000000', + highlight: '#48BB78', + gray: '#222', + grayDark: '#111', + grayLight: '#eeeeee', + grayModest: '#999999', + white: '#ffffff' + }, + interactionColors: { + focus: '#363d45', + error: '#ff0000' + }, + fontSizes: { + xxs: '12px', + xs: '16px', + sm: '18px', + md: '20px', + lg: '24px', + xl: '30px', + xxl: '48px' + }, + pattern: { + opacity: 0.05, + backgroundImage: 'none' + } +}); +exports.customThemeThatExtendsBaseTheme = customThemeThatExtendsBaseTheme; +class CustomThemeThatExtendsWolkenkit extends __1.themes.Wolkenkit { + constructor() { + super(); + this.font.size.md = '18px'; + } +} +exports.CustomThemeThatExtendsWolkenkit = CustomThemeThatExtendsWolkenkit; +class CustomThemeWithCustomProperty extends __1.themes.Wolkenkit { + constructor() { + super(...arguments); + this.customComponent = { + width: '300px' + }; + } +} +exports.CustomThemeWithCustomProperty = CustomThemeWithCustomProperty; diff --git a/build/lib/themes/FontSizes.d.ts b/build/lib/themes/FontSizes.d.ts new file mode 100644 index 00000000..8af3d0af --- /dev/null +++ b/build/lib/themes/FontSizes.d.ts @@ -0,0 +1,9 @@ +export interface FontSizes { + xxs: string; + xs: string; + sm: string; + md: string; + lg: string; + xl: string; + xxl: string; +} diff --git a/build/lib/themes/FontSizes.js b/build/lib/themes/FontSizes.js new file mode 100644 index 00000000..c8ad2e54 --- /dev/null +++ b/build/lib/themes/FontSizes.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/build/lib/themes/InteractionColors.d.ts b/build/lib/themes/InteractionColors.d.ts new file mode 100644 index 00000000..701ed337 --- /dev/null +++ b/build/lib/themes/InteractionColors.d.ts @@ -0,0 +1,4 @@ +export interface InteractionColors { + error: string; + focus: string; +} diff --git a/build/lib/themes/InteractionColors.js b/build/lib/themes/InteractionColors.js new file mode 100644 index 00000000..c8ad2e54 --- /dev/null +++ b/build/lib/themes/InteractionColors.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/build/lib/themes/Pattern.d.ts b/build/lib/themes/Pattern.d.ts new file mode 100644 index 00000000..133ad03e --- /dev/null +++ b/build/lib/themes/Pattern.d.ts @@ -0,0 +1,4 @@ +export interface Pattern { + opacity: number; + backgroundImage: string; +} diff --git a/build/lib/themes/Pattern.js b/build/lib/themes/Pattern.js new file mode 100644 index 00000000..c8ad2e54 --- /dev/null +++ b/build/lib/themes/Pattern.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/build/lib/themes/Size.d.ts b/build/lib/themes/Size.d.ts new file mode 100644 index 00000000..25859882 --- /dev/null +++ b/build/lib/themes/Size.d.ts @@ -0,0 +1 @@ +export type Size = 'xs' | 'sm' | 'md' | 'lg' | 'xl'; diff --git a/build/lib/themes/Size.js b/build/lib/themes/Size.js new file mode 100644 index 00000000..c8ad2e54 --- /dev/null +++ b/build/lib/themes/Size.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/build/lib/themes/TheNativeWeb.d.ts b/build/lib/themes/TheNativeWeb.d.ts new file mode 100644 index 00000000..fcd1ef2a --- /dev/null +++ b/build/lib/themes/TheNativeWeb.d.ts @@ -0,0 +1,5 @@ +import { Theme } from './Theme'; +declare class TheNativeWeb extends Theme { + constructor(); +} +export { TheNativeWeb }; diff --git a/build/lib/themes/TheNativeWeb.js b/build/lib/themes/TheNativeWeb.js new file mode 100644 index 00000000..86ee4bba --- /dev/null +++ b/build/lib/themes/TheNativeWeb.js @@ -0,0 +1,30 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.TheNativeWeb = void 0; +const Theme_1 = require("./Theme"); +class TheNativeWeb extends Theme_1.Theme { + constructor() { + super({ + name: 'TheNativeWeb', + spaceUnit: 8, + brandColors: { + black: '#000000', + highlight: '#dd0099', + grayDark: '#222222', + gray: '#363d45', + grayModest: '#999999', + grayLight: '#e5e6eb', + white: '#ffffff' + }, + interactionColors: { + focus: '#222222', + error: '#ff0000' + }, + pattern: { + opacity: 0.1, + backgroundImage: `url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlgAAAJYCAMAAACJuGjuAAADAFBMVEUAAAD/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJn/AJl1s5cWAAAA/3RSTlMAAQMCizDg8P5A+/0E+fQJ+gb8BxIP9ggFNgrx90gWtuX42umRsRjIEAzmCw4VT+zu6PLK1mh638XVLqSQkuogYBmG7+JaoIDzsusjRBE4zzKYDe0U44zAoUYTvUW5cBwosCarZIjGn3FQf1YkITEzGj9lxFXBuooqJdEXS2pbjtKWdEGaHUlseKrdlFdTe7+uO5WeuMKo5B+pZvWFr6YrrWsbL+FdTkqBeV91YzSlPFi0fc4s2T3LycxubdCigue81zdD2Clyx1lz3s2XTG92TTpcQo+EfmHUUbNUmz6sObU1u2LcJ4Mid9tSjZNnnB6ZadO+nYe3o8MtR16Jp3y4h1hqAAAiVElEQVR4XuzdeZRU5YEF8NtVNJRVvdN0A92si9Bszd6i7IsoIAQBxQCyySLIGhYFNQTEhEVAMAoSQBYXUCAxIi44xpg5KE7GdSEmJjISB2NiYhKH6DFz550+Xa/eR7/3uimqT86Zd3//9un/7qm69ep+X+FfTPaQPICEfSTz2sNW2P36Ihru6whXB2kZA1cNe5OMITikDslDSHiV5GUw9X/3eDM6xM6MSkclS0kOhIfxJM8hMCSXZKcwEiaSHILK5n9eFqND8U+HrIBhIMmlfvlNR2DIbpLTkFC3gOQRuAr3o6nO+EW5iBtDy0G4W0FLBgJDvkvyQSSsJnmVVwJep2VGFh0ibbdPQLkeJCO5cDeEZBaCQ2j5byQMIHk1PDxDsi0wd9mpHDpEj/aeDDxLsik8/JTkEASGtCN5Eg7HSD4HDwUkt6PckXFjI3Qo6BoleQU8NCO5BoEhH5L8CxLyYyRvhbuptNyAuIzBTUbT9E0GXKXTEkZgSBOSv0bCPSQfgId3SEZhaHP2mQI6RMa+8CEqG0XyJAJD0khG8s2HDbwSHo6SPIpKpvY6GqVDTs9aw2BaR/JhBIaMIXkMDjkkWw9Pg6soyT/C1YT7aci6bFYJEmIk2yAwZAPJAUblKhc92nIyKnmZlslw14iWLnQaevWvwyjXkRYEhzQn+TYSztFW8MzZfBjuJ1kAD9NI7kDj2a8V0yFW9vfTADaT/BsCQ0IkC+oi4QQNo5vcmQFbU5Jd4eFFkidgweWjzuTRIXP5u6UkVyMwpC/JiUgIjyZ51PyYN+iFp1EuN2LsIEyFEZKrEPfG5s4RmgoRGLLKSANwiGROQ/z7H4/m0fyY1xf4mJZ8uOvO8+t54Z4lRuVCcEgByX1IOEDyeliQ1mh724j5Ma+MZCd42ESyFOfbO2B5Ji3BqlhSl2SfNHM0xY2Iy140voimlSG4KyL5E7j5+d/LaFmIwJB0kruQ0LAZyQZw6j9kpDnxK/v8ECrrT8sGuFtDSwiBIf9B8mMk3EByYOUEfGvUyZj5Me/f9sL0CclYGO6+JDkQwSE0JweoRXIz3IQf2RmjU5dN3Rsi4TjJ/fCwkuTrCAxpf/5XfyNJfgEPxSTz6BDpPO32sGMVsxUeMkn2R2DIcJLrkdCBllvg7nJaPvzzl3/NoUPep1u+AjCflhFwN4IWBIcsMTfqeIVkbb8+lgMLfjdzv3mq4tknD9t/dLGVZE8EiiYz5KlevyxxJOA38HDGGY+MDT8ppcEnO7VJbkBgyApWyPnhe78LARhEcg485JGsBYd6q07soEOk6a6301BZOEayPQJDvspkQtGUPTeQjIyBuzdoGQYTbvvspSgdoi+9M9VtmUMEiRQeGkfTSnh4yPP41urDD9Bpx4nHr4HDByQ/QNBIvUdbm4dtDoyBi87mwXvTUJo4+qNXMlChlOSbCCAJ97+pMx06TXw4w20VMwvuSmjZuPGYOfHbP+5eWNrQkouAkvqT15uHbc4thMMd9Gngz9FSAuCp9c3Nuc2pb7a9SjIHQSZjFjU1YtHtumHOR15D4eEfJFugHMJ3r30xQocYyV4IOAkPm15Mh6wZs9rD0sXv4H0WyZ1IyH5wUxGd5kMEGaenRehQevXiNbQshrtttNwM04LHjmcyLoRyIiU3v0aHiN8qZrrXXX3z7yqL0ZKJBJEVz/UxwrV8wBq4OUVyHdyFBlWuWCLhqb1y6NBlyZ6GOF+Oea+IKUryUlQiknvkA3OFtbkjnN6kZR7cLaQF7kQ6nB1Ih7wzoy5H3DiSzeDhCpKvwZvI3rNF5t22sxsDFZuIkfDwAMmO8CUSfuoveebdth/nZsRIPgZ3GRGSJaiSSOHLm+gQ6UTLCrg7SDKC6hHJP1hGp1ivyXC1lOR2VJtIeNuQLNLl0iNDJ5KncUFEMubtipmXHr2VAacxSf5qgEi77k1p3m17BLYeJAuQHJEFd7xoXnq0bG7izvgBSJpIeNiyZualRzeWAAUkh+GiiOSO2ByhQ5+lKfrVAJGSPxynYSxSQ2TFjaW0LULKiIQn946yXD5SSqTww/tIIvVE2s/D/zsiIiIiIiIiIiIiIiIiIiIiIiIiIvmFqFGhSQgiqRX52fv1UENCE67swjQEkNQiWby2Yy5S71vfbUsyuMFSsCydRh1JbQDmbnyJZNCDpWBZag+4FSny7S8uI6lgKVgVRq5agIuWveHqKKlgKVh8d20xKxhVPtm6HndiT1aQg6VgXYJ67/8swnJ2lU+2rscdfW8YUCfYwVKwLAtWjSRpVPlk6zrZuddpAAqWglXu1gG1jSqfZF3PeuHrECwKloIVl3ZkVCejyl9wXY9+9EpDxClYCpYtt6NZ5S+wrneATcFSsEz+Vd6/rsMjWKJg+VZ5/7ruHSxRsLyrvH9d9w2WKFieVd6/rvsHSxQsvyrvU9f9gyUKln+VP+1V1/2DJQqWf5X3rOv+wRIFy6/Km3U92WCJgmVWebOuJx8sUbDMKr+D5JcdAKQuWKJgAbVJpkPBqj4F65XvdM9PTbCsDel2BauCgtWEzGk1JzvZYJkb0sw2ClY5BatxlBYWzRweTi5Y5oZ0kYJVTsH6mHFtr5uXTLDMDelOBaucgoUGLVswrluPvj7BqnpDekWjkIIVp3VDqNEVWYwzqnxVwcqe49iQNhncTusGk9YN7QY3sRNiVHmfYIWHzyxiXOvvN9a6wY3WDY2/35oWo8r7BGvedW0Z13z2LVo3eNO64ZbZzY0q7xmsvj26Ma5FywZaN/hQsLyrvBms/O7fMes6fIIlCpZHlTeDlT2nVY5LXfcMlihY7lV+ohmsB13qul+wRMFyr/L9zGDlZxp1vbrBEgXLrPLF7c1gYYpR16sbLFGwzCq/Hmaw8IhbXVewRHss0R5LtMfSHku0xxLtsUR7LO2xRHss0R6r5on2WKI9lihY2mOJ9liiPZYoWNpjifZYoj2WKFjaY4n2WKI9VgCI9liiPZZoj6U9lmiPJdpjifZYCpZoj2UQ7bFEeyxRsLTHEu2xRHusIFKwnkiroT3Wth1BDpaCxZPvTk79Hiv/Tz8kAx0sBcvy7Kz+qQxW4eIpmWRwgyVPZLJCbOnBa1MTrPDbW4sY1xWBJG0WXR9hheL7f1n/ooOVXqsp4848NhWBJWvOrmRc6ffeTLuIYG070JNxfdaPQMDJ5d8MYpxV5f2D5VfX43bserQ+RBBeeNdA0qjy3sHyr+vM+587S1BBpO6vfmtUec9g+df1Z55rDINIvZs2GVXeNVh+df3TIbfBhcik15cbVd4/WGZd7/1zeBJ5arpR5b2CZdb1rMN3ZyAJoipvByt1dV1U5e1gpbaui6q8HazU1nVRla9N8u5U13VRlY+SrIG6Lqryqa/roipfg3VdVOVTX9dFVT7odV1ERMIZIaSUSMbqdz4lua7lhFykhsg1g3cNZFyX3/brgIslctusTVGaIjM27oOlEMkQCT29rBsTypiwf8uj2DHlpv64MCLtF48rpa34owf3ov8TU3bQBlqOzZ6fhmoS6fv80hzaOn/esWF84nb3lv3OYFma3vVIQ1RFJDziRyuZsPyTBmEY9vWYESEJ5+tZ9zXwJtLu5q0taMucuGcb3HToN60LJvRax4Tjn4wIw4XIpO5NmtE29Mp7roW3XFhufX1JjLYWM/9g/odI2vwhI5nQc/q9IVRL/p3/HEhb5tLn56KcCLJvv6spbdHxNw7Dhci45LNfGKE8ElIA5NKbWhXQ1unwj9sk9yD1b1HaRp+b0wYBJvue7Bqhrflnl4SQtHpzzpXSFt006zYEkdT9est+2mJLHv89Llbo3umnaAQVwSJj+j10FW1Fa9/KT+HD1UzaECwSo62s5fD6SKmSX81sFsxgib1U6LEbqVa30ZaxDGawxHi0kEod+m3Ooq0IwSJM+EWthSGkxu4DMyK0nez1cn0Ei8z9z//KpG3grsHX4CLVf7llGW2xy36wG4Ek195z5VDa8pY8PhlJy39rbRFtVz0U+P2yJjLLmXAmufeuqY8viTnHpY3qQuTPdzg3DUXTDo7BBQhd8llz2iJdn9yHCiLtOv7mRWc96vEVqqXejw93oq2g1aJLYRBJOzTkNSbUXl/1+9mN46O0Nb3r9my4Edm7yLlzyNr5xKXwNgy0jXysiiMVomXW98Y6K9N789Lcv2vuSbBcsyZfTELVRNL/t3WEtgdGvZHt+pQCJFtsvbkdfGTAQWTF+87tQ/EHf4q/KG3bc198uoC//sj/+ET/Ra2y8hEskn1sgP+qve4NvcvorFENMhp8spwJ8JX+5DFa7kSwyO0kS8ctrgc/u3/wjxhtObTlLH2+b7XWDdsRLDLKXjfcAj/ffnh7HZpGj1vc3m/dsDOLtkEIFhlrrBsy4KP+6neaM67bsqdD1V03rKti3SBaN0x99fpoFecj6g/XuqGC1g19aItVtW5ok35NEusG0boh6feu35+3bvi6LkTW1NC6QaRhkuuGNlWsG0TS5tfQukFkQQ2tG0SyH73wdUP3SaiaSPrGmlk3iKzo57lumGivG1Yms24QrRta1tC6QbRuOFtT6wbRuuH+OjSVBnPdIFo3iNYNonXDBK0bROuGfy3RukG0bhCtG0S0bhCtG0TrhtQTrRtEUr9uEEl+3fB/7d33m5Tl3f7xc2ZENuwusLssCwsiRXovgqCgFKUoiqAgKCBFFEuEWMAoCIIEewOxx6CAxhIVYxdLBGPvxlpiYnw0Rv0aU03y/h4cO3Pc9zE7Czs7t/6wc77+hs8cc93X8bnOU1kwy3G7Icwsu+2GiJgF2w3RMkuUJRQlMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzOzru/PHTh69MMvrFdUzHq+uFcpSc9OHq8ImLUZ2pow9ihSrszmjiRdwWXKiVnlDVQZ9/HKfYZe+hRVLo2r7szK/wlAw7MnxLSdhj/0FADj2qiuzEqmAJTu0kWBxKt9AfocqDoyWwnQ9kOFSYedDnB+uerE7CKAP56rdPE7Ae5UXZh1Xwf03VfVxe8GeE11YDYQ4ChlMn4U8ICyZ1bWFzhAmfUCWKGsmfUCGn2lGjwQTF02zP4BnKeaLAUaxpUts8OBd1WT7u2AO5Qls54AzVSjtcBcZcnsYOBw1WwosEhZMusF7KWa/R/wrbJkNh+YoprNqMtnodlZO7kCvQ04VlkyexLopppdAPxNWTIbD9BTNTqlTl+FZrsC+6sm5U2BBsqW2bfAWNVkP6BPQtkyWwUUnKjMYo8AK5U1s6LDgTnK7LcAByt7ZjMA5iuTNh2AtaoDs4pBQJ+tNT6yeFJ1ZT5lse4TpasYC3Co6sbsdYDeqxQmnTsPYHATZc8seDTBt8MVKHmxFUC3k7RzZvEhG/50xN1TpkyZvq8ClbsD0O7b35RoO907ui0A6/6lnTFb8Iu/NyblSoUUXUCV1vdfecANU4ZR5bmvtGNmibfXFBD2I4XNb0u6RseUaYfMEt+1J81nlQqbOHoSYYVXbtWOmV22jKTm875e/d381ZkuErpu+KgxVQrvH3iVdsyscjlVdt3lvuTpfBbALzOc7T//xYyHl37YQztjtnUAAOx+VEIpnYYBTd9XXZmt6gfA4xMU9ptCoNWTqhuzpY0AOpygNOcAtFqoujDbVAgwvY2q+QKg3QZlz+zcpgCL4qoudiwAX1QoS2bxfgDHKaP4FwAMPljZMbs6mKtMbi0EKPhygbJkDmbgP6rZqt4AtP7iJNWWWQuANXHtwII1AFBw+oZy1YpZR2BYG+3Y/h2o0uiUERdtLdNOmJ0MMF870/XNhgS6DdeOmBXVOqW9x23PkrSzoAazOUCHaaqVxG++7kCVPpWqmdlNAKeq1mI3PXzEIY2A71Qjs6JSYI6ydAXwsWpkdgQwrqeytBBo1EU1MBsC8FtlK9F3B/+fZvFiYJaydwUwVJmZvQdM6qTs/aHmSFKzrcFGe5Z+DjRWJmaJYoC37lD2SkqBBcrALPYLAEqvK6tbtU4NE2k2rT0AAw5Wth4AdlM9UrTfRWcqMnY7AIW7VCg7U4D59S39q/0Vt3+iaFiX9gA8dVmeD9YIqgy7dFvLIkXAlgJQsE+lsrC2vg3WWgLN/7plalflynoMBuCz+1R7TwD3qf4oaUcYFD439IS4cmOnAlBweVfVVkPgE9UfHwJjTt3juUJCfqwcWfcHARi0QrXTCShoovrjJWC6pK5Ttxx5LUmzlTO7CACe76Ha+DcwSPXIWOBNVSlque3ScUDvmHJnTToDMGqqauEW4APVH7FJwGsKHA90VCTsZQB4r1w7NQ94RvXHYqC0UoHTgdsUDWsyBYC2Z2knOhUAQ1R/XAP0VyDeONJyIDsKAA7ooh06DrhZ9cijwOE/vfyuc0NP4pqXKDJWcSQA3eZrB2JPAf9RPfIs0BTg5jv3vDchvQicpijZQgC4c9qOm8e5SvXHAsJGfrT6EuA6RcpKpgPQ93PVIHZIfXukcyEwjDS7KWL2IQDM6amMNgB0Uj0yFPj2wO9WPkGgsFxRsxYdARh3qjIY3wF4XvXJZuB3knRYr0VPNwWARxQ9U0sAuL6TqjkAKChSPTKxEDhDSU0WXnw4cLm+D1Y0B4BJS5XmrPpXp/pvoINCngLu0vfDTi4AoON6hXVpC+yueuVPwI0K9ASYqe+JFR0BQMP9FPIlQInqlUvSElh7Abvq+2NDSgH4aKZSpgIsVL1S1Bz4vQK7AHvre2Tx9wDo95NYctl0FDBd9cuTQOMiBToDe+p7ZVuLATj9K233NUCZ6pdngCMVqGwK/FzfL4s/D0C/JTFpBcBRqmeuB25R4EdAn4S+b3ZicwAuOanrIGCK6ptxab+W/wF36/tniaEAND4NoEL1zCdAaVcF1gCr9UOwfceQ9HK9fAz+oALxVsBl+kFYYhcA6Kx651hgDwUaAO3K9AOxqyYBNFG981la7OXPgFP0g7HYFuileqdT+hLQlcAx+gHZzI/r6YPKPyqkLXCWcmP2OnCAAicBBeOVG7P7gbkKvAp8o9yYdS0Fjlbg0Aj2Y80OAsbFFBgMLFVuzEanVSg0i+Jpm9nHwDlpARaHKzdmRekhDccA/1VuzO4AmrdQYC9giXJjNiNtEaiiOIIcHbMPgDcUuA9olVBuzPqmhTTcCvxduTE7ESjsocDuwEDlxmw/4BAFEiOB95Ubsy+BLxT4F9C0QrkxSw9p+H/A08qNWU+A9QrcACxSbszmp/cgjAI2Kjdmk4F/KHAuwDTlxqwz8BcFfgsMUG7MKhulhTQsB75WbsxWAH1iCiwDvlNuzO4B3lGgSwHwqXJjtgb4PwU2Ad2UG7N4v7Tr0RHA1cqN2Y/Ta+vXAg8rN2Zvp9XWl7QDJig3ZuNLIVxbfx4wJq4cmZ0GFBCIJLjX7DZgc7i2Hu5Rrsy2Agyvqq0fBgArlDOz84NAkDY3AzwaU87M9iD1vr58GUDHuKJh7la/tkxS5V4Af61QBMxKxgC7SSVrAPqXKxJmNwIXKH41wICeiobZ74BdYysBdp2piJidWQBcDTDsREXG7AGqtBqiaJl3/YDmlylCZg0AaLqbomQWWwcUXqhomX0NXKOImb0cXTeh2ZlKadJ6kSJgVvSjyU81b6KU+5Qzs2ZL/zuSSOu9zBa/dFohVQ5VFMxKjtrjfAKrlTOznvt90I8U+i5tplyZ3XTx0wWkMP3gMuXIrGLT8lEEbtk3oRyZDf9Jx2tJYdS75cqRWezk0c8RmHVyiXJkVtnrvW6kULp6ZkI5Mvtqye7tSKH9yxOVI7PEwdf9lMANQ1ooR2Y9LjpgHCkUvzg8phyZffrix01JYdnU7sqZ2aIBBN7bWqQomN1I0pg928QUKXOaaP8fNVGEzErg7DPiipjZNNVfZmZmZmZmZmZmtuDYIkXLrHK/YlioCJkl7lgGwCBFxqzT86T0UCTMmuzfnMBxyp1ZokF/kprvPQMgphyZtTmblHnXlEvtgU+VC7OKd8eQ1PZvs7XdQOBG1ZlZ7N5/ktTuyt3iqjKzAGihujE7bAQp/ZeMV2ANcJDqwKxs4ySS+k5erDDdBbRVtsxiW48kqfiDF4qUpqIhUK6smI0/npTNDx2mDA4FblPtmZWsGkbSuNeHKLMns7nKMoudsTtJjWbNb6EaDQDOUG2Yla8mZdm2NtqRl4DdtVNmLQ5qS9KkLyZoJ4YXAiXaIbPYp7NIKr373TLt3N3AKu2AWY/jSBnwUifVyrvAMNXErGjhIJIaPt9StVU2CRivTMxiV11JUuGauyqUhQuAe1SdWdclpSS1H7he2ZmQ6SrLLP5Ke5L6vfeKsrcM2Kows5nHklTw+KuVqottwJFKMVP320tJOv/Nq1RHZzYCkjcTZvGWg0lqfMX7MdVdR2CjzCQN/5qUKft1VU7mA5Nk1mRDMUm7bvlUuWoxDpim/GaJCQ+S1PzR1xKKwD7AdcpnduYepJwyt4eiMSS/r7Ks4sIxJK0bcYYiUVQiaTNwr/KSJYZ0JqndDVMTisTiXfr+QdJDwD+Vh+ywY0jpvGcXRaLLkv7AWkmHNc3Hqywre7shSY8tOlqRiO92ZTsAODBZSPSu8onFFk8hqXjOprgiMXtEW1LekPQCMEb5w5ptIeXBn01TJHpcM4+QUQmpqC/QRnnCzppEUoez71UkEgft3Zyk3kM3FSYf2U8GzlaesHEA0OjSjS0UiQO3jILwTvwaYG9JPwdIKD/YKoBHZvRUJCb+YS0pA27rlEpvoHW5pP5AA+UHKwEKOykaLRuTNHJ5SyWVjQSukbQE6K88YdOBcxSNspGZduKXA/MkjS8Gmig/2GxgsCKyHCi+db3C1BJgtqSrgf2VHywG0FLRuAPgaKUZDBwjaTegufKErQaWKyJvAccozTlA27gUbwt0Un6wLsDIMkUhmKEwdSoFdpN0DHCB8oS1Be5SzoIZWpUpveFKSZ/k01WWHQSsUUTGAucpzUVA8XhJ84A7lB+sBVC4XtH4PDVDYSW9gSWSrgGWKU9YR2C1IhDMUJqhybvR8tZApfKDHQj8WhEZCjyYMb1hsaS9gf2UHywG8Iqi0YBM2+3LgMkacvYwoFh5wo4DVioijwCTlWYG0G8zVRYoP1g50KqJojED6JteJNCzESn0/Vx5wkYBrypnwQy9rDSzqNL0xheKlC9sIfC4InIpcKnS9AraK/KHFQEFXykaG4Gm6QPUogNwjPKMzQH+p5wFM/SQ0pwNbFaesX2BP8YUjbOBQzKmNwxRfrFYKfC+onEvmbbbNwOvK8/YEuAKReQbYB+l+RkwroXyi00ExnRXBLrudxqZZmhaMTBfecbOB36pXMUWHtCYKm8nPzj36X9LQtt9AMxSnrFXgCnKzWXHn08KY7WdrgFO1XYvAI3OVH6xOMBJqrvDnu9DSttghrYAM7Rd/DFgm/KMHQGMVl0t+XUBSf2+vCw0Qyd24+Y2kvThysb5uOZn5wK7JlQXvz+9aVp7xSLgG22nygYV0vrVT1FlgvKMlQKvKWtdhvYmhev31XY6mtB2e9kJfy8kac405Rm7HXhUWZo7uICQtUrqTOql1x3LR5I0akWR8o51B66dqCw0+KgdKQ2/7AVwoKrsCUwqU6dz3iJlW7nykg0Abldt9Zg8jJRGa1dIag9sUZUu7YA/v1NKUscDY8pT1hI4RbXz6rICUgY9U6TtBoaP//8l0HdqC+UviwOcoZ07c9s6UlodsV5JMwuAg1RlKim3dlF+s/eAN7QTLeaPbURS6bypCiRTIask1gEw/RP/BdoC4PCEduSmfcaRcu2tRQrTXUDzHqoyAiadVSIzqRiYqhod9tBmQpqnf+ZVNATmqsoZo5tpOzNtAG5QZkUvXNo0aK/4cTJZNCy+6XxgL6Uxq0wmHFd37+S+JBV/sCmeShYN2broMQCYrTRmjwB/UbrxS/qH2yvCyaJJXfbsTMoqpTGbAHRO71o6rzhorxgSvk7lb9ouMTXVxgSdhySUziyRnk579DFtSWp0/cYWGVIhZ49YR9KYCyuUidnQcDptedC1FGqvCKdCnjD3FFLOPlM1MOsEdItXdS3d0DroWpqgau4m5MEJCdXMbAywSTrjjVDX0uclyuBdUoo3NNEOmV0IjA11Lb11TidlVtYbAJ4frp0xqyBk5PLf7+Q8NrhlXLVg1p+kwjUnlGlHJpTeXqnaMRsCAE+tXq/omCWAVis/VLTM/vP4/k0UNbOY6hczMzMzMzMzMzMzMzMzMzMzMzMzMzMzMyub82GlomZ2E1B63dEtFCWzy6nSd+7whKJiRkjnTeWKgtlE0hxxcoVyZfYacPnsn81qRaD44k+LlAuzI5Pd/fFX3lzblMCopW1iqiOzGFBYripdX9hnMCFHvjZRdWHWBnhaIQu+e/QxQi6/qUzZMlsK/Elp7p3xUWMCY7ZdFVc2zHYF7mmmakre/9PThQSeOPWwmGrJrAiAwvuvW1Gmasrfvrw9IXff1121YfYpKc3XPHNTTNV8dft/xxEyeXGJdsZsIGHD7nzxSVUT+/Ftp7cmMGnJzIR2xKwYmNWWkD5f9Oqhaip+87fnCggcsnF8TDUwqwAekxY/NHYMgdK9brmvSNVMO3XlIEKuPLiJMjE7GXhU2xX9avRepQTGvPPiYlV34F9u7EOgdMvsIqUzOwL4Tik9No4lrO0Rr3ZSNfHfX3xJMYG2t3dKKMwMYIECrwOjOhDyzdmbuquayt3+/FNCOk8tV4pZOTBYId8AP4kNeebvzQk0Pe1/T8ZVTZulxx5OyLETKrSd2Spgn7TeR06SpLIV1/UvJNDw0iVHq7qjH+7Yj0Dx6k+LZNYZeEGBDcAfldLsoufPJ6TRr/eZrWqKLjv+n6UEBu3vdRsXEEGjrmln+ecVdtJPzptEyOZFR1Womokv7zGAkI9XTFT+suHAWoW0BS5SmsTJq49sR6Dd4y9lajxe/8u9+xIydEiJ8pPNBd5UYDFQOF4ZNDlql2cJ6X3e3H1VTexf23a/lkDD476KK/9YX+AVBV4E+qsGHUnzx+WfZxjCkoVvPFBI4InPp8WUV6wF0CquwDvAdarBMGDtGb+4viGBwv5v/KhE1XT5fPlnhHT8VXflD/sEmKVAizHACmXWFeBhSfEP7zmtKYFrd982JKZq9p17dW8CceUNuw74mQL3Ac1LlNkMgMrUlJ31+jeETBr05cmqJjHhpY/bAcBbyh9WCsxW4Bbg76rBKUAHhQzf8Gg3QvoM3ThR1VQc9J9uwNvKG1YJjFLIXsAzqkFj4Hql+fmLdzcmUHrK8ZcVKd0hQDPlDfsQuEKBcwuAIcrsJIBeqq7FfVvmlRLoN/bhrQrrWQDElDdsDrC/AiMA1v1joTJZBBSqBkMJg3XHLj1TKb8FblTesBhATwV+SpVGAyYfqHRvAeerBk8AN//hhmGE/PTPqyq13bfAK8ob1gx4RCHFBBrPe6aLwpoCh6oGjYALpFiDc6Y3J1B8ycUt47oZqFTesF7AZAXOJU3vdy5MKOlXAA2U2QqA5B5zxWsj7i8g0Gc6UKr8YY8AUxX4HdD+ngdbE1K46xVPptYeaKca7A20VqDZuyufJWyO8oYlgHaVCtwJDJV07/LPSgkpXjbiXI0CNqsG64AH0x/CXvNBH1LOUt6wmcBfFYgNAzaqyllz+hYQ0g9gtDIrKQAGqprEHQP/2g5+2CPW/wekCaAtLFD7DwAAAABJRU5ErkJggg==')` + } + }); + } +} +exports.TheNativeWeb = TheNativeWeb; diff --git a/build/lib/themes/Theme.d.ts b/build/lib/themes/Theme.d.ts new file mode 100644 index 00000000..22f45c28 --- /dev/null +++ b/build/lib/themes/Theme.d.ts @@ -0,0 +1,92 @@ +import { BrandColors } from './BrandColors'; +import { Breakpoints } from './Breakpoints'; +import { DivisionColors } from './DivisionColors'; +import { FontSizes } from './FontSizes'; +import { InteractionColors } from './InteractionColors'; +import { Pattern } from './Pattern'; +declare abstract class Theme { + readonly breakpoints: Breakpoints; + readonly color: { + brand: BrandColors; + division: DivisionColors; + interaction: InteractionColors; + content: { + background: string; + border: string; + }; + copytext: string; + backdrop: string; + state: { + error: string; + success: string; + }; + }; + readonly components: { + borderRadius: { + default: string; + }; + HorizontalBar: { + minHeight: string; + }; + Sidebar: { + width: string; + }; + Pattern: Pattern; + Paragraph: { + maxWidth: string; + }; + }; + readonly devices: { + small: string; + medium: string; + large: string; + xlarge: string; + }; + readonly font: { + import?: string; + size: FontSizes; + family: { + default: string; + headline: string; + code: string; + }; + }; + readonly icon: { + size: { + xs: string; + sm: string; + md: string; + lg: string; + xl: string; + xxl: string; + }; + }; + readonly name: string; + readonly shadow: { + overlay: string; + }; + readonly spaceUnit: number; + readonly zIndices: { + content: number; + contentOverlay: number; + navigation: number; + menu: number; + modal: number; + overlay: number; + transfer: number; + }; + readonly space: (factor: number) => number; + readonly ease: { + outCirc: string; + outExpo: string; + }; + constructor({ name, spaceUnit, brandColors, interactionColors, pattern, fontSizes }: { + name: string; + spaceUnit: number; + brandColors: BrandColors; + interactionColors: InteractionColors; + pattern: Pattern; + fontSizes?: FontSizes; + }); +} +export { Theme }; diff --git a/build/lib/themes/Theme.js b/build/lib/themes/Theme.js new file mode 100644 index 00000000..0b05054e --- /dev/null +++ b/build/lib/themes/Theme.js @@ -0,0 +1,103 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Theme = void 0; +const Breakpoints_1 = require("./Breakpoints"); +class Theme { + constructor({ name, spaceUnit, brandColors, interactionColors, pattern, fontSizes = { + xxs: '11px', + xs: '12px', + sm: '14px', + md: '16px', + lg: '18px', + xl: '24px', + xxl: '36px' + } }) { + this.breakpoints = new Breakpoints_1.Breakpoints(); + this.color = { + brand: brandColors, + interaction: { + focus: interactionColors.focus, + error: interactionColors.error + }, + content: { + background: brandColors.white, + border: brandColors.grayLight + }, + copytext: brandColors.grayDark, + backdrop: 'rgba(0, 0, 0, 0.5)', + state: { + error: '#e7415d', + success: '#27ae60' + }, + division: { + company: '#dd0099', + concepts: '#ffcc00', + learning: '#880088', + services: '#ff7700', + techlounge: '#00eeff', + technologies: '#66aa22', + wolkenkit: '#00aaff' + } + }; + this.components = { + borderRadius: { + default: '1px' + }, + HorizontalBar: { + minHeight: '54px' + }, + Sidebar: { + width: '80px' + }, + Pattern: pattern, + Paragraph: { + maxWidth: '800px' + } + }; + this.devices = { + small: '@media (max-width: 544px)', + medium: '@media (max-width: 768px)', + large: '@media (max-width: 992px)', + xlarge: '@media (max-width: 1200px)' + }; + this.font = { + import: 'https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,600,700|Ubuntu:300,400,500|Ubuntu+Mono&display=swap', + size: fontSizes, + family: { + default: `'Source Sans Pro', Arial, Helvetica, sans-serif`, + headline: `'Ubuntu', sans-serif`, + code: `'Ubuntu Mono', monospace !important` + } + }; + this.icon = { + size: { + xs: '14px', + sm: '16px', + md: '24px', + lg: '32px', + xl: '48px', + xxl: '64px' + } + }; + this.name = name; + this.shadow = { + overlay: '1px 1px 10px rgba(0, 0, 0, 0.25)' + }; + this.spaceUnit = spaceUnit; + this.zIndices = { + content: 100, + contentOverlay: 200, + navigation: 1000, + menu: 2000, + modal: 3000, + overlay: 4000, + transfer: 5000 + }; + this.space = (factor) => factor * spaceUnit; + this.ease = { + outCirc: 'cubic-bezier(0.075, 0.820, 0.165, 1.000)', + outExpo: 'cubic-bezier(0.190, 1.000, 0.220, 1.000)' + }; + } +} +exports.Theme = Theme; diff --git a/build/lib/themes/Wolkenkit.d.ts b/build/lib/themes/Wolkenkit.d.ts new file mode 100644 index 00000000..3e23955b --- /dev/null +++ b/build/lib/themes/Wolkenkit.d.ts @@ -0,0 +1,5 @@ +import { Theme } from './Theme'; +declare class Wolkenkit extends Theme { + constructor(); +} +export { Wolkenkit }; diff --git a/build/lib/themes/Wolkenkit.js b/build/lib/themes/Wolkenkit.js new file mode 100644 index 00000000..c4919d2f --- /dev/null +++ b/build/lib/themes/Wolkenkit.js @@ -0,0 +1,30 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Wolkenkit = void 0; +const Theme_1 = require("./Theme"); +class Wolkenkit extends Theme_1.Theme { + constructor() { + super({ + name: 'Wolkenkit', + spaceUnit: 8, + brandColors: { + black: '#000000', + highlight: '#29abe2', + gray: '#363d45', + grayDark: '#2f333b', + grayLight: '#e5e6eb', + grayModest: '#999999', + white: '#ffffff' + }, + interactionColors: { + focus: '#363d45', + error: '#ff0000' + }, + pattern: { + opacity: 0.05, + backgroundImage: `url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlgAAAJYCAMAAACJuGjuAAADAFBMVEUAAABi0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f5i0f4O4nZLAAAA/3RSTlMAAQMCizDg8P5A+/0E+fQJ+gb8BxIP9ggFNgrx90gWtuX42umRsRjIEAzmCw4VT+zu6PLK1mh638XVLqSQkuogYBmG7+JaoIDzsusjRBE4zzKYDe0U44zAoUYTvUW5cBwosCarZIjGn3FQf1YkITEzGj9lxFXBuooqJdEXS2pbjtKWdEGaHUlseKrdlFdTe7+uO5WeuMKo5B+pZvWFr6YrrWsbL+FdTkqBeV91YzSlPFi0fc4s2T3LycxubdCigue81zdD2Clyx1lz3s2XTG92TTpcQo+EfmHUUbNUmz6sObU1u2LcJ4Mid9tSjZNnnB6ZadO+nYe3o8MtR16Jp3y4h1hqAAAiV0lEQVR4XuzdaXRV5b0G8H/OIXA852QOCSQBwiQJU8IQAhqGMBglCI0ExQIyySDIlDIoqKVMLYOAYBWkgAwOoEBrRRzwWkvvwuH2Og7U1laulIul1Wrrpbrsfe5eWdn77DfZ79khOVld6+7n9zUr3551zrN3nveN/IvRPgCHJOIAgNTuYsksuikbivt7iqPDMFSKo6yBAELiHdQCwBGJeBVAf1GVvneyPWxC5yripY6lAIaJxgQAl8QzKAVAoV8iJgEok7oWfFYcgk3Oz8tWiGIYgKXR8hsvnkF7AUyXiLQMAMfEkX8IVC0mVKWIqRKGw+JsBQxh8Qz6PoCHJGI1gGt1CXgDhpmJsAl03TlRqvUDEEgRZ2UAEsU7CIb/loihAK4TjWcBdBWZt+xMMmyCxwdOEXkOQK5o/BxAmXgGdQPwmticAPC8aGQA2CnVjo0fF4BNRp8ggKtFoz2AteIZ9BGAv0pEegjAHeJsGgw3iyk8ot1YqL7V1Kh4GPziGdQOwG8l4l4AD4rGuwCCosi78GwGbALjXvxI6qowPxi9geIABNLVlw24RjSOAzgudUwrOR6ETfKAZuWi2gDgEfEMqgRwQmySAXQZFSeOggD+LI4mPgBFYv/Z+RIRApAnnkGbAAy1Vy7zMa/TFKnjFAxTxFkbGHrDbuR1v/VLtZ4wiHdQBwDvSMQlWDKevZAuigcAZIjGdAC7pO2c13NgEyr++1kR2Qrgb+IZ5AOQkSYRp6EY2+6esFhyAfQRjZcAnBaDXFVxLhU2CcvfKwCwWjyDBgOYJBH+sQCOq495w198RqqlBJQdhCozAGCVmN7c2isAVaZ4Bq1S0iByBEBylvz7n4+n1nrMGyzyCQzp4qwItet55r4lSuUS76AMAAck4hCAm8QgcW12dg2oj3nFAApFYwuAAqlt/9DlCTB4q2JRGoBBcepoCpvFlFQ1IRuqlT5xlg3gZ+Lkl38vhmGReAbFA9gjEVntAbQWu9KyMerEr/izI1JXKQybxNlaGHziGfQfAD6RiJsBDKubgO9UvBZSH/P+bb+ozgMI+cXZV+ay1CMItSYHzQBsFSf+R3eHYNd7S1GWRJwEcFA0VgJ4QzyDutf+098YAF+IRg6AVNgEek2/y29bxWwXjQQApeIZNArARonoAcPt4uwqGD76/Ksvk2GT+um2r0VkAQyjxdloGMQ7aEmtjforAJpH62PJYpA/zDqonqp47qmj5g+dbAcwQDyFkxngTMmv820J+J1onLPHI7zpZwVQ6bPTHMAm8QxagRrJP37/Dz4RGQ5grmikAmgmNi1Xnd4Fm0DunnfipC5/CEB38Qz6OgER2VP33QwgUCnO3oShXGq58+LLQdgEX353mtMyB+IllHlkPFQrReNh7fGt1UcfhN2u009cLzYfAvhQvIZaPtZFPWxzqFIc9ALQXzRGQoWxH78SlhoFAN4SDyJ/6a29YFM46ZGw0ypmtjjLh2Hz5hPqxO/g+PvEkAdDingUtZqyUT1sc2mR2NyNKA38eRjyReTpjR3Uuc2Zb3e8CiBZvIwqq3KVWPS9sdz+ymukaPwDQEdzKrhu/UsB2IQAlIjHkb98Rg5sEmfO7i6G3tEO3icC2C0RSQ9tyYbdAiGS8NnpAdgUXLd4LQyLxdkOGG4T1cLHTybA5JNqRPm3vQ6bQLRVzAzdXX0L1hSHYEiQCKIVzw9SwrV86FpxcgbABnHmG163YhH5p5Ukw6b3kn1ZUluyeq+IKgjgSqmDKOXYh+oKa2tPsXsLhvnibBEM4oyox4VhsEk9V3GVmMYDaC8aVwN4XfSI9l/IVu+2ndNWpGYTMUY0HgTQU6Ii8j/911T1bttPUsIhAI+Ls3AAQL64Iso8tQU2gUIYVoizwwACUj9E6YeLYRcqmSKOlgLYKfVG5N9RlghoLj2yFAI4K5eFKDx/T0i99OjtsNhVNvC/BhB1K8qtdbftMbH0A5AhDUO08O6X1EuPls2L3Bk/VBqBOLdZ1l699OiWfJEMAOXSKEQpo7cGYDNoaYz+awBR/p9OQjFOYoNoxS0FsFRJzBD5pwwMolq6xBRR5kf3A5DYI+o+X/7fISIiIiIiIiIiIiIiIiIiIiIiIiJKz5Qm5ZssXkTNAr/4oGWTpWriNb0RJx5EzQDkrO+ZIrH3ne93BeDdYDFYhsKKY7ENwLzNLwPwcLAYLFPzoXdIjHz3i/4AGCwGq8aYVQul0ZI2XRcEGCwGC++tz0ENs8o3qq6bTu9L9HKwGKwrpOUHvwigmkuVd6/rpuPvl4u08HawGCzDwlVjAChVvqF1HehVclZEGCwGq9odQ5u7V3n3up744jc+MTBYDJYp7lhFoUuVd6nrwY9fyRITg8VgWVJ6Rqny7nW9h1gYLAZLpa/y7nVdNMEiBktf5d3ruj5YxGDpq7x7XdcHixgsfZXX13X3YBGDpa/y+rruHixisPRV/qyurrsHixgsfZXX1HXXYBGDpa/y2rruHixisPRVXl/X3YNFDJa+yu8C8FUPqRcGi8Gqt+YA4oXBqj8G65XvFaU3IljqhnQng1WDwWoHJHeem9TQYKkb0oQ8Bqsag9U2CAOyZ43yuwfLfUNaxWBVY7A+ganrjfPdguW+Id3NYFVjsKR1p44w9e03OEqw3DekV7fxMVgmrht8ba5OhEmp8m7BSppr25C2G9GN6wYV1w3dRrSzEqJWeX2w/KNmZcPU5YdtuW5wwnVD2x92gUGt8vpgzb+xK0wd5tzOdYMe1w23z+mgVHltsAb36wtTx06tuW6IgsHSV3k1WOlF36td1/XBIgZLU+XVYCXN7ZzsUNe1wSIGy7nKT1KD9ZCmrrsFixgstcoPUYOVnqDUdddgEYPlWOVzuqvBkqlKXXcNFjFYjlV+Y+3y/qhZ1xks4h6LuMci7rG4xyLusYh7LOIei3ss4h5Li7jHIu6xiMHiHou4xyLusYjB4h6LuMci7rGIweIei7jHIu6xvIG4xyLusYh7LO6xiHss4h6r6RH3WMQ9FjFY3GMR91jEPRYxWNxjEfdYxD2W5zBYT8Y10R5rxy4vB4vBwmvvTYn9Hiv9Lz8GPB0sBsvw3OzSWAYrc/HUBMC7waInE1AjtPTwDbEJlv+d7dkw9RFPoryqmwKokfPAr1s1OljxzXJhOvf4NPEsWnthJUwFP3grrhHB2nFoAEyDNo4Wj6Orvh0Ok1Xl9cHS13XTrj2PtRIi8S9aMwxQqrwuWG51Han/c0++1CBK+83vlSqvC5ZLXX/2+baiIGp56xalymuCpa/rn5bdKQ6IJr+xXFPlzWDp6/rAX4oW0dMzlCqvC5Za1xOPrgtLAxCrvBmsGNZ1YpW3ghXbuk6s8mawYlzXiVW+OYB1sa7rxCofBNAEdZ1Y5WNf14lVvgnrOrHKx76uE6u81+s6ERH5wz6JKaLw6nc/BbCh08QUiQ2i60fsGQZT798P6SGNRXTn7C1BqAIzNx8QQ6Y0BJHvmWV9EVGMiIPbHpNdU28tlctD1H3x+AJYcj5+aL+UPjl1FywCw4k5C+KknogGv7A0GZZen/XMMidu67YdtAfLkLvm0SxxQ+Qf/ZOViFh+vrVfFAf6zQwAEPvnWdFa0SPqdtv2jrAkTNq3Q5z0GDK9t0ws2YCIk+dH+8UB0eSidu1hGXnNvTeIXooY7nhjSQiWjrP+pP4GUdyCsjGIGDDjPp/US/o9/xwGS8LSF+ZJNSJJumtNLizBCbeUy+UIX3HxV0ooj/kYALry1s4ZsBQe/Wlew16k/i0Iy9hLc/PEw+jAU30CsHS4eIVPGqzl3EsFsAS3zPbmKI7Svtl2EJbQkif+KI3lu2/GGShBFW+hyiEPXwtL9vq302P4cjUBFvEWCsFS3GlUK4mp/N/Mau/NYJG1VOi3V2Itrc22cfBmsEh5tRBLPYZsTYQlW7yFEPGrZot8Eht7D80MwPJayalW4i007z//KwGWYXtGXC+N1OpUp2JYQv1/tFc8iW6495qRsKQueWKKNFj62+uzYbn2Yc/vlzmRWY6Icw377pr2xJKQfVzaJk2IPr/bvmnInn64Ui6D74qLHWAJ9HnqgNQg6tbzdy/Z61G/r6VeWv70aCEsGZ2rrhQFUdyRstcR0Xyj+/fZLROCsOSuuStJnBDtr7LvHBJ3P3ml6JULLGMedzlSQVxm/WCcvTK9Pz/O+W/NAyCo1r7dF5PFHVH8/3YJwPJgxZtJjm8pBEDH7bd1kyjCYkO04gP79iHnw7+YH0o79t1vThfky59EPz5RWtU5MV28hZJODI2+ak+7eWAx7DWqdbj1+eWIkKjinzoBwz3iLXQXgILxi1tKNHt/9I8QLMmwJC99YXC91g07xVuowlo33C7RfPeRnS2gGjt+cfdo64bdibAMF2+hccq6ISxRtFr9bgeY+i57xlffdcMGl3UDcd0w7dWbgi7nI1qN4rqhBtcNg2AJua0b8uKvb8C6gbhuaPB31x9rrRu+SROitU20biDKauC6Ic9l3UAUt6CJ1g1EC5to3UCU9NjlrxuKJos7ovjNTbNuIFoxRLtumGStG1Y2ZN1AXDd0aqJ1A3HdcKGp1g3EdcMDLaAq8Oa6gbhuIK4biOuGiVw3ENcN/1rEdQNx3UBcNxBx3UBcNxDXDbFHXDcQxX7dQNTwdcP/tXffb1KWd/vHz5kRWbcAu8uysCAuIL0XQVBQilIURVAQFJAiiiVCLGChCRLsDcQegwIaS1SMXTRGMPZurCVG46Mx6teoKSZ5fw/ZmeNeZmeXnZ1bf9g5X3/DZ4657uv4XOepGpmFtt2QzCy97YaQmAXbDeEyixXHFCYzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM7PO787uP3LkQ8+tU1jMuj+/ZxFxT08cqxCYtR7ciu3snq9Mmc0eTrKcS5URs7LrqTDmwxV7D77kCSpcElXdmZX8E4CGS8ZFtM3QB58AYExr1ZVZ4SSAop06KRB7uTdArwNUR2YrAMrf1/YOPQ3gvBLVidmFAB+do2TROwDuUF2YdV0L9N5HVUXvAnhFdWDWH+BIpTJ2BHC/0mdW3BvYX6n1AFiutJn1AHK/VDXuD6YuHWb/AM5VdRYDDaNKl9lhwNuqTtc2wO1Kk1l3gKaq1hpgttJkdhBwmKo3GFigNJn1APZU9f4P+EZpMpsLTFL1ptXls9DsrB1cgd4KHKM0mT0OdFH1zge+VZrMxgJ0V7VOrtNXodnOwH6qTkkToIHSZfYNMFrV2RfoFVO6zFYCOScotcjDwAqlzSz/MGCWUvsDwEFKn9k0gLlKpXU7YI3qwKx0ANBrS7WPLB5XXZlPWaz9WMlKRwMcoroxexWg50pt75w5AAMbK31mwaMJvhmqQOHzLQG6nKgdM4sOWv+Xw++aNGnS1H0UKNsNgDbf/L5Q29wzshyAtf/SjpjN+9V3jUi4QgHln0+FVvddsf/1k4ZQ4ZkvVTOz2Jurc6hsF1U2t5xkuUcXq0Zmse/bkuTTMlU2fuQEKsu7YotqZnbpUuKazflq1fdzV6W6SOi8/oNGVMi7r/+VqplZ2TIq7LzTvYXaZgbAr1Oc7T/71bSHFr/fTTtitqUfAOx2ZEwJHYYATd5VXZmt7APAY+NU2e/zgJaPq27MFucCtDteSc4GaDlfdWG2MQ9gamtV8TlAm/VKn9k5TQAWRFVV5BgAPi9VmsyifQCOVUrRzwEYeJDSY3ZVMFep3JIHkPPFPKXJHMzAf1S9lT0BaPX5iaots+YAq6OqwbzVAJBz2voS1YpZe2BIa9Vsv3ZUyD152IVbirUDZicBzNWOdH69IYEuQ1UTs/xap7R3u/VpEvhWNTGbBbSbolqJ/f6rdlToVabqmd0IcIpqLXLjQ4cfnAt8r2qZ5RcBs5Smy4EPVS2zw4Ex3ZWm+UBuJ1XDbBDAH5SuWO8a/j/NogXADKXvcmCwUjN7B5jQQen7c/WRpGZbgo32NP0SaKRUzGIFAG/crvQVFgHzlIJZ5FcAFF1bXLdqnWom0mxKWwD6HaR03Q/sqnokf98Lz1Ro7DYA8nYqVXomAXPrW/pX28tv+1jhsE5tAXji0iwfrGFUGHLJ1hb5CoEtBiBn7zKlYU19G6w1BJr9ffPkzsqUdRsIwKf3qvZ+B9yr+qOwDdvLe2bw8VFlxk4BIOeyzqqthsDHqj/eB0adsvszeQT4mTJkXR8AYMBy1U4HIKex6o8XgKmSOk/efMQ1xM1UxuxCAHi2m2rj38AA1SOjgddVIb/F1kvGAD0jypw17gjAiMmqhZuB91R/RCYAryhwHNBeobAXAeCdEu3QHOAp1R8LgaIyBU4DblU4rPEkAMrP0g50yAEGqf64GuirQLRRqOVAdiQA7N9JNToWuEn1yCPAYWdcduc5wZM4mhUqNFZ6BABd5qoGkSeA/6geeRpoAnDTHXvcE5OeB05VmGw+ANwxpebmca5U/TGPyoZ/sOpi4FqFygqnAtD7M1UjcnB9e6RzATCEJLsqZPY+AMzqrpTWA3RQPTIY+OaA71f8jkBeicJmzdsDMOYUpTC2HfCs6pNNwB8l6dAeC55sAgAPK3ymFgBwXQdVsT+Qk696ZHwecLriGs+/6DDgMv0YLH8WABMWK8lZ9a9O9d9AOwX0BHCnfhx2Ug4A7depsk7lwG6qV/4C3KBAd4Dp+pFY/uEANNxXAX0BUKh65eKkBNYewM768digIgA+mK6EyQDzVa/kNwP+pMBOwF76EVn0HQD6/DyibbqNAKaqfnkcaJSvQEdgD/2obEsBAKdVlKh+BVCs+uUp4AgFypoAv9SPy6LPAtBnUURaDnCk6pnrgJsV2AXoFdOPzU5oBsDFJ3YeAExSfTMm6dfyP+Au/fgsNhiARqcClKqe+Rgo6qzAamCVfgq2zyjiXqyXj8EfUCDaErhUPwmL7QQAHVXvHAPsrkADoE2xfiJ25QSAxqp3Pk2KvfwFcLJ+MhbZDD1U73RIXgK6AjhaPyGb/mE9fVD5kQIqB85SZsxeBfZX4EQgZ6wyY3YfMFuBl4GvlRmzzkXAUQocEsJ+rNmBwJiIAgOBxcqM2cikCoWmYTxtM/sQODspwOIwZcYsPzmk4Wjgv8qM2e1As+YK7AksUmbMpiUtApUWhJCjY/Ye8JoC9wItY8qMWe+kkIZbgO+UGbMTgLxuCuwG9FdmzPYFDlYgNhx4V5kx+wL4XIF/AU1KlRmz5JCG/wc8qcyYdQdYp8D1wAJlxmxucg/CCGCDMmM2EfiHAucATFFmzDoCf1PgD0A/ZcasLDcppGEZ8JUyY7Yc6BVRYCnwvTJjdjfwlgKdcoBPlBmz1cD/KbAR6KLMmEX7JF2PDgOuUmbMfpZcW78GeEiZMXszqba+sA0wTpkxG1u0fW39ucCoqDJkdiqQQyCU4F6zW4FNlWvr4W5lymwLwNCK2vohALBcGTM7LwgEaX0TwCMRZcxsdxLv60uWArSPKhzmbvVriiWV7Qnw91KFwKxwFLCrVLgaoG+JQmF2A3C+olcB9OuucJj9Edg5sgJg5+kKidmZOcBVAENOUGjM7qdCy0EKl3nXD2h2qUJk1gCAJrsqTGaRtUDeBQqX2VfA1QqZ2YvhdROanamExq0WKARm+btMfKJZYyXcq4yZNV383+GEWu9ltvCFU/OocIjCYFZ45O7nEViljJl13/e9PiTQe3FTZcrsxouezCGBqQcVK0NmpRuXjSBw8z4xZchs6M/bX0MCI94uUYbMIieNfIbAjJMKlSGzsh7vdCGBolXTY8qQ2ZeLdmtDAm1fHK8MmcUOuvYMAtcPaq4MmXW7cP8xJFDw/NCIMmT2yfMfNiGBpZO7KmNmC/oReGdLvsJgdgNxo/ZoHVGozGmifXdprBCZFcKS06MKmdkU1V9mZmZmZmZmZmY275h8hcusbN8CmK8QmcVuXwrAAIXGrMOzJHRTKMwa79eMwLHKnFmsQV/imu01DSCiDJm1XkLCnKtLpLbAJ8qEWenbo4gr/3amftAfuEF1Zha555/Etbli16gqTM8BmqtuzA4dRkLfRWMVWA0cqDowK94wgbjeExdqO3cC5UqXWWTLEcQVvPdcvpKUNgRKlBazsceRsOnBQ5XCIcCtqj2zwpVDiBvz6iCl9ng6V1lmkdN3Iy53xtzmqlY/4HTVhlnJKhKWbm2tmrwA7KYdMmt+YDlxEz4fpx0YmgcUqkZmkU9mEFd019vF2rG7gJWqgVm3Y0no90IH1crbwBBVxyx//gDiGj7bQrVVPAEYq1TMIldeQVze6jtLlYbzgbtVlVnnRUXEte2/TukZl+oqyyz6Ulvi+rzzktK3FNiiysymH0NczmMvl6kutgJHKMFMXW8rIu68169UHZ2ZCxRrG7Noi4HENbr83Yjqrj2wQWaShn5FwqR9Oysjc4EJMmu8voC4nTd/okw1HwNMUXaz2LgHiGv2yCsxhWBv4FplMztzdxJOnt1N4RiU3VdZVnrBKOLWDjtdocgvlLQJuEdZyWKDOhLX5vrJMYVi4U69/yzpQeCfykJ26NEkdNyjk0LRaVFfYI2kQ5tk41WWFb/ZkLhHFxylUER3vaINABwQLyR6W9nEIgsnEVcwa2NUoZg5rJyE1yQ9B4xS9rCmm0l44BdTFIpuV88hwIiYlN8baK0sYWdNIK7dknsUitiBezUjrufgjXnxR/YTgSXKEjYGAHIv2dBcoThg84jtd+JXA3tJ+iVATNnBVgI8PK27QjH+z2tI6Hdrh0R6A61KJPUFGig7WCGQ10HhaNGIuOHLWiiueDhwtaRFQF9lCZsKnK1wFA9PtRO/DJgjaWwB0FjZwWYCAxWSZUDBLeu0nRYAMyVdBeyn7GARgBYKx+0ARynJQOBoSbsCzZQlbBWwTCF5AzhaSc4GyqNStBzooOxgnYDhxQpBMEPb61AE7CrpaOB8ZQkrB+5UxoIZWpkqveEKSR9n01WWHQisVkhGA+cqyYVAwVhJc4DblR2sOZC3TuH4LDFDlRX2BBZJuhpYqixh7YFVCkEwQ0kGx+9GS1oBZcoOdgDwW4VkMPBAyvSGhZL2AvZVdrAIwEsKRwNSbbcvBSZq0JIhQIGyhB0LrFBIHgYmKsk0oM8mKsxTdrASoGVjhWMa0Dtf2+ueSwK9P1OWsBHAy8pYMEMvKskMKjS54bl8ZQubDzymkFwCXKIkPYL2iuxh+UDOlwrHBqBJ8gA1bwccrSxjs4D/KWPBDD2oJEuATcoytg/wUUThWAIcnDK9YZCyi0WKgHcVjntItd2+CXhVWcYWAZcrJF8DeyvJL4AxzZVdbDwwqqtC0HnfU0k1Q1MKgLnKMnYe8GtlKjJ//0ZUeFPb5O/d9+aYfvAeMENZxl4CJikzlx53HgmM1jZXA6dI8fSG3DOVXSwKcKLq7tBne5FQHszQZmCafhB9FNiqLGOHAyNVV4t+m0Ncny8uDWZIJ3ThptaS9P6KRtm45mfnADvHVBd/Oq1JUnvFAuBrbVPWoFRat+oJKoxTlrEi4BWlrdPgniRw3T7a5igIttuLj/8uj7hZU5Rl7DbgEaVp9sAcAqxRXEcSL71uXzacuBHL85V1rCtwzXilocEHbUho+EUPgANUYQ9gQrE6nP0GCVtLlJWsH3CbaqvbxCEk5K5ZLqktsFkVOrUB/vpWEXHtD4goS1kL4GTVzstLc0gY8FS+ftC/8vH/vwR6T26u7GVRgNO1Y2duXUtCy8PXKW56DnCgKkwm4ZZOym72DvCadqD53NG5xBXNmaxAPBWyQmwtAFM/9l+gzQMOi6kmN+49hoRrbsnXdu4EmnVThWEw4axCmUkFwGRV69AHNxGgWYm2V9oQmK0Kp49sqm3M1gPXK7X85y5pErRX/CyRLBpQdON5wJ5KYlYWTziu6p6JvYkreG9jNJEsGtCWBY8CwEwlMXsY+JuSjV3UN7m9IpEsGtdpj44krFQSs3FAx+SupXMLgvaKQUroB3yrH8QmJ9qYoOOgmJKZxZLTaY86upy43Os2NE+RCjlz2FriRl1QqlTMBldOpy2Jdy0F7RXJqZDHzz6ZhCVnqhpmHYAu0YqupetbBV1L41TFXQR4YFxM1TMbBWyUTn+tUtfSZ4VK4W0SCtY3Vo3MLgBGB11LvHF2B6VW3BMAnh2qHTErJcDwZX/awXlsYIuoasGsL3F5q48vVk3GFd1WptoxGwQAT6xap/CYxYCWK95XuMz+89h+jRU2s4jqFzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzK571fpnCZnYjUHTtUc0VJrPLqNB79tCYwmJGgI4bSxQGs/EkOfykUmXK7BXgspm/mNGSQMFFn+QrE2ZHxLv7oy+9vqYJgRGLW0dUR2YRIK9EFTo/t/dAAhzxynjVhVlr4EkFNO/7Rx4lwGU3FitdZouBvyjJPdM+aERg1NYro0qH2c7A3U1VReG7f3kyj8DvTjk0oloyywcg775rlxeripI3L2tLgLvu7araMPuEhGarn7oxoiq+vO2/YwgwcWGhdsSsP5UNueP5x1VF5Ge3ntaKwIRF02OqiVkBMKOcAL0+79FNVZT+/ttncggcvGFsRNUwKwUelRY+OHoUgaI9b743X1VMOWXFAAJccVBjpWJ2EvCIfpD/m5F7FhEY9dbzC1XVAX+7oReBos0z85XM7HDgeyV02zCaysoPf7mDqoj+6aKLCwiU39YhpsrMAOYp8Cowoh0Bvl6ysauqKNv1r2cQoOPkEiWYlQADFdDXwM8jg576rhmBJqf+7/Goqmi9+JjDCHDMuFL9wGwlsHdS7yMnSlLx8mv75hFoeMmio1TVUQ+170OgYNUn+TLrCDynwHrgIyU0vfDZ8wiQ+9u9Z6qK/EuP+2cRgQH7ed3GBUSQ2znpLP+sKjvx5+dOIMCmBUeWqorxL+7ejwAfLh+v7GVDgTUKqBy4UEliJ606og2BNo+9kKrxeN2v9+pNgMGDCpWdbDbwugILgbyxSqHxkTs9TYCe587eR1VE/rV1t2sINDz2y6iyj/UGXlLgeaCvqtGeJB8t+yzFEBbOf+3+7dZtPpsSUVax5kDLqAJvAdeqGkOANaf/6rqGBPL6vrZLoaro9NmyTwnQ/jddlT3sY2CGAs1HAcuVWmeAhyRF37/71CYErtlt66CIqthn9lU9CUSVNexa4BcK3As0K1Rq0wDKElN21qtfE2DCgC9OUhWxcS982AYA3lD2sCJgpgI3A9+pGicD7RTQ0PWPdCFAr8EbxquK0gP/0wV4U1nDyoARCmhP4ClVoxFwnZL88vm7GhEoOvm4S/OV7GCgqbKGvQ9crsA5OcAgpXYiQA9V1fzezXOKCPQZ/dAWVdY9B4goa9gsYD8FhgGs/cd8pbIAyFM1BrO9tccsPlMJfwBuUNawCEB3Bc6gQm6/iQco2RvAearG74Cb/nz9EAKc8deVZfrBN8BLyhrWFHhYARUQaDTnqU6qrAlwiKqRC5wvRRqcPbUZgYKLL2oR1U1AmbKG9QAmKnAOSXq+dUFMcb8BaKDUlgMs1Dalrwy7L4dAr6lAkbKHPQxMVuCPQNu7H2hFgLydL388sfZAG1VjL6CVAk3fXvE0lc1S1rAY0KZMgTuAwZLuWfZpEQEKlg47RyOATarGWuABbe+Tq9/rRcJZyho2Hfi7ApEhwAZVOGtW7xwC9AEYqdQKc4D+qiJ2e/+/t4Gf9oj1/wGkCaAtIGITeAAAAABJRU5ErkJggg==')` + } + }); + } +} +exports.Wolkenkit = Wolkenkit; diff --git a/build/lib/themes/index.d.ts b/build/lib/themes/index.d.ts new file mode 100644 index 00000000..136addcc --- /dev/null +++ b/build/lib/themes/index.d.ts @@ -0,0 +1,8 @@ +import { Theme } from './Theme'; +import { TheNativeWeb } from './TheNativeWeb'; +import { Wolkenkit } from './Wolkenkit'; +declare const themes: { + TheNativeWeb: typeof TheNativeWeb; + Wolkenkit: typeof Wolkenkit; +}; +export { Theme, themes }; diff --git a/build/lib/themes/index.js b/build/lib/themes/index.js new file mode 100644 index 00000000..063fab88 --- /dev/null +++ b/build/lib/themes/index.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.themes = exports.Theme = void 0; +const Theme_1 = require("./Theme"); +Object.defineProperty(exports, "Theme", { enumerable: true, get: function () { return Theme_1.Theme; } }); +const TheNativeWeb_1 = require("./TheNativeWeb"); +const Wolkenkit_1 = require("./Wolkenkit"); +const themes = { + TheNativeWeb: TheNativeWeb_1.TheNativeWeb, + Wolkenkit: Wolkenkit_1.Wolkenkit +}; +exports.themes = themes; diff --git a/build/lib/types/ComponentClassNames.d.ts b/build/lib/types/ComponentClassNames.d.ts new file mode 100644 index 00000000..1ceec91d --- /dev/null +++ b/build/lib/types/ComponentClassNames.d.ts @@ -0,0 +1,2 @@ +import { NestedCssProperties } from './NestedCssProperties'; +export type ComponentClassNames = Record; diff --git a/build/lib/types/ComponentClassNames.js b/build/lib/types/ComponentClassNames.js new file mode 100644 index 00000000..c8ad2e54 --- /dev/null +++ b/build/lib/types/ComponentClassNames.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/build/lib/types/CssProperties.d.ts b/build/lib/types/CssProperties.d.ts new file mode 100644 index 00000000..b1f68a4d --- /dev/null +++ b/build/lib/types/CssProperties.d.ts @@ -0,0 +1,4 @@ +import { Length } from './Length'; +import * as CSS from 'csstype'; +export interface CssProperties extends CSS.StandardPropertiesFallback, CSS.SvgPropertiesFallback { +} diff --git a/build/lib/types/CssProperties.js b/build/lib/types/CssProperties.js new file mode 100644 index 00000000..c8ad2e54 --- /dev/null +++ b/build/lib/types/CssProperties.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/build/lib/types/IconSize.d.ts b/build/lib/types/IconSize.d.ts new file mode 100644 index 00000000..b0791138 --- /dev/null +++ b/build/lib/types/IconSize.d.ts @@ -0,0 +1 @@ +export type IconSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl'; diff --git a/build/lib/types/IconSize.js b/build/lib/types/IconSize.js new file mode 100644 index 00000000..c8ad2e54 --- /dev/null +++ b/build/lib/types/IconSize.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/build/lib/types/Language.d.ts b/build/lib/types/Language.d.ts new file mode 100644 index 00000000..e34a4b26 --- /dev/null +++ b/build/lib/types/Language.d.ts @@ -0,0 +1 @@ +export type Language = 'en-us' | string; diff --git a/build/lib/types/Language.js b/build/lib/types/Language.js new file mode 100644 index 00000000..c8ad2e54 --- /dev/null +++ b/build/lib/types/Language.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/build/lib/types/LayoutComponent.d.ts b/build/lib/types/LayoutComponent.d.ts new file mode 100644 index 00000000..0a448cd1 --- /dev/null +++ b/build/lib/types/LayoutComponent.d.ts @@ -0,0 +1,4 @@ +import { FunctionComponent } from 'react'; +export interface LayoutComponent extends FunctionComponent { + isLayout: true; +} diff --git a/build/lib/types/LayoutComponent.js b/build/lib/types/LayoutComponent.js new file mode 100644 index 00000000..c8ad2e54 --- /dev/null +++ b/build/lib/types/LayoutComponent.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/build/lib/types/Length.d.ts b/build/lib/types/Length.d.ts new file mode 100644 index 00000000..6c799905 --- /dev/null +++ b/build/lib/types/Length.d.ts @@ -0,0 +1 @@ +export type Length = number | string; diff --git a/build/lib/types/Length.js b/build/lib/types/Length.js new file mode 100644 index 00000000..c8ad2e54 --- /dev/null +++ b/build/lib/types/Length.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/build/lib/types/MultiLanguagePageTree.d.ts b/build/lib/types/MultiLanguagePageTree.d.ts new file mode 100644 index 00000000..f93d5afc --- /dev/null +++ b/build/lib/types/MultiLanguagePageTree.d.ts @@ -0,0 +1,2 @@ +import { Language, PageTreeItem } from '..'; +export type MultiLanguagePageTree = Record; diff --git a/build/lib/types/MultiLanguagePageTree.js b/build/lib/types/MultiLanguagePageTree.js new file mode 100644 index 00000000..c8ad2e54 --- /dev/null +++ b/build/lib/types/MultiLanguagePageTree.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/build/lib/types/NestedCssProperties.d.ts b/build/lib/types/NestedCssProperties.d.ts new file mode 100644 index 00000000..42a940f5 --- /dev/null +++ b/build/lib/types/NestedCssProperties.d.ts @@ -0,0 +1,5 @@ +import { CssProperties } from './CssProperties'; +import { Length } from './Length'; +export type NestedCssProperties = CssProperties | { + [selector: string]: NestedCssProperties | Length | Length[] | undefined; +}; diff --git a/build/lib/types/NestedCssProperties.js b/build/lib/types/NestedCssProperties.js new file mode 100644 index 00000000..c8ad2e54 --- /dev/null +++ b/build/lib/types/NestedCssProperties.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/build/lib/types/ResponsiveSpaceDefinition.d.ts b/build/lib/types/ResponsiveSpaceDefinition.d.ts new file mode 100644 index 00000000..6a1402e0 --- /dev/null +++ b/build/lib/types/ResponsiveSpaceDefinition.d.ts @@ -0,0 +1,8 @@ +import { ResponsiveSpaceFactor } from './ResponsiveSpaceFactor'; +export interface ResponsiveSpaceDefinition { + xs?: ResponsiveSpaceFactor; + sm?: ResponsiveSpaceFactor; + md?: ResponsiveSpaceFactor; + lg?: ResponsiveSpaceFactor; + xl?: ResponsiveSpaceFactor; +} diff --git a/build/lib/types/ResponsiveSpaceDefinition.js b/build/lib/types/ResponsiveSpaceDefinition.js new file mode 100644 index 00000000..c8ad2e54 --- /dev/null +++ b/build/lib/types/ResponsiveSpaceDefinition.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/build/lib/types/ResponsiveSpaceFactor.d.ts b/build/lib/types/ResponsiveSpaceFactor.d.ts new file mode 100644 index 00000000..e849b1ce --- /dev/null +++ b/build/lib/types/ResponsiveSpaceFactor.d.ts @@ -0,0 +1 @@ +export type ResponsiveSpaceFactor = number | string; diff --git a/build/lib/types/ResponsiveSpaceFactor.js b/build/lib/types/ResponsiveSpaceFactor.js new file mode 100644 index 00000000..c8ad2e54 --- /dev/null +++ b/build/lib/types/ResponsiveSpaceFactor.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/build/lib/types/ResponsiveSpaceProp.d.ts b/build/lib/types/ResponsiveSpaceProp.d.ts new file mode 100644 index 00000000..b7844c18 --- /dev/null +++ b/build/lib/types/ResponsiveSpaceProp.d.ts @@ -0,0 +1,2 @@ +import { ResponsiveSpaceDefinition } from './ResponsiveSpaceDefinition'; +export type ResponsiveSpaceProp = ResponsiveSpaceDefinition | number | string; diff --git a/build/lib/types/ResponsiveSpaceProp.js b/build/lib/types/ResponsiveSpaceProp.js new file mode 100644 index 00000000..c8ad2e54 --- /dev/null +++ b/build/lib/types/ResponsiveSpaceProp.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/build/lib/utils/getLanguageFromUrl.d.ts b/build/lib/utils/getLanguageFromUrl.d.ts new file mode 100644 index 00000000..bb1e3aca --- /dev/null +++ b/build/lib/utils/getLanguageFromUrl.d.ts @@ -0,0 +1,3 @@ +import { Language } from '../types/Language'; +declare const getLanguageFromUrl: (url: string) => Language; +export { getLanguageFromUrl }; diff --git a/build/lib/utils/getLanguageFromUrl.js b/build/lib/utils/getLanguageFromUrl.js new file mode 100644 index 00000000..c7a2c4e6 --- /dev/null +++ b/build/lib/utils/getLanguageFromUrl.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getLanguageFromUrl = void 0; +const getLanguageFromUrl = function (url) { + const language = url.split('/').find((item) => item !== ''); + return language !== null && language !== void 0 ? language : 'en-us'; +}; +exports.getLanguageFromUrl = getLanguageFromUrl; diff --git a/build/lib/utils/isDomNode.d.ts b/build/lib/utils/isDomNode.d.ts new file mode 100644 index 00000000..301db3bf --- /dev/null +++ b/build/lib/utils/isDomNode.d.ts @@ -0,0 +1,3 @@ +import { ReactNode } from 'react'; +declare const isDomNode: (node: ReactNode) => boolean; +export { isDomNode }; diff --git a/build/lib/utils/isDomNode.js b/build/lib/utils/isDomNode.js new file mode 100644 index 00000000..fe879b0e --- /dev/null +++ b/build/lib/utils/isDomNode.js @@ -0,0 +1,11 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.isDomNode = void 0; +const react_1 = __importDefault(require("react")); +const isDomNode = function (node) { + return react_1.default.isValidElement(node) && typeof node.type === 'string'; +}; +exports.isDomNode = isDomNode; diff --git a/build/lib/utils/isReactElement.d.ts b/build/lib/utils/isReactElement.d.ts new file mode 100644 index 00000000..2d78ba6d --- /dev/null +++ b/build/lib/utils/isReactElement.d.ts @@ -0,0 +1,2 @@ +declare const isReactElement: (element: any) => boolean; +export { isReactElement }; diff --git a/build/lib/utils/isReactElement.js b/build/lib/utils/isReactElement.js new file mode 100644 index 00000000..2dbdcade --- /dev/null +++ b/build/lib/utils/isReactElement.js @@ -0,0 +1,11 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.isReactElement = void 0; +const react_1 = __importDefault(require("react")); +const isReactElement = function (element) { + return react_1.default.isValidElement(element); +}; +exports.isReactElement = isReactElement; diff --git a/build/lib/utils/scrollToAnchor.d.ts b/build/lib/utils/scrollToAnchor.d.ts new file mode 100644 index 00000000..618a974b --- /dev/null +++ b/build/lib/utils/scrollToAnchor.d.ts @@ -0,0 +1,3 @@ +import { MouseEvent } from 'react'; +declare const scrollToAnchor: (event: MouseEvent) => void; +export { scrollToAnchor }; diff --git a/build/lib/utils/scrollToAnchor.js b/build/lib/utils/scrollToAnchor.js new file mode 100644 index 00000000..4d1b6fb2 --- /dev/null +++ b/build/lib/utils/scrollToAnchor.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.scrollToAnchor = void 0; +const scrollToAnchor = function (event) { + const href = event.currentTarget.getAttribute('href'); + if (!href) { + return; + } + const targetToScrollTo = document.querySelector(href); + if (!targetToScrollTo) { + return; + } + window.history.pushState(null, '', href); + targetToScrollTo.scrollIntoView({ behavior: 'smooth' }); + event.preventDefault(); +}; +exports.scrollToAnchor = scrollToAnchor; diff --git a/build/lib/utils/toArray.d.ts b/build/lib/utils/toArray.d.ts new file mode 100644 index 00000000..edea129b --- /dev/null +++ b/build/lib/utils/toArray.d.ts @@ -0,0 +1,2 @@ +declare const toArray: (arrayLike: NodeListOf) => TElement[]; +export { toArray }; diff --git a/build/lib/utils/toArray.js b/build/lib/utils/toArray.js new file mode 100644 index 00000000..80da8093 --- /dev/null +++ b/build/lib/utils/toArray.js @@ -0,0 +1,5 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.toArray = void 0; +const toArray = (arrayLike) => Array.prototype.slice.call(arrayLike); +exports.toArray = toArray; diff --git a/build/test/cli/getBrokenUrlsTests.d.ts b/build/test/cli/getBrokenUrlsTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/cli/getBrokenUrlsTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/cli/getBrokenUrlsTests.js b/build/test/cli/getBrokenUrlsTests.js new file mode 100644 index 00000000..ffe01658 --- /dev/null +++ b/build/test/cli/getBrokenUrlsTests.js @@ -0,0 +1,85 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const assertthat_1 = require("assertthat"); +const getBrokenUrls_1 = require("../../lib/cli/verifyLinks/getBrokenUrls"); +const get_port_1 = __importDefault(require("get-port")); +const http_1 = __importDefault(require("http")); +const path_1 = __importDefault(require("path")); +const express_1 = __importStar(require("express")); +suite('getBrokenUrls', () => { + let port; + suiteSetup(async () => { + port = await (0, get_port_1.default)(); + const app = (0, express_1.default)(); + app.use('/', (0, express_1.static)(path_1.default.join(__dirname, '..', 'shared', 'brokenUrlsWebsite'))); + const server = http_1.default.createServer(app); + server.listen(port); + }); + test('returns a list of broken urls.', async () => { + const brokenUrls = await (0, getBrokenUrls_1.getBrokenUrls)({ + urls: [`http://localhost:${port}`], + baseUrl: `http://localhost:${port}` + }); + assertthat_1.assert.that(brokenUrls).is.equalTo([ + { + url: `http://localhost:${port}/missing.html`, + referrers: [ + `http://localhost:${port}`, + `http://localhost:${port}/page.html`, + `http://localhost:${port}/index.html` + ] + } + ]); + }); + test('supports meta redirects.', async () => { + const brokenUrls = await (0, getBrokenUrls_1.getBrokenUrls)({ + urls: [`http://localhost:${port}/meta-redirect.html`], + baseUrl: `http://localhost:${port}` + }); + assertthat_1.assert.that(brokenUrls).is.equalTo([ + { + url: `http://localhost:${port}/missing.html`, + referrers: [ + `http://localhost:${port}/page.html`, + `http://localhost:${port}/index.html` + ] + } + ]); + }); +}); diff --git a/build/test/cli/getPageTests.d.ts b/build/test/cli/getPageTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/cli/getPageTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/cli/getPageTests.js b/build/test/cli/getPageTests.js new file mode 100644 index 00000000..f81add52 --- /dev/null +++ b/build/test/cli/getPageTests.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const assertthat_1 = require("assertthat"); +const getPage_1 = require("../../lib/cli/verifyLinks/getPage"); +suite('getPage', () => { + test('is able to fetch from Twitter.', async () => { + await assertthat_1.assert.that(async () => { + await (0, getPage_1.getPage)({ url: 'https://twitter.com/twitter' }); + }).is.not.throwingAsync(); + }); +}); diff --git a/build/test/cli/getUrlsFromSitemapTests.d.ts b/build/test/cli/getUrlsFromSitemapTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/cli/getUrlsFromSitemapTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/cli/getUrlsFromSitemapTests.js b/build/test/cli/getUrlsFromSitemapTests.js new file mode 100644 index 00000000..4ca01554 --- /dev/null +++ b/build/test/cli/getUrlsFromSitemapTests.js @@ -0,0 +1,122 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const assertthat_1 = require("assertthat"); +const fs_1 = __importDefault(require("fs")); +const isolated_1 = require("isolated"); +const path_1 = __importDefault(require("path")); +const getUrlsFromSitemap_1 = require("../../lib/cli/verifyLinks/getUrlsFromSitemap"); +const common_tags_1 = require("common-tags"); +const now = new Date().toISOString(); +suite('getUrlsFromSitemap', () => { + test('parses the XML file correctly.', async () => { + const validXmlData = (0, common_tags_1.html) ` + + + + + https://example.com/ + + + ${now} + + + + + + https://example.com/examplepage + + + ${now} + + + `; + const tempDirectory = await (0, isolated_1.isolated)(); + const tempFile = path_1.default.join(tempDirectory, 'tempFile'); + await fs_1.default.promises.writeFile(tempFile, validXmlData); + const urls = await (0, getUrlsFromSitemap_1.getUrlsFromSitemap)({ sitemapPath: tempFile }); + assertthat_1.assert.that(urls).is.equalTo(['https://example.com/', 'https://example.com/examplepage']); + }); + test('parses TXT file correctly.', async () => { + const validTxtData = (0, common_tags_1.stripIndent) ` + https://example.com/ + https://example.com/examplepage`; + const tempDirectory = await (0, isolated_1.isolated)(); + const tempFile = path_1.default.join(tempDirectory, 'tempFile'); + await fs_1.default.promises.writeFile(tempFile, validTxtData); + const urls = await (0, getUrlsFromSitemap_1.getUrlsFromSitemap)({ sitemapPath: tempFile }); + assertthat_1.assert.that(urls).is.equalTo(['https://example.com/', 'https://example.com/examplepage']); + }); + test('throws an error on valid XML file with wrong structure.', async () => { + const invalidXmlData = (0, common_tags_1.html) ` + + + obviously wrong structure + `; + const tempDirectory = await (0, isolated_1.isolated)(); + const tempFile = path_1.default.join(tempDirectory, 'tempFile'); + await fs_1.default.promises.writeFile(tempFile, invalidXmlData); + await assertthat_1.assert.that(async () => { + await (0, getUrlsFromSitemap_1.getUrlsFromSitemap)({ sitemapPath: tempFile }); + }).is.throwingAsync(); + }); + suite('parseSitemapXml', () => { + test('returns all links from the XML file.', async () => { + const sitemapContent = { + urlset: { + url: [ + { + loc: ['https://example.com/'], + lastmod: [now] + }, + { + loc: ['https://example.com/examplepage1'], + lastmod: [now] + }, + { + loc: ['https://example.com/examplepage2'], + lastmod: [now] + } + ] + } + }; + assertthat_1.assert. + that((0, getUrlsFromSitemap_1.parseSitemapXml)(sitemapContent)). + is.equalTo(['https://example.com/', 'https://example.com/examplepage1', 'https://example.com/examplepage2']); + }); + }); + suite('parseSitemapTxt', () => { + test('returns all links from the TXT file.', async () => { + const sitemapContent = (0, common_tags_1.stripIndent) ` + https://example.com/ + https://example.com/examplepage1 + https://example.com/examplepage2`; + assertthat_1.assert. + that((0, getUrlsFromSitemap_1.parseSitemapTxt)(sitemapContent)). + is.equalTo(['https://example.com/', 'https://example.com/examplepage1', 'https://example.com/examplepage2']); + }); + test('ignores blank lines.', async () => { + const sitemapContent = (0, common_tags_1.stripIndent) ` + https://example.com/ + + https://example.com/examplepage1 + https://example.com/examplepage2 + + `; + assertthat_1.assert. + that((0, getUrlsFromSitemap_1.parseSitemapTxt)(sitemapContent)). + is.equalTo(['https://example.com/', 'https://example.com/examplepage1', 'https://example.com/examplepage2']); + }); + test('trims urls correctly.', async () => { + const sitemapContent = (0, common_tags_1.stripIndent) ` + https://example.com/ + https://example.com/examplepage1 + https://example.com/examplepage2`; + assertthat_1.assert. + that((0, getUrlsFromSitemap_1.parseSitemapTxt)(sitemapContent)). + is.equalTo(['https://example.com/', 'https://example.com/examplepage1', 'https://example.com/examplepage2']); + }); + }); +}); diff --git a/build/test/cli/optimizeImages/optimizeImagesTests.d.ts b/build/test/cli/optimizeImages/optimizeImagesTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/cli/optimizeImages/optimizeImagesTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/cli/optimizeImages/optimizeImagesTests.js b/build/test/cli/optimizeImages/optimizeImagesTests.js new file mode 100644 index 00000000..a9088e23 --- /dev/null +++ b/build/test/cli/optimizeImages/optimizeImagesTests.js @@ -0,0 +1,65 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const assertthat_1 = require("assertthat"); +const fs_1 = __importDefault(require("fs")); +const isolated_1 = require("isolated"); +const optimizeImages_1 = require("../../../lib/cli/optimizeImages/optimizeImages"); +const path_1 = __importDefault(require("path")); +const getFileSize = async function (filePath) { + const { size } = await fs_1.default.promises.stat(filePath); + return size; +}; +suite('optimizeImages', function () { + this.timeout(10000); + test('copies images from the source to destination directory and optimizes their file sizes.', async () => { + const sourceDirectory = await (0, isolated_1.isolated)({ + files: path_1.default.join(__dirname, 'flatImages') + }); + const destinationDirectory = await (0, isolated_1.isolated)(); + const originalSizes = { + jpg: await getFileSize(path_1.default.join(sourceDirectory, 'flatImages', 'image.jpg')), + png: await getFileSize(path_1.default.join(sourceDirectory, 'flatImages', 'image.png')), + svg: await getFileSize(path_1.default.join(sourceDirectory, 'flatImages', 'image.svg')) + }; + await (0, optimizeImages_1.optimizeImages)({ + source: sourceDirectory, + destination: destinationDirectory, + verbose: true + }); + const optimizedSizes = { + jpg: await getFileSize(path_1.default.join(destinationDirectory, 'flatImages', 'image.jpg')), + png: await getFileSize(path_1.default.join(destinationDirectory, 'flatImages', 'image.png')), + svg: await getFileSize(path_1.default.join(destinationDirectory, 'flatImages', 'image.svg')) + }; + assertthat_1.assert.that(optimizedSizes.jpg).is.lessThan(originalSizes.jpg); + assertthat_1.assert.that(optimizedSizes.png).is.lessThan(originalSizes.png); + assertthat_1.assert.that(optimizedSizes.svg).is.lessThan(originalSizes.svg); + }); + test('supports nested directories.', async () => { + const sourceDirectory = await (0, isolated_1.isolated)({ + files: path_1.default.join(__dirname, 'nestedImages') + }); + const destinationDirectory = await (0, isolated_1.isolated)(); + const originalSizes = { + jpg: await getFileSize(path_1.default.join(sourceDirectory, 'nestedImages', 'jpg', 'image.jpg')), + png: await getFileSize(path_1.default.join(sourceDirectory, 'nestedImages', 'png', 'image.png')), + svg: await getFileSize(path_1.default.join(sourceDirectory, 'nestedImages', 'svg', 'image.svg')) + }; + await (0, optimizeImages_1.optimizeImages)({ + source: sourceDirectory, + destination: destinationDirectory, + verbose: true + }); + const optimizedSizes = { + jpg: await getFileSize(path_1.default.join(destinationDirectory, 'nestedImages', 'jpg', 'image.jpg')), + png: await getFileSize(path_1.default.join(destinationDirectory, 'nestedImages', 'png', 'image.png')), + svg: await getFileSize(path_1.default.join(destinationDirectory, 'nestedImages', 'svg', 'image.svg')) + }; + assertthat_1.assert.that(optimizedSizes.jpg).is.lessThan(originalSizes.jpg); + assertthat_1.assert.that(optimizedSizes.png).is.lessThan(originalSizes.png); + assertthat_1.assert.that(optimizedSizes.svg).is.lessThan(originalSizes.svg); + }); +}); diff --git a/build/test/integration/components/layout/ContainerTests.d.ts b/build/test/integration/components/layout/ContainerTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/integration/components/layout/ContainerTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/integration/components/layout/ContainerTests.js b/build/test/integration/components/layout/ContainerTests.js new file mode 100644 index 00000000..82979a73 --- /dev/null +++ b/build/test/integration/components/layout/ContainerTests.js @@ -0,0 +1,34 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const assertthat_1 = require("assertthat"); +const browser_1 = require("../../../shared/browser"); +const environment_1 = require("../../../shared/environment"); +suite('Container', function () { + this.timeout(environment_1.integrationTestTimeOut); + let page; + teardown(async () => { + await browser_1.browser.teardownPage(page); + }); + suite('isScrollable', () => { + test('causes the container to be scrollable if set to true and the viewport is smaller than the container.', async () => { + const url = (0, environment_1.getIntegrationTestUrl)('/integration/components/layout/container/isScrollableTrue'); + page = await browser_1.browser.setupPage({ + viewport: { width: 600, height: 250 } + }); + await page.goto(url); + await page.waitForSelector('#container'); + const scrollHeight = await page.$eval('#container', (element) => element.scrollHeight); + assertthat_1.assert.that(scrollHeight).is.equalTo(440); + const overflow = await page.$eval('#container', (element) => window.getComputedStyle(element).overflow); + assertthat_1.assert.that(overflow).is.equalTo('auto'); + }); + test('causes the child to be partially hidden if larger than the container.', async () => { + page = await browser_1.browser.setupPage(); + const url = (0, environment_1.getIntegrationTestUrl)('/integration/components/layout/container/isScrollableFalse'); + await page.goto(url); + await page.waitForSelector('#container'); + await page.waitFor('#visible-child', { visible: true, hidden: false }); + await page.waitFor('#invisible-child', { visible: true, hidden: true }); + }); + }); +}); diff --git a/build/test/integration/components/layout/GridItemTests.d.ts b/build/test/integration/components/layout/GridItemTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/integration/components/layout/GridItemTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/integration/components/layout/GridItemTests.js b/build/test/integration/components/layout/GridItemTests.js new file mode 100644 index 00000000..f68623a6 --- /dev/null +++ b/build/test/integration/components/layout/GridItemTests.js @@ -0,0 +1,49 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const assertthat_1 = require("assertthat"); +const browser_1 = require("../../../shared/browser"); +const environment_1 = require("../../../shared/environment"); +suite('GridItem', function () { + this.timeout(environment_1.integrationTestTimeOut); + let page; + const defaultGridGrap = 16; + teardown(async () => { + await browser_1.browser.teardownPage(page); + }); + suite('columnSpan', () => { + test('spans the GridItem across multiple columns of the parent grid.', async () => { + const url = (0, environment_1.getIntegrationTestUrl)('/integration/components/layout/gridItem'); + page = await browser_1.browser.setupPage(); + await page.goto(url); + await page.waitForSelector('#grid'); + const grid = await page.$('#grid'); + const gridBoundingBox = await grid.boundingBox(); + const firstItem = await page.$('#grid-item-span6-first'); + const firstItemBoundingBox = await firstItem.boundingBox(); + const secondItem = await page.$('#grid-item-span6-second'); + const secondItemBoundingBox = await secondItem.boundingBox(); + assertthat_1.assert.that(Math.round(firstItemBoundingBox.width * 2)).is.equalTo(Math.round(gridBoundingBox.width - defaultGridGrap)); + assertthat_1.assert.that(Math.round(secondItemBoundingBox.width * 2)).is.equalTo(Math.round(gridBoundingBox.width - defaultGridGrap)); + }); + test('spans GridItems across multiple columns using repsonsive properties.', async () => { + const url = (0, environment_1.getIntegrationTestUrl)('/integration/components/layout/gridItem'); + page = await browser_1.browser.setupPage({ viewport: browser_1.browser.viewports.xs }); + await page.goto(url); + await page.waitForSelector('#grid'); + const gridOnXsDevice = await page.$('#grid'); + const gridOnXsDeviceBoundingBox = await gridOnXsDevice.boundingBox(); + const thirdItemOnXsDevice = await page.$('#grid-item-span6-responsive-third'); + const thirdItemOnXsDeviceBoundingBox = await thirdItemOnXsDevice.boundingBox(); + assertthat_1.assert.that(thirdItemOnXsDeviceBoundingBox.width).is.equalTo(gridOnXsDeviceBoundingBox.width); + await browser_1.browser.teardownPage(page); + page = await browser_1.browser.setupPage({ viewport: browser_1.browser.viewports.md }); + await page.goto(url); + await page.waitForSelector('#grid'); + const gridOnMdDevice = await page.$('#grid'); + const gridOnMdDeviceBoundingBox = await gridOnMdDevice.boundingBox(); + const thirdItemOnMdDevice = await page.$('#grid-item-span6-responsive-third'); + const thirdItemOnMdDeviceBoundingBox = await thirdItemOnMdDevice.boundingBox(); + assertthat_1.assert.that(Math.round(thirdItemOnMdDeviceBoundingBox.width * 2)).is.equalTo(gridOnMdDeviceBoundingBox.width - defaultGridGrap); + }); + }); +}); diff --git a/build/test/integration/components/layout/SidebarItemTests.d.ts b/build/test/integration/components/layout/SidebarItemTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/integration/components/layout/SidebarItemTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/integration/components/layout/SidebarItemTests.js b/build/test/integration/components/layout/SidebarItemTests.js new file mode 100644 index 00000000..69b26e7e --- /dev/null +++ b/build/test/integration/components/layout/SidebarItemTests.js @@ -0,0 +1,41 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const browser_1 = require("../../../shared/browser"); +const environment_1 = require("../../../shared/environment"); +suite('SidebarItem', function () { + this.timeout(environment_1.integrationTestTimeOut); + let page; + setup(async () => { + page = await browser_1.browser.setupPage(); + }); + teardown(async () => { + await browser_1.browser.teardownPage(page); + }); + test('expands on hover and subitems are clickable.', async () => { + const url = (0, environment_1.getIntegrationTestUrl)('/integration/components/layout/sidebarItem'); + await page.goto(url); + await page.waitForSelector('#sidebar-item-account'); + const parentItem = await page.$('#sidebar-item-account'); + await parentItem.hover(); + await page.waitForSelector('#sidebar-item-logout', { + visible: true + }); + const childItem = await page.$('#sidebar-item-logout'); + await Promise.all([ + new Promise((resolve, reject) => { + page.once('console', (message) => { + try { + if (message.text() !== 'clicked::clicked::logout') { + return; + } + resolve(); + } + catch (ex) { + reject(ex); + } + }); + }), + childItem.click() + ]); + }); +}); diff --git a/build/test/integration/components/layout/SidebarTests.d.ts b/build/test/integration/components/layout/SidebarTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/integration/components/layout/SidebarTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/integration/components/layout/SidebarTests.js b/build/test/integration/components/layout/SidebarTests.js new file mode 100644 index 00000000..49d17f3a --- /dev/null +++ b/build/test/integration/components/layout/SidebarTests.js @@ -0,0 +1,23 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const assertthat_1 = require("assertthat"); +const browser_1 = require("../../../shared/browser"); +const environment_1 = require("../../../shared/environment"); +suite('Sidebar', function () { + this.timeout(environment_1.integrationTestTimeOut); + let page; + setup(async () => { + page = await browser_1.browser.setupPage(); + }); + teardown(async () => { + await browser_1.browser.teardownPage(page); + }); + test('is 80px wide.', async () => { + const url = (0, environment_1.getIntegrationTestUrl)('/integration/components/layout/sidebar'); + await page.goto(url); + await page.waitForSelector('#sidebar'); + const sidebar = await page.$('#sidebar'); + const boundingBox = await sidebar.boundingBox(); + assertthat_1.assert.that(boundingBox.width).is.equalTo(80); + }); +}); diff --git a/build/test/integration/components/layout/SpaceTests.d.ts b/build/test/integration/components/layout/SpaceTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/integration/components/layout/SpaceTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/integration/components/layout/SpaceTests.js b/build/test/integration/components/layout/SpaceTests.js new file mode 100644 index 00000000..48697b3e --- /dev/null +++ b/build/test/integration/components/layout/SpaceTests.js @@ -0,0 +1,104 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const assertthat_1 = require("assertthat"); +const browser_1 = require("../../../shared/browser"); +const environment_1 = require("../../../shared/environment"); +const testPageUrl = '/integration/components/layout/space'; +suite('Space', function () { + this.timeout(environment_1.integrationTestTimeOut); + let page; + teardown(async () => { + await browser_1.browser.teardownPage(page); + }); + suite('paddings', () => { + test('set correct padding values when specified as string or number.', async () => { + const url = (0, environment_1.getIntegrationTestUrl)(testPageUrl); + page = await browser_1.browser.setupPage(); + await page.goto(url); + await page.waitForSelector('#with-padding-as-string'); + const paddingAsString = await page.$eval('#with-padding-as-string', (element) => window.getComputedStyle(element).padding); + const paddingAsNumber = await page.$eval('#with-padding-as-number', (element) => window.getComputedStyle(element).padding); + const paddingTopAsString = await page.$eval('#with-paddingTop-as-string', (element) => window.getComputedStyle(element).padding); + const paddingTopAsNumber = await page.$eval('#with-paddingTop-as-number', (element) => window.getComputedStyle(element).padding); + const paddingBottomAsString = await page.$eval('#with-paddingBottom-as-string', (element) => window.getComputedStyle(element).padding); + const paddingBottomAsNumber = await page.$eval('#with-paddingBottom-as-number', (element) => window.getComputedStyle(element).padding); + const paddingLeftAsString = await page.$eval('#with-paddingLeft-as-string', (element) => window.getComputedStyle(element).padding); + const paddingLeftAsNumber = await page.$eval('#with-paddingLeft-as-number', (element) => window.getComputedStyle(element).padding); + const paddingRightAsString = await page.$eval('#with-paddingRight-as-string', (element) => window.getComputedStyle(element).padding); + const paddingRightAsNumber = await page.$eval('#with-paddingRight-as-number', (element) => window.getComputedStyle(element).padding); + /* eslint-disable @typescript-eslint/naming-convention */ + const paddingXAsString = await page.$eval('#with-paddingX-as-string', (element) => window.getComputedStyle(element).padding); + const paddingXAsNumber = await page.$eval('#with-paddingX-as-number', (element) => window.getComputedStyle(element).padding); + const paddingYAsString = await page.$eval('#with-paddingY-as-string', (element) => window.getComputedStyle(element).padding); + const paddingYAsNumber = await page.$eval('#with-paddingY-as-number', (element) => window.getComputedStyle(element).padding); + /* eslint-enable @typescript-eslint/naming-convention */ + assertthat_1.assert.that(paddingAsString).is.equalTo('16px'); + assertthat_1.assert.that(paddingAsNumber).is.equalTo('16px'); + assertthat_1.assert.that(paddingTopAsString).is.equalTo('16px 0px 0px'); + assertthat_1.assert.that(paddingTopAsNumber).is.equalTo('16px 0px 0px'); + assertthat_1.assert.that(paddingTopAsString).is.equalTo('16px 0px 0px'); + assertthat_1.assert.that(paddingTopAsNumber).is.equalTo('16px 0px 0px'); + assertthat_1.assert.that(paddingBottomAsString).is.equalTo('0px 0px 16px'); + assertthat_1.assert.that(paddingBottomAsNumber).is.equalTo('0px 0px 16px'); + assertthat_1.assert.that(paddingLeftAsString).is.equalTo('0px 0px 0px 16px'); + assertthat_1.assert.that(paddingLeftAsNumber).is.equalTo('0px 0px 0px 16px'); + assertthat_1.assert.that(paddingRightAsString).is.equalTo('0px 16px 0px 0px'); + assertthat_1.assert.that(paddingRightAsNumber).is.equalTo('0px 16px 0px 0px'); + assertthat_1.assert.that(paddingXAsString).is.equalTo('0px 16px'); + assertthat_1.assert.that(paddingXAsNumber).is.equalTo('0px 16px'); + assertthat_1.assert.that(paddingYAsString).is.equalTo('16px 0px'); + assertthat_1.assert.that(paddingYAsNumber).is.equalTo('16px 0px'); + }); + test('set correct padding values when using responsive properties.', async () => { + const url = (0, environment_1.getIntegrationTestUrl)(testPageUrl); + // Test on xs viewport + page = await browser_1.browser.setupPage({ viewport: browser_1.browser.viewports.xs }); + await page.goto(url); + await page.waitForSelector('#with-responsive-padding'); + const responsivePaddingOnXsDevice = await page.$eval('#with-responsive-padding', (element) => window.getComputedStyle(element).padding); + assertthat_1.assert.that(responsivePaddingOnXsDevice).is.equalTo('8px'); + await browser_1.browser.teardownPage(page); + // Test on xs viewport + page = await browser_1.browser.setupPage({ viewport: browser_1.browser.viewports.sm }); + await page.goto(url); + await page.waitForSelector('#with-responsive-padding'); + const responsivePaddingOnSmDevice = await page.$eval('#with-responsive-padding', (element) => window.getComputedStyle(element).padding); + assertthat_1.assert.that(responsivePaddingOnSmDevice).is.equalTo('16px'); + await browser_1.browser.teardownPage(page); + // Test on md viewport + page = await browser_1.browser.setupPage({ viewport: browser_1.browser.viewports.md }); + await page.goto(url); + await page.waitForSelector('#with-responsive-padding'); + const responsivePaddingOnMdDevice = await page.$eval('#with-responsive-padding', (element) => window.getComputedStyle(element).padding); + assertthat_1.assert.that(responsivePaddingOnMdDevice).is.equalTo('24px'); + await browser_1.browser.teardownPage(page); + // Test on lg viewport + page = await browser_1.browser.setupPage({ viewport: browser_1.browser.viewports.lg }); + await page.goto(url); + await page.waitForSelector('#with-responsive-padding'); + const responsivePaddingOnLgDevice = await page.$eval('#with-responsive-padding', (element) => window.getComputedStyle(element).padding); + assertthat_1.assert.that(responsivePaddingOnLgDevice).is.equalTo('32px'); + await browser_1.browser.teardownPage(page); + // Test on xl viewport + page = await browser_1.browser.setupPage({ viewport: browser_1.browser.viewports.xl }); + await page.goto(url); + await page.waitForSelector('#with-responsive-padding'); + const responsivePaddingOnXlDevice = await page.$eval('#with-responsive-padding', (element) => window.getComputedStyle(element).padding); + assertthat_1.assert.that(responsivePaddingOnXlDevice).is.equalTo('40px'); + }); + }); + suite('between', () => { + test('sets correct margins for all children expcept the last child.', async () => { + const url = (0, environment_1.getIntegrationTestUrl)(testPageUrl); + page = await browser_1.browser.setupPage(); + await page.goto(url); + await page.waitForSelector('#with-between'); + const firstChildMargin = await page.$eval('#with-between div:nth-child(1)', (element) => window.getComputedStyle(element).margin); + const secondChildMargin = await page.$eval('#with-between div:nth-child(2)', (element) => window.getComputedStyle(element).margin); + const lastChildMargin = await page.$eval('#with-between div:nth-child(3)', (element) => window.getComputedStyle(element).margin); + assertthat_1.assert.that(firstChildMargin).is.equalTo('0px 0px 16px'); + assertthat_1.assert.that(secondChildMargin).is.equalTo('0px 0px 16px'); + assertthat_1.assert.that(lastChildMargin).is.equalTo('0px'); + }); + }); +}); diff --git a/build/test/integration/post.d.ts b/build/test/integration/post.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/integration/post.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/integration/post.js b/build/test/integration/post.js new file mode 100644 index 00000000..dd0759e0 --- /dev/null +++ b/build/test/integration/post.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const environment_1 = require("../shared/environment"); +const nginx_1 = require("../shared/containers/nginx"); +/* eslint-disable @typescript-eslint/no-floating-promises */ +(async function () { + await nginx_1.nginx.stop({ name: environment_1.integrationTestContainer }); +})(); +/* eslint-enable @typescript-eslint/no-floating-promises */ diff --git a/build/test/integration/pre.d.ts b/build/test/integration/pre.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/integration/pre.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/integration/pre.js b/build/test/integration/pre.js new file mode 100644 index 00000000..d1cb4506 --- /dev/null +++ b/build/test/integration/pre.js @@ -0,0 +1,46 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const buntstift_1 = require("buntstift"); +const nginx_1 = require("../shared/containers/nginx"); +const path_1 = __importDefault(require("path")); +const shelljs_1 = __importDefault(require("shelljs")); +const environment_1 = require("../shared/environment"); +/* eslint-disable @typescript-eslint/no-floating-promises */ +(async () => { + const projectRoot = path_1.default.join(__dirname, '..', '..'); + // Create a build via roboter, so that the test application always uses the + // latest version. + let childProcess = shelljs_1.default.exec('npx roboter build', { cwd: projectRoot }); + if (childProcess.code !== 0) { + buntstift_1.buntstift.error('Failed to create build.'); + // eslint-disable-next-line unicorn/no-process-exit + process.exit(1); + } + // Build a static export of the Next.js example that we can then serve using + // nginx. If we would run the Next.js app as a server, Next.js compiles pages + // lazily. This would result in higher and unpredicatable timeouts for the + // tests. + childProcess = shelljs_1.default.exec('npm run export-sample-application', { cwd: projectRoot }); + if (childProcess.code !== 0) { + buntstift_1.buntstift.error('Failed to create static export from Next.js sample application.'); + // eslint-disable-next-line unicorn/no-process-exit + process.exit(1); + } + try { + const staticBuildDirectory = path_1.default.join(__dirname, '..', 'shared', 'sampleApplication', 'out'); + await nginx_1.nginx.start({ + name: environment_1.integrationTestContainer, + rootDirectory: staticBuildDirectory, + port: environment_1.integrationTestPort + }); + } + catch { + buntstift_1.buntstift.error('Failed to serve sample application for integration tests.'); + // eslint-disable-next-line unicorn/no-process-exit + process.exit(1); + } +})(); +/* eslint-enable @typescript-eslint/no-floating-promises */ diff --git a/build/test/integration/rendering/clientTests.d.ts b/build/test/integration/rendering/clientTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/integration/rendering/clientTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/integration/rendering/clientTests.js b/build/test/integration/rendering/clientTests.js new file mode 100644 index 00000000..28bdb97a --- /dev/null +++ b/build/test/integration/rendering/clientTests.js @@ -0,0 +1,43 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const assertthat_1 = require("assertthat"); +const browser_1 = require("../../shared/browser"); +const environment_1 = require("../../shared/environment"); +suite('Client', function () { + this.timeout(environment_1.integrationTestTimeOut); + let page; + setup(async () => { + page = await browser_1.browser.setupPage(); + const url = (0, environment_1.getIntegrationTestUrl)('/integration/rendering/clientSide'); + await page.goto(url); + }); + teardown(async () => { + await browser_1.browser.teardownPage(page); + }); + test('takes over once server side rendering is complete.', async () => { + const button = await page.$('#button'); + await Promise.all([ + new Promise((resolve, reject) => { + page.once('console', (message) => { + try { + if (message.text() !== 'button::clicked') { + return; + } + resolve(); + } + catch (ex) { + reject(ex); + } + }); + }), + button.click() + ]); + }); + test('removes server side rendered styles.', async () => { + await page.waitForSelector('#button'); + const serverSideStyles = await page.$('#server-side-styles'); + const staticGlobalStyles = await page.$('#static-global-styles'); + assertthat_1.assert.that(serverSideStyles).is.null(); + assertthat_1.assert.that(staticGlobalStyles).is.not.null(); + }); +}); diff --git a/build/test/integration/rendering/serverTests.d.ts b/build/test/integration/rendering/serverTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/integration/rendering/serverTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/integration/rendering/serverTests.js b/build/test/integration/rendering/serverTests.js new file mode 100644 index 00000000..4c4970d4 --- /dev/null +++ b/build/test/integration/rendering/serverTests.js @@ -0,0 +1,30 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const assertthat_1 = require("assertthat"); +const browser_1 = require("../../shared/browser"); +const environment_1 = require("../../shared/environment"); +suite('Server', function () { + this.timeout(environment_1.integrationTestTimeOut); + let page; + setup(async () => { + const url = (0, environment_1.getIntegrationTestUrl)('/integration/rendering/serverSide'); + page = await browser_1.browser.setupPage(); + await page.setJavaScriptEnabled(false); + await page.goto(url); + }); + teardown(async () => { + await page.setJavaScriptEnabled(true); + await browser_1.browser.teardownPage(page); + }); + test('renders app although JavaScript is disabled.', async () => { + await page.waitForSelector('#headline'); + const headline = await page.$eval('#headline', (el) => el.textContent); + assertthat_1.assert.that(headline).is.equalTo('Server side rendered headline'); + }); + test('renders styles on the server.', async () => { + await page.waitForSelector('#server-side-styles'); + const sidebar = await page.$('#sidebar'); + const boundingBox = await sidebar.boundingBox(); + assertthat_1.assert.that(boundingBox.width).is.equalTo(80); + }); +}); diff --git a/build/test/integration/services/dialogsTests.d.ts b/build/test/integration/services/dialogsTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/integration/services/dialogsTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/integration/services/dialogsTests.js b/build/test/integration/services/dialogsTests.js new file mode 100644 index 00000000..85560b66 --- /dev/null +++ b/build/test/integration/services/dialogsTests.js @@ -0,0 +1,70 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const browser_1 = require("../../shared/browser"); +const environment_1 = require("../../shared/environment"); +suite('dialogs', function () { + this.timeout(environment_1.integrationTestTimeOut); + let page; + setup(async () => { + page = await browser_1.browser.setupPage(); + }); + teardown(async () => { + await browser_1.browser.teardownPage(page); + }); + suite('confirm', () => { + test('shows a confirm dialog and resolves once the confirm action has been clicked.', async () => { + const url = (0, environment_1.getIntegrationTestUrl)('/integration/services/dialogs'); + await page.goto(url); + await page.waitForSelector('#show-confirm'); + const button = await page.$('#show-confirm'); + await button.click(); + await page.waitForSelector('#dialogs-confirm-action-confirm', { + visible: true + }); + const confirmAction = await page.$('#dialogs-confirm-action-confirm'); + await Promise.all([ + new Promise((resolve, reject) => { + page.once('console', (message) => { + try { + if (message.text() !== 'confirm::action::confirm::clicked') { + return; + } + resolve(); + } + catch (ex) { + reject(ex); + } + }); + }), + confirmAction.click() + ]); + }); + test('shows a confirm dialog and resolves once the cancel action has been clicked.', async () => { + const url = (0, environment_1.getIntegrationTestUrl)('/integration/services/dialogs'); + await page.goto(url); + await page.waitForSelector('#show-confirm'); + const button = await page.$('#show-confirm'); + await button.click(); + await page.waitForSelector('#dialogs-confirm-action-cancel', { + visible: true + }); + const cancelAction = await page.$('#dialogs-confirm-action-confirm'); + await Promise.all([ + new Promise((resolve, reject) => { + page.once('console', (message) => { + try { + if (message.text() !== 'confirm::action::confirm::clicked') { + return; + } + resolve(); + } + catch (ex) { + reject(ex); + } + }); + }), + cancelAction.click() + ]); + }); + }); +}); diff --git a/build/test/integration/services/notificationsTests.d.ts b/build/test/integration/services/notificationsTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/integration/services/notificationsTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/integration/services/notificationsTests.js b/build/test/integration/services/notificationsTests.js new file mode 100644 index 00000000..d0723e47 --- /dev/null +++ b/build/test/integration/services/notificationsTests.js @@ -0,0 +1,23 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const browser_1 = require("../../shared/browser"); +const environment_1 = require("../../shared/environment"); +suite('notifications', function () { + this.timeout(environment_1.integrationTestTimeOut); + let page; + setup(async () => { + page = await browser_1.browser.setupPage(); + }); + teardown(async () => { + await browser_1.browser.teardownPage(page); + }); + test('shows a notification.', async () => { + const url = (0, environment_1.getIntegrationTestUrl)('/integration/services/notifications'); + await page.goto(url); + await page.waitForSelector('#show-notification-error'); + await page.click('#show-notification-error'); + await page.waitForFunction('document.querySelector("body").innerText.includes("This is a notification of type error!")'); + await page.click('#show-notification-success'); + await page.waitForFunction('document.querySelector("body").innerText.includes("This is a notification of type success!")'); + }); +}); diff --git a/build/test/integration/styles/classNamesTests.d.ts b/build/test/integration/styles/classNamesTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/integration/styles/classNamesTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/integration/styles/classNamesTests.js b/build/test/integration/styles/classNamesTests.js new file mode 100644 index 00000000..92f133b3 --- /dev/null +++ b/build/test/integration/styles/classNamesTests.js @@ -0,0 +1,21 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const assertthat_1 = require("assertthat"); +const browser_1 = require("../../shared/browser"); +const environment_1 = require("../../shared/environment"); +suite('classNames', function () { + this.timeout(environment_1.integrationTestTimeOut); + let page; + setup(async () => { + page = await browser_1.browser.setupPage(); + }); + teardown(async () => { + await browser_1.browser.teardownPage(page); + }); + test('creates classes.', async () => { + const url = (0, environment_1.getIntegrationTestUrl)('/components'); + await page.goto(url); + const hasCustomClass = await page.$eval('#classNames', (element) => element.classList.contains('custom')); + assertthat_1.assert.that(hasCustomClass).is.true(); + }); +}); diff --git a/build/test/integration/themes/breakpointTests.d.ts b/build/test/integration/themes/breakpointTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/integration/themes/breakpointTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/integration/themes/breakpointTests.js b/build/test/integration/themes/breakpointTests.js new file mode 100644 index 00000000..e428409c --- /dev/null +++ b/build/test/integration/themes/breakpointTests.js @@ -0,0 +1,65 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const browser_1 = require("../../shared/browser"); +const environment_1 = require("../../shared/environment"); +suite('breakpoints', function () { + this.timeout(environment_1.integrationTestTimeOut); + let page; + teardown(async () => { + await browser_1.browser.teardownPage(page); + }); + const assertElementVisibility = async function ({ viewportWidth, visibleSelectors, hiddenSelectors }) { + const url = (0, environment_1.getIntegrationTestUrl)('/integration/themes/breakpoints'); + page = await browser_1.browser.setupPage({ + viewport: { width: viewportWidth, height: 600 } + }); + await page.goto(url); + for (const selector of visibleSelectors) { + await page.waitForSelector(selector, { + visible: true + }); + } + for (const selector of hiddenSelectors) { + await page.waitForSelector(selector, { + hidden: true + }); + } + }; + suite('only', () => { + test(`only('xs') creates a query that targets devices smaller than 600px.`, async () => { + await assertElementVisibility({ + viewportWidth: 590, + visibleSelectors: ['#xs'], + hiddenSelectors: ['#sm', '#md', '#lg', '#xl'] + }); + }); + test(`only('sm') creates a query that targets devices smaller than 960px.`, async () => { + await assertElementVisibility({ + viewportWidth: 950, + visibleSelectors: ['#sm'], + hiddenSelectors: ['#xs', '#md', '#lg', '#xl'] + }); + }); + test(`only('md') creates a query that targets devices smaller than 1280px.`, async () => { + await assertElementVisibility({ + viewportWidth: 1270, + visibleSelectors: ['#md'], + hiddenSelectors: ['#xs', '#sm', '#lg', '#xl'] + }); + }); + test(`only('md') creates a query that targets devices smaller than 1920px.`, async () => { + await assertElementVisibility({ + viewportWidth: 1910, + visibleSelectors: ['#lg'], + hiddenSelectors: ['#xs', '#sm', '#md', '#xl'] + }); + }); + test(`only('lg') creates a query that targets devices larger than 1920px.`, async () => { + await assertElementVisibility({ + viewportWidth: 1930, + visibleSelectors: ['#xl'], + hiddenSelectors: ['#xs', '#sm', '#md', '#lg'] + }); + }); + }); +}); diff --git a/build/test/integration/themes/extendTests.d.ts b/build/test/integration/themes/extendTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/integration/themes/extendTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/integration/themes/extendTests.js b/build/test/integration/themes/extendTests.js new file mode 100644 index 00000000..57438cb4 --- /dev/null +++ b/build/test/integration/themes/extendTests.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const assertthat_1 = require("assertthat"); +const browser_1 = require("../../shared/browser"); +const environment_1 = require("../../shared/environment"); +suite('extend', function () { + this.timeout(environment_1.integrationTestTimeOut); + let page; + teardown(async () => { + await browser_1.browser.teardownPage(page); + }); + test('creates a customized theme that can hold additional properties.', async () => { + const url = (0, environment_1.getIntegrationTestUrl)('/themes'); + page = await browser_1.browser.setupPage(); + await page.goto(url); + const customComponent = await page.$('#custom-component'); + const boundingBox = await customComponent.boundingBox(); + assertthat_1.assert.that(boundingBox.width).is.equalTo(42); + }); +}); diff --git a/build/test/shared/act.d.ts b/build/test/shared/act.d.ts new file mode 100644 index 00000000..1b495362 --- /dev/null +++ b/build/test/shared/act.d.ts @@ -0,0 +1,2 @@ +declare const act: (callback: () => void | undefined) => void; +export { act }; diff --git a/build/test/shared/act.js b/build/test/shared/act.js new file mode 100644 index 00000000..d7f74d22 --- /dev/null +++ b/build/test/shared/act.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.act = void 0; +const test_utils_1 = require("react-dom/test-utils"); +const act = (callback) => { + /* eslint-disable @typescript-eslint/no-floating-promises */ + (0, test_utils_1.act)(callback); + /* eslint-enable @typescript-eslint/no-floating-promises */ +}; +exports.act = act; diff --git a/build/test/shared/browser.d.ts b/build/test/shared/browser.d.ts new file mode 100644 index 00000000..13b6e039 --- /dev/null +++ b/build/test/shared/browser.d.ts @@ -0,0 +1,33 @@ +import { Page } from 'puppeteer'; +declare const browser: { + viewports: { + xs: { + width: number; + height: number; + }; + sm: { + width: number; + height: number; + }; + md: { + width: number; + height: number; + }; + lg: { + width: number; + height: number; + }; + xl: { + width: number; + height: number; + }; + }; + setupPage({ viewport }?: { + viewport?: { + width: number; + height: number; + }; + }): Promise; + teardownPage(page: Page): Promise; +}; +export { browser }; diff --git a/build/test/shared/browser.js b/build/test/shared/browser.js new file mode 100644 index 00000000..7b64c487 --- /dev/null +++ b/build/test/shared/browser.js @@ -0,0 +1,33 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.browser = void 0; +const environment_1 = require("./environment"); +const puppeteer_1 = __importDefault(require("puppeteer")); +let browserInstance; +const browser = { + viewports: { + xs: { width: 590, height: 600 }, + sm: { width: 601, height: 600 }, + md: { width: 961, height: 600 }, + lg: { width: 1281, height: 600 }, + xl: { width: 1921, height: 600 } + }, + async setupPage({ viewport = environment_1.viewport } = {}) { + if (!browserInstance) { + browserInstance = await puppeteer_1.default.launch({ + headless: environment_1.headless, + slowMo: environment_1.slowMotion + }); + } + const page = await browserInstance.newPage(); + await page.setViewport(viewport); + return page; + }, + async teardownPage(page) { + await page.close(); + } +}; +exports.browser = browser; diff --git a/build/test/shared/containers/nginx.d.ts b/build/test/shared/containers/nginx.d.ts new file mode 100644 index 00000000..c4c77829 --- /dev/null +++ b/build/test/shared/containers/nginx.d.ts @@ -0,0 +1,11 @@ +declare const nginx: { + start({ name, rootDirectory, port }: { + name: string; + rootDirectory: string; + port: number; + }): Promise; + stop({ name }: { + name: string; + }): Promise; +}; +export { nginx }; diff --git a/build/test/shared/containers/nginx.js b/build/test/shared/containers/nginx.js new file mode 100644 index 00000000..d78e9c9b --- /dev/null +++ b/build/test/shared/containers/nginx.js @@ -0,0 +1,43 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.nginx = void 0; +const axios_1 = __importDefault(require("axios")); +const buntstift_1 = require("buntstift"); +const common_tags_1 = require("common-tags"); +const retry_ignore_abort_1 = require("retry-ignore-abort"); +const shelljs_1 = __importDefault(require("shelljs")); +const nginx = { + async start({ name, rootDirectory, port }) { + const childProcess = shelljs_1.default.exec((0, common_tags_1.oneLine) ` + docker run + -d + -p ${port}:80 + -v ${rootDirectory}:/usr/share/nginx/html + --name ${name} + nginx:1.17.4-alpine + `); + if (childProcess.code !== 0) { + throw new Error('Failed to run nginx docker container.'); + } + try { + // We only do 3 retries here as nginx starts pretty fast. Otherwise we + // wait for a very long time if nginx does not serve the files correctly. + await (0, retry_ignore_abort_1.retry)(async () => await axios_1.default.get(`http://localhost:${port}`), { retries: 3 }); + } + catch (ex) { + buntstift_1.buntstift.info(ex.message); + buntstift_1.buntstift.error('Failed to connect to nginx.'); + throw ex; + } + }, + async stop({ name }) { + shelljs_1.default.exec([ + `docker kill ${name}`, + `docker rm -v ${name}` + ].join(';')); + } +}; +exports.nginx = nginx; diff --git a/build/test/shared/environment.d.ts b/build/test/shared/environment.d.ts new file mode 100644 index 00000000..b86e0a4a --- /dev/null +++ b/build/test/shared/environment.d.ts @@ -0,0 +1,11 @@ +declare const integrationTestContainer = "integration-nginx"; +declare const integrationTestPort = 3000; +declare const integrationTestTimeOut: number; +declare const getIntegrationTestUrl: (absolutePagePath?: string) => string; +declare const viewport: { + width: number; + height: number; +}; +declare const headless: boolean; +declare const slowMotion: number; +export { integrationTestTimeOut, integrationTestContainer, integrationTestPort, getIntegrationTestUrl, viewport, headless, slowMotion }; diff --git a/build/test/shared/environment.js b/build/test/shared/environment.js new file mode 100644 index 00000000..ef3dc15f --- /dev/null +++ b/build/test/shared/environment.js @@ -0,0 +1,28 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.slowMotion = exports.headless = exports.viewport = exports.getIntegrationTestUrl = exports.integrationTestPort = exports.integrationTestContainer = exports.integrationTestTimeOut = void 0; +const processenv_1 = require("processenv"); +const integrationTestContainer = 'integration-nginx'; +exports.integrationTestContainer = integrationTestContainer; +const integrationTestPort = 3000; +exports.integrationTestPort = integrationTestPort; +const debugModeEnabled = (0, processenv_1.processenv)('DEBUG', false); +const defaultIntegrationTestTimeout = 10000; +const integrationTestTimeOut = debugModeEnabled ? defaultIntegrationTestTimeout * 2 : defaultIntegrationTestTimeout; +exports.integrationTestTimeOut = integrationTestTimeOut; +const getIntegrationTestUrl = function (absolutePagePath = '/') { + let path = absolutePagePath; + // If we provide a path without a trailing slash, we add it to satisfy nginx. + if (absolutePagePath !== '/' && !absolutePagePath.endsWith('/')) { + path = `${absolutePagePath}/`; + } + return `http://localhost:${integrationTestPort}${path}`; +}; +exports.getIntegrationTestUrl = getIntegrationTestUrl; +const viewport = { width: 1280, height: 800 }; +exports.viewport = viewport; +const headless = !debugModeEnabled; +exports.headless = headless; +// Slow down puppeteer operations by the specified amount of milliseconds. +const slowMotion = debugModeEnabled ? 250 : 0; +exports.slowMotion = slowMotion; diff --git a/build/test/shared/eventDispatchers.d.ts b/build/test/shared/eventDispatchers.d.ts new file mode 100644 index 00000000..e2343546 --- /dev/null +++ b/build/test/shared/eventDispatchers.d.ts @@ -0,0 +1,4 @@ +declare const click: (element: HTMLElement) => void; +declare const mouseover: (element: HTMLElement) => void; +declare const submit: (element: HTMLElement) => void; +export { click, mouseover, submit }; diff --git a/build/test/shared/eventDispatchers.js b/build/test/shared/eventDispatchers.js new file mode 100644 index 00000000..688cfa58 --- /dev/null +++ b/build/test/shared/eventDispatchers.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.submit = exports.mouseover = exports.click = void 0; +const click = (element) => { + element.dispatchEvent(new window.MouseEvent('click', { bubbles: true })); +}; +exports.click = click; +const mouseover = (element) => { + element.dispatchEvent(new window.Event('mouseover', { bubbles: true })); +}; +exports.mouseover = mouseover; +const submit = (element) => { + element.dispatchEvent(new window.Event('submit', { bubbles: true })); +}; +exports.submit = submit; diff --git a/build/test/shared/mocha/setupVirtualDom.d.ts b/build/test/shared/mocha/setupVirtualDom.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/shared/mocha/setupVirtualDom.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/shared/mocha/setupVirtualDom.js b/build/test/shared/mocha/setupVirtualDom.js new file mode 100644 index 00000000..51ed6355 --- /dev/null +++ b/build/test/shared/mocha/setupVirtualDom.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const jsdom_1 = require("jsdom"); +const jsdom = new jsdom_1.JSDOM(''); +const { window } = jsdom; +const copyProperties = (source, target) => { + Object.defineProperties(target, { + ...Object.getOwnPropertyDescriptors(source), + ...Object.getOwnPropertyDescriptors(target) + }); +}; +/* eslint-disable @typescript-eslint/no-implied-eval */ +global.window = window; +global.document = window.document; +global.navigator = { userAgent: 'Node.js' }; +global.requestAnimationFrame = (callback) => setTimeout(callback, 0); +global.cancelAnimationFrame = (id) => clearTimeout(id); +/* eslint-enable @typescript-eslint/no-implied-eval */ +copyProperties(window, global); diff --git a/build/test/styleguide/brokenUrlsTests.d.ts b/build/test/styleguide/brokenUrlsTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/styleguide/brokenUrlsTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/styleguide/brokenUrlsTests.js b/build/test/styleguide/brokenUrlsTests.js new file mode 100644 index 00000000..286f4dd2 --- /dev/null +++ b/build/test/styleguide/brokenUrlsTests.js @@ -0,0 +1,77 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || (function () { + var ownKeys = function(o) { + ownKeys = Object.getOwnPropertyNames || function (o) { + var ar = []; + for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; + return ar; + }; + return ownKeys(o); + }; + return function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); + __setModuleDefault(result, mod); + return result; + }; +})(); +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const get_port_1 = __importDefault(require("get-port")); +const http_1 = __importDefault(require("http")); +const path_1 = __importDefault(require("path")); +const shelljs_1 = __importDefault(require("shelljs")); +const express_1 = __importStar(require("express")); +suite('styleguide', () => { + let port; + let styleguideUrl; + // For broken links tests we explicitly want to use a raw static server, and + // not a full featured server like nginx. First of all because nginx removes + // the port when doing meta redirects. Additionally the raw static server does + // not support the 404 pages created by Next.js, so it is easier to detect + // broken internal links. + suiteSetup(async () => { + port = await (0, get_port_1.default)(); + styleguideUrl = `http://localhost:${port}`; + const app = (0, express_1.default)(); + app.use('/', (0, express_1.static)(path_1.default.join(__dirname, '..', '..', 'styleguide', 'out'))); + const server = http_1.default.createServer(app); + server.listen(port); + }); + test('contains no broken urls.', async function () { + this.timeout(2 * 60000); + const projectRoot = path_1.default.join(__dirname, '..', '..'); + const cliPath = path_1.default.join(__dirname, '..', '..', 'lib', 'bin', 'ux.ts'); + // We ignore specific URLs from the 'en-us/components/navigation/pagenavigation/' + // page. These links are generated by the component from a navigation tree + // and do not exists. + const ignoreUrls = `${styleguideUrl}\\/(first-section|second-section)/`; + await new Promise((resolve, reject) => { + shelljs_1.default.exec(`npx ts-node '${cliPath}' --verbose verify-links --url '${styleguideUrl}' --ignore '${ignoreUrls}'`, { cwd: projectRoot }, (code, stdout, stderr) => { + if (code !== 0) { + return reject(stderr); + } + resolve(); + }); + }); + }); +}); diff --git a/build/test/styleguide/pre.d.ts b/build/test/styleguide/pre.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/styleguide/pre.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/styleguide/pre.js b/build/test/styleguide/pre.js new file mode 100644 index 00000000..d4045a74 --- /dev/null +++ b/build/test/styleguide/pre.js @@ -0,0 +1,28 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const buntstift_1 = require("buntstift"); +const path_1 = __importDefault(require("path")); +const shelljs_1 = __importDefault(require("shelljs")); +/* eslint-disable @typescript-eslint/no-floating-promises */ +(async () => { + const projectRoot = path_1.default.join(__dirname, '..', '..'); + const staticBuildDirectory = path_1.default.join(__dirname, '..', '..', 'styleguide', 'out'); + // Remove temporary build folder from previous tests. + shelljs_1.default.rm('-rf', [ + staticBuildDirectory + ]); + // Build a static export of the styleguide that we can then serve using + // nginx. If we would run the Next.js app as a server, Next.js compiles pages + // lazily. This would result in higher and unpredicatable timeouts for the + // tests. + const childProcess = shelljs_1.default.exec('npm run build-styleguide', { cwd: projectRoot }); + if (childProcess.code !== 0) { + buntstift_1.buntstift.error('Failed to create static export from styleguide.'); + // eslint-disable-next-line unicorn/no-process-exit + process.exit(1); + } +})(); +/* eslint-enable @typescript-eslint/no-floating-promises */ diff --git a/build/test/unit/branding/BrandTests.d.ts b/build/test/unit/branding/BrandTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/branding/BrandTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/branding/BrandTests.js b/build/test/unit/branding/BrandTests.js new file mode 100644 index 00000000..02d8f943 --- /dev/null +++ b/build/test/unit/branding/BrandTests.js @@ -0,0 +1,72 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const toArray_1 = require("../../../lib/utils/toArray"); +const lib_1 = require("../../../lib"); +suite('Brand', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders although no property has been defined.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Brand, null)), container); + }); + const brand = container.querySelector('div'); + assertthat_1.assert.that(brand.className).is.containing('Brand'); + }); + test('sets class for defined property color if type is set to minimal.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Brand, { color: 'monochrome', type: 'minimal' })), container); + }); + const logo = container.querySelector('[class^=LogoMinimal]'); + assertthat_1.assert.that(logo.className).is.containing('IsMonochrome'); + }); + test('inserts logos according to defined type.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Brand, { type: 'minimal' }), + react_1.default.createElement(lib_1.Brand, { type: 'full' })), container); + }); + const minimal = container.querySelector('[class^=LogoMinimal]'); + assertthat_1.assert.that(minimal).is.not.null(); + const full = container.querySelector('[class^=LogoFull]'); + assertthat_1.assert.that(full).is.not.null(); + }); + test('passes through defined property size.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Brand, { size: 'sm' }), + react_1.default.createElement(lib_1.Brand, { size: 'md' }), + react_1.default.createElement(lib_1.Brand, { size: 'lg' })), container); + }); + const brands = (0, toArray_1.toArray)(container.querySelectorAll('[class^=LogoFull]')); + const [small, medium, large] = brands; + assertthat_1.assert.that(small.className).is.containing('SizeSm'); + assertthat_1.assert.that(medium.className).is.containing('SizeMd'); + assertthat_1.assert.that(large.className).is.containing('SizeLg'); + }); + test('passes through defined property isInteractive.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Brand, { isInteractive: true, type: 'minimal' }), + react_1.default.createElement(lib_1.Brand, { isInteractive: false, type: 'minimal' })), container); + }); + const brands = (0, toArray_1.toArray)(container.querySelectorAll('[class^=LogoMinimal]')); + const [interactive, notInteractive] = brands; + assertthat_1.assert.that(interactive.className).is.containing('IsInteractive'); + assertthat_1.assert.that(notInteractive.className).is.not.containing('IsInteractive'); + }); +}); diff --git a/build/test/unit/branding/MadeByTests.d.ts b/build/test/unit/branding/MadeByTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/branding/MadeByTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/branding/MadeByTests.js b/build/test/unit/branding/MadeByTests.js new file mode 100644 index 00000000..ce87f0f6 --- /dev/null +++ b/build/test/unit/branding/MadeByTests.js @@ -0,0 +1,62 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const toArray_1 = require("../../../lib/utils/toArray"); +const lib_1 = require("../../../lib"); +suite('MadeBy', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders although no property has been defined.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.MadeBy, null)), container); + }); + const madeBy = container.querySelector('div'); + assertthat_1.assert.that(madeBy.className).is.containingAllOf(['MadeBy', 'ColorDark', 'SizeSm']); + }); + test('sets classes for defined property size.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.MadeBy, { size: 'sm' }), + react_1.default.createElement(lib_1.MadeBy, { size: 'md' }), + react_1.default.createElement(lib_1.MadeBy, { size: 'lg' })), container); + }); + const madeBys = (0, toArray_1.toArray)(container.querySelectorAll('[class^=MadeBy]')); + const [small, medium, large] = madeBys; + assertthat_1.assert.that(small.className).is.containing('SizeSm'); + assertthat_1.assert.that(medium.className).is.containing('SizeMd'); + assertthat_1.assert.that(large.className).is.containing('SizeLg'); + }); + test('sets classes for defined property color.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.MadeBy, { color: 'light' }), + react_1.default.createElement(lib_1.MadeBy, { color: 'dark' })), container); + }); + const madeBys = (0, toArray_1.toArray)(container.querySelectorAll('[class^=MadeBy]')); + const [light, dark] = madeBys; + assertthat_1.assert.that(light.className).is.containing('ColorLight'); + assertthat_1.assert.that(dark.className).is.containing('ColorDark'); + }); + test('inserts links according to defined property partner.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.MadeBy, { partner: { href: '/some-link', name: 'some-name' } })), container); + }); + const links = (0, toArray_1.toArray)(container.querySelectorAll('a')); + const partner = links.filter((link) => link.textContent === 'some-name'); + assertthat_1.assert.that(partner).is.not.null(); + }); +}); diff --git a/build/test/unit/branding/PatternTests.d.ts b/build/test/unit/branding/PatternTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/branding/PatternTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/branding/PatternTests.js b/build/test/unit/branding/PatternTests.js new file mode 100644 index 00000000..d809611d --- /dev/null +++ b/build/test/unit/branding/PatternTests.js @@ -0,0 +1,29 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const lib_1 = require("../../../lib"); +suite('Pattern', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders although no property has been defined.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Pattern, null, "This is a pattern.")), container); + }); + const pattern = container.querySelector('div'); + assertthat_1.assert.that(pattern.className).is.containing('Pattern'); + assertthat_1.assert.that(pattern.textContent).is.equalTo('This is a pattern.'); + }); +}); diff --git a/build/test/unit/branding/PoweredByTests.d.ts b/build/test/unit/branding/PoweredByTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/branding/PoweredByTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/branding/PoweredByTests.js b/build/test/unit/branding/PoweredByTests.js new file mode 100644 index 00000000..4e2020a6 --- /dev/null +++ b/build/test/unit/branding/PoweredByTests.js @@ -0,0 +1,47 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const toArray_1 = require("../../../lib/utils/toArray"); +const lib_1 = require("../../../lib"); +suite('PoweredBy', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders although no property has been defined.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.PoweredBy, null)), container); + }); + const poweredBy = container.querySelector('div'); + assertthat_1.assert.that(poweredBy.className).is.containing('PoweredBy'); + }); + test('passes through defined property size.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.PoweredBy, { size: 'md' }), + react_1.default.createElement(lib_1.PoweredBy, { size: 'lg' })), container); + }); + const [medium, large] = (0, toArray_1.toArray)(container.querySelectorAll('[class^=Product]')); + assertthat_1.assert.that(medium.className).is.containing('SizeMd'); + assertthat_1.assert.that(large.className).is.containing('SizeLg'); + }); + test('passes through defined property product.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.PoweredBy, { product: 'wolkenkit' })), container); + }); + const wolkenkit = container.querySelector('[class^=LogoWolkenkit]'); + assertthat_1.assert.that(wolkenkit).is.not.null(); + }); +}); diff --git a/build/test/unit/branding/ProductTests.d.ts b/build/test/unit/branding/ProductTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/branding/ProductTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/branding/ProductTests.js b/build/test/unit/branding/ProductTests.js new file mode 100644 index 00000000..21e5b499 --- /dev/null +++ b/build/test/unit/branding/ProductTests.js @@ -0,0 +1,84 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const toArray_1 = require("../../../lib/utils/toArray"); +const lib_1 = require("../../../lib"); +suite('Product', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders although no property has been defined.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Product, null)), container); + }); + const product = container.querySelector('div'); + assertthat_1.assert.that(product.className).is.containingAllOf(['Product', 'SizeMd']); + }); + test('sets classes for defined property size.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Product, { size: 'sm' }), + react_1.default.createElement(lib_1.Product, { size: 'md' }), + react_1.default.createElement(lib_1.Product, { size: 'lg' }), + react_1.default.createElement(lib_1.Product, { size: 'xl' })), container); + }); + const products = (0, toArray_1.toArray)(container.querySelectorAll('[class^=Product]')); + const [small, medium, large, xLarge] = products; + assertthat_1.assert.that(small.className).is.containing('SizeSm'); + assertthat_1.assert.that(medium.className).is.containing('SizeMd'); + assertthat_1.assert.that(large.className).is.containing('SizeLg'); + assertthat_1.assert.that(xLarge.className).is.containing('SizeXl'); + }); + test('renders text and logo according to defined property type.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Product, { type: 'default' }), + react_1.default.createElement(lib_1.Product, { type: 'text-only' }), + react_1.default.createElement(lib_1.Product, { type: 'logo-only' })), container); + }); + const products = (0, toArray_1.toArray)(container.querySelectorAll('[class^=Product]')); + const [standard, textOnly, logoOnly] = products; + assertthat_1.assert.that(standard.querySelector('[class^=LogoTheNativeWeb]')).is.not.null(); + assertthat_1.assert.that(standard.querySelector('[class^=Name]')).is.not.null(); + assertthat_1.assert.that(textOnly.querySelector('[class^=Name]')).is.not.null(); + assertthat_1.assert.that(textOnly.querySelector('[class^=LogoTheNativeWeb]')).is.null(); + assertthat_1.assert.that(logoOnly.querySelector('[class^=LogoTheNativeWeb]')).is.not.null(); + assertthat_1.assert.that(logoOnly.querySelector('[class^=Name]')).is.null(); + }); + test('passes through defined property isAnimated if property name is set to wolkenkit.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Product, { name: 'wolkenkit', isAnimated: true }), + react_1.default.createElement(lib_1.Product, { name: 'wolkenkit', isAnimated: false }), + react_1.default.createElement(lib_1.Product, { isAnimated: true })), container); + }); + const products = (0, toArray_1.toArray)(container.querySelectorAll('[class^=Product]')); + const [wolkenkitAnimated, wolkenkitStatic, tnwAnimated] = products; + assertthat_1.assert.that(wolkenkitAnimated.querySelector('[class^=MovingCloudAnimated]')).is.not.null(); + assertthat_1.assert.that(wolkenkitStatic.querySelector('[class^=MovingCloudAnimated]')).is.null(); + assertthat_1.assert.that(tnwAnimated.querySelector('[class^=MovingCloudAnimated]')).is.null(); + }); + test('sets classes for defined property name.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Product, { name: 'wolkenkit' }), + react_1.default.createElement(lib_1.Product, { name: 'name-for-testing' })), container); + }); + const products = (0, toArray_1.toArray)(container.querySelectorAll('[class^=Product]')); + const [wolkenkit, other] = products; + assertthat_1.assert.that(wolkenkit.querySelector('[class^=CompositeName]')).is.not.null(); + assertthat_1.assert.that(other.querySelector('[class^=CompositeName]')).is.null(); + }); +}); diff --git a/build/test/unit/documentation/CodeTests.d.ts b/build/test/unit/documentation/CodeTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/documentation/CodeTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/documentation/CodeTests.js b/build/test/unit/documentation/CodeTests.js new file mode 100644 index 00000000..cdc00213 --- /dev/null +++ b/build/test/unit/documentation/CodeTests.js @@ -0,0 +1,67 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const lib_1 = require("../../../lib"); +suite('Code', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders children as JavaScript code although no property has been defined.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Code, { id: 'code' }, ` + const message = 'This is JavaScript code!'; + + console.log(message); + `)), container); + }); + const codeBlock = container.querySelector('#code'); + assertthat_1.assert.that(codeBlock.tagName).is.equalTo('DIV'); + assertthat_1.assert.that(codeBlock.className).is.containing('Code'); + assertthat_1.assert.that(codeBlock.id).is.equalTo('code'); + assertthat_1.assert.that(codeBlock.innerHTML).is.matching(/console<\/span>/u); + }); + test('renders children as TypeScript code if property language is set to typescript.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Code, { id: 'code', language: 'typescript' }, ` + const message: string = 'This is TypeScript code!'; + + console.log(message); + `)), container); + }); + const codeBlock = container.querySelector('#code'); + assertthat_1.assert.that(codeBlock.innerHTML).is.matching(/string<\/span>/u); + }); + test('renders children as shell code if property language is set to shell.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Code, { id: 'code', language: 'shell' }, ` + # This is a comment + + $ npm run install + `)), container); + }); + const codeBlock = container.querySelector('#code'); + assertthat_1.assert.that(codeBlock.innerHTML).is.matching(/# This is a comment<\/span>/u); + }); + test('renders children as inline code element when type is set to inline.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Code, { id: 'code', type: 'inline' }, "inlineCode")), container); + }); + const codeBlock = container.querySelector('#code'); + assertthat_1.assert.that(codeBlock.tagName).is.equalTo('CODE'); + }); +}); diff --git a/build/test/unit/documentation/formatAsPrettyStringTests.d.ts b/build/test/unit/documentation/formatAsPrettyStringTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/documentation/formatAsPrettyStringTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/documentation/formatAsPrettyStringTests.js b/build/test/unit/documentation/formatAsPrettyStringTests.js new file mode 100644 index 00000000..d811ab14 --- /dev/null +++ b/build/test/unit/documentation/formatAsPrettyStringTests.js @@ -0,0 +1,29 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const assertthat_1 = require("assertthat"); +const lib_1 = require("../../../lib"); +const formatAsPrettyString_1 = require("../../../lib/components/documentation/formatAsPrettyString"); +const react_1 = __importDefault(require("react")); +suite('formatAsPrettyString', () => { + test('returns the string `undefined` if the source is undefined.', async () => { + assertthat_1.assert.that((0, formatAsPrettyString_1.formatAsPrettyString)()).is.equalTo('undefined'); + }); + test('returns the string `null` if the source is null.', async () => { + assertthat_1.assert.that((0, formatAsPrettyString_1.formatAsPrettyString)(null)).is.equalTo('null'); + }); + test('returns a prettified string, if the source is an object.', async () => { + const prettifiedString = (0, formatAsPrettyString_1.formatAsPrettyString)({ foo: 'bar' }); + assertthat_1.assert.that(prettifiedString).is.equalTo('Object {\n "foo": "bar",\n}'); + }); + test('returns a prettified string, if the source is a React DOM element.', async () => { + const prettifiedString = (0, formatAsPrettyString_1.formatAsPrettyString)(react_1.default.createElement("div", null, "React element")); + assertthat_1.assert.that(prettifiedString).is.equalTo('
\n React element\n
'); + }); + test('returns a prettified string, if the source is a custom component.', async () => { + const prettifiedString = (0, formatAsPrettyString_1.formatAsPrettyString)(react_1.default.createElement(lib_1.Button, null, "Custom component")); + assertthat_1.assert.that(prettifiedString).is.equalTo(''); + }); +}); diff --git a/build/test/unit/feedback/BusyIndicatorTests.d.ts b/build/test/unit/feedback/BusyIndicatorTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/feedback/BusyIndicatorTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/feedback/BusyIndicatorTests.js b/build/test/unit/feedback/BusyIndicatorTests.js new file mode 100644 index 00000000..f5c2fa3f --- /dev/null +++ b/build/test/unit/feedback/BusyIndicatorTests.js @@ -0,0 +1,36 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const lib_1 = require("../../../lib"); +suite('BusyIndicator', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders although no property has been defined.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.BusyIndicator, null)), container); + }); + const busy = container.querySelector('div'); + assertthat_1.assert.that(busy.className).is.containing('BusyIndicator'); + }); + test('returns null if property isVisible is set to false.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.BusyIndicator, { isVisible: false })), container); + }); + const busy = container.querySelector('div'); + assertthat_1.assert.that(busy).is.null(); + }); +}); diff --git a/build/test/unit/feedback/DialogsTests.d.ts b/build/test/unit/feedback/DialogsTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/feedback/DialogsTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/feedback/DialogsTests.js b/build/test/unit/feedback/DialogsTests.js new file mode 100644 index 00000000..7709767f --- /dev/null +++ b/build/test/unit/feedback/DialogsTests.js @@ -0,0 +1,101 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const eventDispatchers_1 = require("../../shared/eventDispatchers"); +const DialogService_1 = require("../../../lib/services/DialogService"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const lib_1 = require("../../../lib"); +suite('Dialogs', () => { + let container, dialogService, portalRootNode; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + portalRootNode = document.createElement('div'); + document.body.appendChild(portalRootNode); + dialogService = new DialogService_1.DialogService(); + }); + teardown(async () => { + document.body.removeChild(container); + document.body.removeChild(portalRootNode); + }); + test('renders dialogs into portal root node.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Dialogs, { portalRootNode: portalRootNode, dialogService: dialogService, className: 'Dialogs-for-testing-1' })), container); + }); + await Promise.all([ + new Promise((resolve, reject) => { + // This promise only resolves if the confirm button inside the dialog + // has been clicked. + dialogService.confirm({ + title: 'Do you want to proceed?', + actions: { + confirm: 'Yes, proceed!', + cancel: 'Cancel' + } + }). + then((action) => { + assertthat_1.assert.that(action).is.equalTo('confirm'); + resolve(); + }). + catch(reject); + }), + new Promise((resolve) => { + // We delay the following code so the confirm dialog can be rendered + // first. + setTimeout(() => { + const headerText = portalRootNode.querySelector('.Dialogs-for-testing-1 [class*=Headline]'); + assertthat_1.assert.that(headerText.textContent).is.equalTo('Do you want to proceed?'); + const confirmButton = portalRootNode.querySelector('#dialogs-confirm-action-confirm'); + (0, act_1.act)(() => { + (0, eventDispatchers_1.click)(confirmButton); + }); + resolve(); + }, 100); + }) + ]); + }); + test('sets dialog invisible after confirmation.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Dialogs, { portalRootNode: portalRootNode, dialogService: dialogService, className: 'Dialogs-for-testing-2' })), container); + }); + await Promise.all([ + new Promise((resolve, reject) => { + // This promise only resolves if the confirm button inside the dialog + // has been clicked. + dialogService.confirm({ + title: 'Do you want to proceed?', + actions: { + confirm: 'Yes, proceed!', + cancel: 'Cancel' + } + }). + then((action) => { + assertthat_1.assert.that(action).is.equalTo('confirm'); + resolve(); + }). + catch(reject); + }), + new Promise((resolve) => { + // We delay the following code so the confirm dialog can be rendered + // first. + setTimeout(() => { + const bodyWithDialog = document.querySelector('body'); + const confirmButton = portalRootNode.querySelector('#dialogs-confirm-action-confirm'); + assertthat_1.assert.that(bodyWithDialog.className).is.equalTo('thenativeweb-modal--visible'); + (0, act_1.act)(() => { + (0, eventDispatchers_1.click)(confirmButton); + }); + assertthat_1.assert.that(bodyWithDialog.className).is.not.equalTo('thenativeweb-modal--visible'); + resolve(); + }, 100); + }) + ]); + }); +}); diff --git a/build/test/unit/feedback/HighlightTextTests.d.ts b/build/test/unit/feedback/HighlightTextTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/feedback/HighlightTextTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/feedback/HighlightTextTests.js b/build/test/unit/feedback/HighlightTextTests.js new file mode 100644 index 00000000..d73fe5d0 --- /dev/null +++ b/build/test/unit/feedback/HighlightTextTests.js @@ -0,0 +1,35 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const toArray_1 = require("../../../lib/utils/toArray"); +const lib_1 = require("../../../lib"); +suite('HighlightText', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders with only required properties.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.HighlightText, { className: 'component', searchWords: ['foo', 'bar', 'baz'] }, "This text will be highlighted: foo, bar, and baz.")), container); + }); + const component = container.querySelector('.component'); + const highlights = (0, toArray_1.toArray)(container.querySelectorAll('[class^=Highlight-]')); + const [foo, bar, baz] = highlights; + assertthat_1.assert.that(component.className).is.containing('HighlightText'); + assertthat_1.assert.that(highlights.length).is.equalTo(3); + assertthat_1.assert.that(foo.textContent).is.equalTo('foo'); + assertthat_1.assert.that(bar.textContent).is.equalTo('bar'); + assertthat_1.assert.that(baz.textContent).is.equalTo('baz'); + }); +}); diff --git a/build/test/unit/feedback/MessageTests.d.ts b/build/test/unit/feedback/MessageTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/feedback/MessageTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/feedback/MessageTests.js b/build/test/unit/feedback/MessageTests.js new file mode 100644 index 00000000..b4b99ce5 --- /dev/null +++ b/build/test/unit/feedback/MessageTests.js @@ -0,0 +1,48 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const toArray_1 = require("../../../lib/utils/toArray"); +const lib_1 = require("../../../lib"); +suite('Message', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders although no property has been defined.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Message, null)), container); + }); + const busy = container.querySelector('div'); + assertthat_1.assert.that(busy.className).is.containing('Message'); + }); + test('returns null if property isVisible is set to false.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Message, { isVisible: false })), container); + }); + const message = container.querySelector('div'); + assertthat_1.assert.that(message).is.null(); + }); + test('sets classes for defined property type.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Message, { id: 'some-id', type: 'info' }), + react_1.default.createElement(lib_1.Message, { id: 'some-id', type: 'error' })), container); + }); + const message = (0, toArray_1.toArray)(container.querySelectorAll('#some-id')); + const [info, error] = message; + assertthat_1.assert.that(info.className).is.containingAllOf(['TypeInfo', 'WithIcon']); + assertthat_1.assert.that(error.className).is.containingAllOf(['TypeError', 'WithIcon']); + }); +}); diff --git a/build/test/unit/feedback/ModalTests.d.ts b/build/test/unit/feedback/ModalTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/feedback/ModalTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/feedback/ModalTests.js b/build/test/unit/feedback/ModalTests.js new file mode 100644 index 00000000..c09f1735 --- /dev/null +++ b/build/test/unit/feedback/ModalTests.js @@ -0,0 +1,133 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const eventDispatchers_1 = require("../../shared/eventDispatchers"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const toArray_1 = require("../../../lib/utils/toArray"); +const lib_1 = require("../../../lib"); +suite('Modal', () => { + let container, portalRootNode; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + portalRootNode = document.createElement('div'); + document.body.appendChild(portalRootNode); + }); + teardown(async () => { + document.body.removeChild(container); + document.body.removeChild(portalRootNode); + }); + test('renders with only required properties.', async () => { + let canceled = false; + const onCancel = () => { + canceled = true; + }; + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Modal, { portalRootNode: portalRootNode, className: 'Modal-for-testing-1', isVisible: true, onCancel: onCancel })), container); + }); + const modal = portalRootNode.querySelector('.Modal-for-testing-1'); + const backdrop = portalRootNode.querySelector('[class^=Backdrop]'); + assertthat_1.assert.that(modal).is.not.null(); + (0, act_1.act)(() => { + (0, eventDispatchers_1.click)(backdrop); + }); + assertthat_1.assert.that(canceled).is.true(); + }); + test('returns null if isVisible is set to false.', async () => { + // eslint-disable-next-line unicorn/consistent-function-scoping + const onCancel = () => { + // Intentionally left blank. + }; + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Modal, { portalRootNode: portalRootNode, className: 'Modal-for-testing-2', isVisible: false, onCancel: onCancel })), container); + }); + const modal = portalRootNode.querySelector('.Modal-for-testing-2'); + assertthat_1.assert.that(modal).is.null(); + }); + test('sets classes for defined property attach.', async () => { + // eslint-disable-next-line unicorn/consistent-function-scoping + const onCancel = () => { + // Intentionally left blank. + }; + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Modal, { portalRootNode: portalRootNode, className: 'Modal-for-testing-3', isVisible: true, onCancel: onCancel, attach: 'left' }), + react_1.default.createElement(lib_1.Modal, { portalRootNode: portalRootNode, className: 'Modal-for-testing-3', isVisible: true, onCancel: onCancel, attach: 'right' }), + react_1.default.createElement(lib_1.Modal, { portalRootNode: portalRootNode, className: 'Modal-for-testing-3', isVisible: true, onCancel: onCancel, attach: 'sidebar' }), + react_1.default.createElement(lib_1.Modal, { portalRootNode: portalRootNode, className: 'Modal-for-testing-3', isVisible: true, onCancel: onCancel, attach: 'center' })), container); + }); + const modal = (0, toArray_1.toArray)(portalRootNode.querySelectorAll('.Modal-for-testing-3')); + const [left, right, sidebar, center] = modal; + assertthat_1.assert.that(left.className).is.containing('ChromeAttachedLeft'); + assertthat_1.assert.that(right.className).is.containing('ChromeAttachedRight'); + assertthat_1.assert.that(sidebar.className).is.containing('ChromeAttachedSidebar'); + assertthat_1.assert.that(center.className).is.containing('ChromeAttachedCenter'); + }); + test('sets classes for defined property size.', async () => { + // eslint-disable-next-line unicorn/consistent-function-scoping + const onCancel = () => { + // Intentionally left blank. + }; + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Modal, { portalRootNode: portalRootNode, className: 'Modal-for-testing-4', isVisible: true, onCancel: onCancel, size: 'sm' }), + react_1.default.createElement(lib_1.Modal, { portalRootNode: portalRootNode, className: 'Modal-for-testing-4', isVisible: true, onCancel: onCancel, size: 'md' }), + react_1.default.createElement(lib_1.Modal, { portalRootNode: portalRootNode, className: 'Modal-for-testing-4', isVisible: true, onCancel: onCancel, size: 'lg' }), + react_1.default.createElement(lib_1.Modal, { portalRootNode: portalRootNode, className: 'Modal-for-testing-4', isVisible: true, onCancel: onCancel, size: 'fullscreen' })), container); + }); + const modal = (0, toArray_1.toArray)(portalRootNode.querySelectorAll('.Modal-for-testing-4')); + const [small, medium, large, fullscreen] = modal; + assertthat_1.assert.that(small.className).is.containing('ChromeSizeSm'); + assertthat_1.assert.that(medium.className).is.containing('ChromeSizeMd'); + assertthat_1.assert.that(large.className).is.containing('ChromeSizeLg'); + assertthat_1.assert.that(fullscreen.className).is.containing('ChromeSizeFullscreen'); + }); + test('sets classes for defined property padding.', async () => { + // eslint-disable-next-line unicorn/consistent-function-scoping + const onCancel = () => { + // Intentionally left blank. + }; + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Modal, { portalRootNode: portalRootNode, className: 'Modal-for-testing-5', isVisible: true, onCancel: onCancel, padding: 'default' }), + react_1.default.createElement(lib_1.Modal, { portalRootNode: portalRootNode, className: 'Modal-for-testing-5', isVisible: true, onCancel: onCancel, padding: 'none' })), container); + }); + const [standard, none] = (0, toArray_1.toArray)(portalRootNode.querySelectorAll('.Modal-for-testing-5')); + assertthat_1.assert.that(standard.className).is.not.containing('ChromePaddingNone'); + assertthat_1.assert.that(none.className).is.containing('ChromePaddingNone'); + }); + test('inserts defined text for header if property showHeader is set to true.', async () => { + // eslint-disable-next-line unicorn/consistent-function-scoping + const onCancel = () => { + // Intentionally left blank. + }; + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Modal, { portalRootNode: portalRootNode, className: 'Modal-for-testing-6', isVisible: true, onCancel: onCancel, showHeader: true, header: 'Hello, this is a Header.' }), + react_1.default.createElement(lib_1.Modal, { portalRootNode: portalRootNode, className: 'Modal-for-testing-7', isVisible: true, onCancel: onCancel, showHeader: false })), container); + }); + const show = portalRootNode.querySelector('.Modal-for-testing-6 [class^=HeaderText]'); + assertthat_1.assert.that(show.textContent).is.equalTo('Hello, this is a Header.'); + const hide = portalRootNode.querySelector('.Modal-for-testing-7 [class^=Header]'); + assertthat_1.assert.that(hide).is.null(); + }); + test('inserts defined children as content.', async () => { + // eslint-disable-next-line unicorn/consistent-function-scoping + const onCancel = () => { + // Intentionally left blank. + }; + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Modal, { portalRootNode: portalRootNode, className: 'Modal-for-testing-8', isVisible: true, onCancel: onCancel }, "I am a modal.")), container); + }); + const show = portalRootNode.querySelector('.Modal-for-testing-8'); + assertthat_1.assert.that(show.textContent).is.equalTo('I am a modal.'); + }); +}); diff --git a/build/test/unit/feedback/NonIdealStateTests.d.ts b/build/test/unit/feedback/NonIdealStateTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/feedback/NonIdealStateTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/feedback/NonIdealStateTests.js b/build/test/unit/feedback/NonIdealStateTests.js new file mode 100644 index 00000000..57359649 --- /dev/null +++ b/build/test/unit/feedback/NonIdealStateTests.js @@ -0,0 +1,33 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const lib_1 = require("../../../lib"); +suite('NonIdealState', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders with only required properties.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.NonIdealState, { id: 'component', cause: 'Item could not be found' }, + react_1.default.createElement("p", null, "Try to hit search again."))), container); + }); + const component = container.querySelector('#component'); + const cause = component.querySelector('[class^=Cause]'); + const help = component.querySelector('[class^=Help]'); + assertthat_1.assert.that(component.className).is.containing('NonIdealState'); + assertthat_1.assert.that(cause.innerHTML).is.equalTo('Item could not be found'); + assertthat_1.assert.that(help.innerHTML).is.containing('Try to hit search again.'); + }); +}); diff --git a/build/test/unit/feedback/NotificationsTests.d.ts b/build/test/unit/feedback/NotificationsTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/feedback/NotificationsTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/feedback/NotificationsTests.js b/build/test/unit/feedback/NotificationsTests.js new file mode 100644 index 00000000..0a7a147c --- /dev/null +++ b/build/test/unit/feedback/NotificationsTests.js @@ -0,0 +1,79 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const toArray_1 = require("../../../lib/utils/toArray"); +const NotificationService_1 = require("../../../lib/services/NotificationService"); +const lib_1 = require("../../../lib"); +suite('Notifications', () => { + let container, notificationService, portalRootNode; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + portalRootNode = document.createElement('div'); + document.body.appendChild(portalRootNode); + notificationService = new NotificationService_1.NotificationService(); + }); + teardown(async () => { + document.body.removeChild(container); + document.body.removeChild(portalRootNode); + }); + test('renders in defined portal root node.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Notifications, { portalRootNode: portalRootNode, className: 'Class-for-testing-1' })), container); + }); + const notificationsDom = portalRootNode.querySelector('.Class-for-testing-1'); + assertthat_1.assert.that(notificationsDom.className).is.containing('Notifications'); + }); + test('renders an error notification if it is added to the given notificationService.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Notifications, { portalRootNode: portalRootNode, notificationService: notificationService, className: 'Notifications-for-testing-error' })), container); + }); + (0, act_1.act)(() => { + notificationService.addNotification({ type: 'error', text: 'This is an error!', duration: 200 }); + }); + const notification = portalRootNode.querySelector('.Notifications-for-testing-error [class*=TypeError]'); + assertthat_1.assert.that(notification.textContent).is.equalTo('This is an error!'); + }); + test('renders a success notification if it is added to the given notificationService.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Notifications, { portalRootNode: portalRootNode, notificationService: notificationService, className: 'Notifications-for-testing-success' })), container); + }); + (0, act_1.act)(() => { + (0, act_1.act)(() => { + notificationService.addNotification({ type: 'success', text: 'This is a success!', duration: 200 }); + }); + }); + const notification = portalRootNode.querySelector('.Notifications-for-testing-success [class*=TypeSuccess]'); + assertthat_1.assert.that(notification.className).is.containing('TypeSuccess'); + assertthat_1.assert.that(notification.textContent).is.equalTo('This is a success!'); + }); + test('removes a notification from the DOM, if it is removed from the given notificationService.', async () => { + let notificationObject; + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Notifications, { portalRootNode: portalRootNode, notificationService: notificationService, className: 'Notifications-for-testing-removes-notification' })), container); + }); + (0, act_1.act)(() => { + notificationObject = notificationService.addNotification({ type: 'success', text: 'This will be removed!', duration: 200 }); + }); + const notification = portalRootNode.querySelector('.Notifications-for-testing-removes-notification [class*=TypeSuccess]'); + assertthat_1.assert.that(notification.className).is.containing('TypeSuccess'); + assertthat_1.assert.that(notification.textContent).is.equalTo('This will be removed!'); + notificationService.removeNotification(notificationObject); + // We wait 300 ms to wait for the transition animation to be finished. + await new Promise((resolve) => { + setTimeout(resolve, 500); + }); + const notifications = (0, toArray_1.toArray)(portalRootNode.querySelectorAll('.Notifications-for-testing-removes-notification [class*=TypeSuccess]')); + assertthat_1.assert.that(notifications.length).is.equalTo(0); + }); +}); diff --git a/build/test/unit/forms/ControlGroupDividerTests.d.ts b/build/test/unit/forms/ControlGroupDividerTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/forms/ControlGroupDividerTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/forms/ControlGroupDividerTests.js b/build/test/unit/forms/ControlGroupDividerTests.js new file mode 100644 index 00000000..b1fc0f72 --- /dev/null +++ b/build/test/unit/forms/ControlGroupDividerTests.js @@ -0,0 +1,28 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const lib_1 = require("../../../lib"); +suite('ControlGroupDivider', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders although no property has been defined.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.ControlGroupDivider, null)), container); + }); + const controlGroupDivider = container.querySelector('hr'); + assertthat_1.assert.that(controlGroupDivider.className).is.containing('ControlGroupDivider'); + }); +}); diff --git a/build/test/unit/forms/ControlGroupItemTests.d.ts b/build/test/unit/forms/ControlGroupItemTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/forms/ControlGroupItemTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/forms/ControlGroupItemTests.js b/build/test/unit/forms/ControlGroupItemTests.js new file mode 100644 index 00000000..a14d35fc --- /dev/null +++ b/build/test/unit/forms/ControlGroupItemTests.js @@ -0,0 +1,62 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const toArray_1 = require("../../../lib/utils/toArray"); +const lib_1 = require("../../../lib"); +suite('ControlGroupItem', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders although no property has been defined.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.ControlGroupItem, null, + react_1.default.createElement("div", null, "This is an item."))), container); + }); + const controlGroupItem = container.querySelector('div'); + assertthat_1.assert.that(controlGroupItem.className).is.containingAllOf(['ControlGroupItem', 'AdjustFlex']); + }); + test('sets classes for defined property adjust.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.ControlGroupItem, { className: 'Item-for-testing', adjust: 'flex' }, + react_1.default.createElement("div", null, "This is an item.")), + react_1.default.createElement(lib_1.ControlGroupItem, { className: 'Item-for-testing', adjust: 'auto' }, + react_1.default.createElement("div", null, "This is an item."))), container); + }); + const [flex, auto] = (0, toArray_1.toArray)(container.querySelectorAll('.Item-for-testing')); + assertthat_1.assert.that(flex.className).is.containing('AdjustFlex'); + assertthat_1.assert.that(auto.className).is.containing('AdjustAuto'); + }); + test('inserts link if property helpLink is defined.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.ControlGroupItem, { className: 'Item-for-testing', helpLink: '/helplink' }, + react_1.default.createElement("div", null, "This is an item."))), container); + }); + const item = container.querySelector('.Item-for-testing a'); + assertthat_1.assert.that(item).is.not.null(); + }); + test('inserts label and sets classes if property label is defined.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.ControlGroupItem, { className: 'Item-for-testing', label: 'label' }, + react_1.default.createElement("div", null, "This is an item."))), container); + }); + const element = container.querySelector('label'); + assertthat_1.assert.that(element).is.not.null(); + const item = container.querySelector('.Item-for-testing'); + assertthat_1.assert.that(item.className).is.containing('Labeled'); + }); +}); diff --git a/build/test/unit/forms/ControlGroupTests.d.ts b/build/test/unit/forms/ControlGroupTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/forms/ControlGroupTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/forms/ControlGroupTests.js b/build/test/unit/forms/ControlGroupTests.js new file mode 100644 index 00000000..9caca165 --- /dev/null +++ b/build/test/unit/forms/ControlGroupTests.js @@ -0,0 +1,36 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const lib_1 = require("../../../lib"); +suite('ControlGroup', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders although no property has been defined.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.ControlGroup, null)), container); + }); + const controlGroup = container.querySelector('div'); + assertthat_1.assert.that(controlGroup.className).is.containing('ControlGroup'); + }); + test('returns null if property isVisible is set to false.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.ControlGroup, { isVisible: false })), container); + }); + const controlGroup = container.querySelector('div'); + assertthat_1.assert.that(controlGroup).is.null(); + }); +}); diff --git a/build/test/unit/forms/FormActionsTests.d.ts b/build/test/unit/forms/FormActionsTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/forms/FormActionsTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/forms/FormActionsTests.js b/build/test/unit/forms/FormActionsTests.js new file mode 100644 index 00000000..065e2402 --- /dev/null +++ b/build/test/unit/forms/FormActionsTests.js @@ -0,0 +1,28 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const lib_1 = require("../../../lib"); +suite('FormActions', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders although no property has been defined.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.FormActions, null)), container); + }); + const formActions = container.querySelector('div'); + assertthat_1.assert.that(formActions.className).is.containing('FormActions'); + }); +}); diff --git a/build/test/unit/forms/FormRowTests.d.ts b/build/test/unit/forms/FormRowTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/forms/FormRowTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/forms/FormRowTests.js b/build/test/unit/forms/FormRowTests.js new file mode 100644 index 00000000..ac2c361a --- /dev/null +++ b/build/test/unit/forms/FormRowTests.js @@ -0,0 +1,28 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const lib_1 = require("../../../lib"); +suite('FormRow', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders although no property has been defined.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.FormRow, null)), container); + }); + const formRow = container.querySelector('div'); + assertthat_1.assert.that(formRow.className).is.containing('FormRow'); + }); +}); diff --git a/build/test/unit/forms/FormTests.d.ts b/build/test/unit/forms/FormTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/forms/FormTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/forms/FormTests.js b/build/test/unit/forms/FormTests.js new file mode 100644 index 00000000..8bbfc8ad --- /dev/null +++ b/build/test/unit/forms/FormTests.js @@ -0,0 +1,44 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const eventDispatchers_1 = require("../../shared/eventDispatchers"); +const lib_1 = require("../../../lib"); +suite('Form', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders although no property has been defined.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Form, null)), container); + }); + const form = container.querySelector('form'); + assertthat_1.assert.that(form.className).is.containing('Form'); + }); + test('takes onSubmit function and runs it if submitted.', async () => { + let submitted = false; + const onSubmit = () => { + submitted = true; + }; + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Form, { onSubmit: onSubmit })), container); + }); + const form = container.querySelector('form'); + (0, act_1.act)(() => { + (0, eventDispatchers_1.submit)(form); + }); + assertthat_1.assert.that(submitted).is.true(); + }); +}); diff --git a/build/test/unit/graphics/IconTests.d.ts b/build/test/unit/graphics/IconTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/graphics/IconTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/graphics/IconTests.js b/build/test/unit/graphics/IconTests.js new file mode 100644 index 00000000..df87960e --- /dev/null +++ b/build/test/unit/graphics/IconTests.js @@ -0,0 +1,74 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const toArray_1 = require("../../../lib/utils/toArray"); +const lib_1 = require("../../../lib"); +suite('Icon', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders with defined required property.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Icon, { name: 'some-name' })), container); + }); + const icon = container.querySelector('svg'); + assertthat_1.assert.that(icon).is.not.null(); + assertthat_1.assert.that(icon.className.baseVal).is.containingAllOf(['Icon', 'ColorDefault', 'SizeSm']); + }); + test('sets classes for defined property size.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Icon, { name: 'some-name', className: 'Icon-for-testing', size: 'xs' }), + react_1.default.createElement(lib_1.Icon, { name: 'some-name', className: 'Icon-for-testing', size: 'sm' }), + react_1.default.createElement(lib_1.Icon, { name: 'some-name', className: 'Icon-for-testing', size: 'md' }), + react_1.default.createElement(lib_1.Icon, { name: 'some-name', className: 'Icon-for-testing', size: 'lg' }), + react_1.default.createElement(lib_1.Icon, { name: 'some-name', className: 'Icon-for-testing', size: 'xl' }), + react_1.default.createElement(lib_1.Icon, { name: 'some-name', className: 'Icon-for-testing', size: 'xxl' })), container); + }); + const icons = (0, toArray_1.toArray)(container.querySelectorAll('.Icon-for-testing')); + const [xSmall, small, medium, large, xLarge, xxLarge] = icons; + assertthat_1.assert.that(xSmall.className.baseVal).is.containing('SizeXs'); + assertthat_1.assert.that(small.className.baseVal).is.containing('SizeSm'); + assertthat_1.assert.that(medium.className.baseVal).is.containing('SizeMd'); + assertthat_1.assert.that(large.className.baseVal).is.containing('SizeLg'); + assertthat_1.assert.that(xLarge.className.baseVal).is.containing('SizeXl'); + assertthat_1.assert.that(xxLarge.className.baseVal).is.containing('SizeXxl'); + }); + test('sets classes for defined property color.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Icon, { name: 'some-name', className: 'Icon-for-testing', color: 'default' }), + react_1.default.createElement(lib_1.Icon, { name: 'some-name', className: 'Icon-for-testing', color: 'current' }), + react_1.default.createElement(lib_1.Icon, { name: 'some-name', className: 'Icon-for-testing', color: 'highlight' }), + react_1.default.createElement(lib_1.Icon, { name: 'some-name', className: 'Icon-for-testing', color: 'white' })), container); + }); + const icons = (0, toArray_1.toArray)(container.querySelectorAll('.Icon-for-testing')); + const [standard, current, highlight, white] = icons; + assertthat_1.assert.that(standard.className.baseVal).is.containing('ColorDefault'); + assertthat_1.assert.that(current.className.baseVal).is.containing('ColorCurrent'); + assertthat_1.assert.that(highlight.className.baseVal).is.containing('ColorHighlight'); + assertthat_1.assert.that(white.className.baseVal).is.containing('ColorWhite'); + }); + test('sets classes for defined property type.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Icon, { name: 'some-name', className: 'Icon-for-testing', type: 'inline' }), + react_1.default.createElement(lib_1.Icon, { name: 'some-name', className: 'Icon-for-testing', type: 'flex-auto' })), container); + }); + const [inline, flex] = (0, toArray_1.toArray)(container.querySelectorAll('.Icon-for-testing')); + assertthat_1.assert.that(inline.className.baseVal).is.containing('TypeInline'); + assertthat_1.assert.that(flex.className.baseVal).is.containing('TypeFlex'); + }); +}); diff --git a/build/test/unit/graphics/LogoFullTests.d.ts b/build/test/unit/graphics/LogoFullTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/graphics/LogoFullTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/graphics/LogoFullTests.js b/build/test/unit/graphics/LogoFullTests.js new file mode 100644 index 00000000..7309330d --- /dev/null +++ b/build/test/unit/graphics/LogoFullTests.js @@ -0,0 +1,42 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const toArray_1 = require("../../../lib/utils/toArray"); +const lib_1 = require("../../../lib"); +suite('LogoFull', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders although no property has been defined.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.LogoFull, null)), container); + }); + const logo = container.querySelector('div'); + assertthat_1.assert.that(logo.className).is.containingAllOf(['LogoFull', 'SizeMd']); + }); + test('sets classes for defined property size.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.LogoFull, { size: 'sm' }), + react_1.default.createElement(lib_1.LogoFull, { size: 'md' }), + react_1.default.createElement(lib_1.LogoFull, { size: 'lg' })), container); + }); + const logos = (0, toArray_1.toArray)(container.querySelectorAll('div')); + const [small, medium, large] = logos; + assertthat_1.assert.that(small.className).is.containing('SizeSm'); + assertthat_1.assert.that(medium.className).is.containing('SizeMd'); + assertthat_1.assert.that(large.className).is.containing('SizeLg'); + }); +}); diff --git a/build/test/unit/graphics/LogoMinimalTests.d.ts b/build/test/unit/graphics/LogoMinimalTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/graphics/LogoMinimalTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/graphics/LogoMinimalTests.js b/build/test/unit/graphics/LogoMinimalTests.js new file mode 100644 index 00000000..edcd24ef --- /dev/null +++ b/build/test/unit/graphics/LogoMinimalTests.js @@ -0,0 +1,64 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const toArray_1 = require("../../../lib/utils/toArray"); +const lib_1 = require("../../../lib"); +suite('LogoMinimal', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders although no property has been defined.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.LogoMinimal, null)), container); + }); + const logo = container.querySelector('div'); + assertthat_1.assert.that(logo.className).is.containingAllOf(['LogoMinimal', 'SizeMd']); + }); + test('sets classes for defined property size.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.LogoMinimal, { size: 'sm' }), + react_1.default.createElement(lib_1.LogoMinimal, { size: 'md' }), + react_1.default.createElement(lib_1.LogoMinimal, { size: 'lg' })), container); + }); + const logos = (0, toArray_1.toArray)(container.querySelectorAll('div')); + const [small, medium, large] = logos; + assertthat_1.assert.that(small.className).is.containing('SizeSm'); + assertthat_1.assert.that(medium.className).is.containing('SizeMd'); + assertthat_1.assert.that(large.className).is.containing('SizeLg'); + }); + test('sets classes for defined property color.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.LogoMinimal, { color: 'default' }), + react_1.default.createElement(lib_1.LogoMinimal, { color: 'monochrome' })), container); + }); + const logos = (0, toArray_1.toArray)(container.querySelectorAll('div')); + const [standard, monochrome] = logos; + assertthat_1.assert.that(standard.className).is.not.containing('IsMonochrome'); + assertthat_1.assert.that(monochrome.className).is.containing('IsMonochrome'); + }); + test('sets classes for defined property isInteractive.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.LogoMinimal, { isInteractive: true }), + react_1.default.createElement(lib_1.LogoMinimal, { isInteractive: false })), container); + }); + const logos = (0, toArray_1.toArray)(container.querySelectorAll('div')); + const [isInteractive, notInteractive] = logos; + assertthat_1.assert.that(isInteractive.className).is.containing('IsInteractive'); + assertthat_1.assert.that(notInteractive.className).is.not.containing('IsInteractive'); + }); +}); diff --git a/build/test/unit/graphics/LogoTheNativeWebTests.d.ts b/build/test/unit/graphics/LogoTheNativeWebTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/graphics/LogoTheNativeWebTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/graphics/LogoTheNativeWebTests.js b/build/test/unit/graphics/LogoTheNativeWebTests.js new file mode 100644 index 00000000..49982005 --- /dev/null +++ b/build/test/unit/graphics/LogoTheNativeWebTests.js @@ -0,0 +1,52 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const toArray_1 = require("../../../lib/utils/toArray"); +const lib_1 = require("../../../lib"); +suite('LogoTheNativeWeb', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders although no property has been defined.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.LogoTheNativeWeb, null)), container); + }); + const logo = container.querySelector('div'); + assertthat_1.assert.that(logo.className).is.containingAllOf(['LogoTheNativeWeb', 'SizeMd']); + }); + test('sets classes for defined property size.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.LogoTheNativeWeb, { size: 'sm' }), + react_1.default.createElement(lib_1.LogoTheNativeWeb, { size: 'md' }), + react_1.default.createElement(lib_1.LogoTheNativeWeb, { size: 'lg' }), + react_1.default.createElement(lib_1.LogoTheNativeWeb, { size: 'xl' })), container); + }); + const logos = (0, toArray_1.toArray)(container.querySelectorAll('div')); + const [small, medium, large, xLarge] = logos; + assertthat_1.assert.that(small.className).is.containing('SizeSm'); + assertthat_1.assert.that(medium.className).is.containing('SizeMd'); + assertthat_1.assert.that(large.className).is.containing('SizeLg'); + assertthat_1.assert.that(xLarge.className).is.containing('SizeXl'); + }); + test('returns null if isVisible is set to false.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.LogoTheNativeWeb, { isVisible: false })), container); + }); + const logo = container.querySelector('div'); + assertthat_1.assert.that(logo).is.null(); + }); +}); diff --git a/build/test/unit/graphics/LogoWolkenkitTests.d.ts b/build/test/unit/graphics/LogoWolkenkitTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/graphics/LogoWolkenkitTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/graphics/LogoWolkenkitTests.js b/build/test/unit/graphics/LogoWolkenkitTests.js new file mode 100644 index 00000000..eef0f15a --- /dev/null +++ b/build/test/unit/graphics/LogoWolkenkitTests.js @@ -0,0 +1,52 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const toArray_1 = require("../../../lib/utils/toArray"); +const lib_1 = require("../../../lib"); +suite('LogoWolkenkit', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders although no property has been defined.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.LogoWolkenkit, null)), container); + }); + const logo = container.querySelector('div'); + assertthat_1.assert.that(logo.className).is.containingAllOf(['LogoWolkenkit', 'SizeMd']); + }); + test('sets classes for defined property size.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.LogoWolkenkit, { size: 'sm' }), + react_1.default.createElement(lib_1.LogoWolkenkit, { size: 'md' }), + react_1.default.createElement(lib_1.LogoWolkenkit, { size: 'lg' }), + react_1.default.createElement(lib_1.LogoWolkenkit, { size: 'xl' })), container); + }); + const logos = (0, toArray_1.toArray)(container.querySelectorAll('div')); + const [small, medium, large, xLarge] = logos; + assertthat_1.assert.that(small.className).is.containing('SizeSm'); + assertthat_1.assert.that(medium.className).is.containing('SizeMd'); + assertthat_1.assert.that(large.className).is.containing('SizeLg'); + assertthat_1.assert.that(xLarge.className).is.containing('SizeXl'); + }); + test('returns null if isVisible is set to false.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.LogoWolkenkit, { isVisible: false })), container); + }); + const logo = container.querySelector('div'); + assertthat_1.assert.that(logo).is.null(); + }); +}); diff --git a/build/test/unit/input/ButtonHintTests.d.ts b/build/test/unit/input/ButtonHintTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/input/ButtonHintTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/input/ButtonHintTests.js b/build/test/unit/input/ButtonHintTests.js new file mode 100644 index 00000000..b64edd00 --- /dev/null +++ b/build/test/unit/input/ButtonHintTests.js @@ -0,0 +1,29 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const lib_1 = require("../../../lib"); +suite('ButtonHint', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.ButtonHint, null, "Click me")), container); + }); + const buttonHint = container.querySelector('span'); + assertthat_1.assert.that(buttonHint).is.not.null(); + assertthat_1.assert.that(buttonHint.className).is.containing('ButtonHint'); + }); +}); diff --git a/build/test/unit/input/ButtonTests.d.ts b/build/test/unit/input/ButtonTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/input/ButtonTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/input/ButtonTests.js b/build/test/unit/input/ButtonTests.js new file mode 100644 index 00000000..0591aafd --- /dev/null +++ b/build/test/unit/input/ButtonTests.js @@ -0,0 +1,135 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const eventDispatchers_1 = require("../../shared/eventDispatchers"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const toArray_1 = require("../../../lib/utils/toArray"); +const lib_1 = require("../../../lib"); +suite('Button', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders although no property has been defined.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Button, null, "Click me")), container); + }); + const button = container.querySelector('button'); + assertthat_1.assert.that(button).is.not.null(); + assertthat_1.assert.that(button.className).is.not.containingAllOf([ + 'AdjustAuto', + 'AdjustFlex', + 'TypePrimary', + 'isSubtle', + 'SizeSm', + 'TypeIcon', + 'TypeIconOnly' + ]); + assertthat_1.assert.that(button.className).is.containing('SizeMd'); + assertthat_1.assert.that(button.type).is.equalTo('button'); + assertthat_1.assert.that(button.autofocus).is.not.true(); + assertthat_1.assert.that(button.textContent).is.equalTo('Click me'); + }); + test('sets classes for property adjust.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Button, { adjust: 'auto' }, "Click me"), + react_1.default.createElement(lib_1.Button, { adjust: 'flex' }, "Click me")), container); + }); + const buttons = (0, toArray_1.toArray)(container.querySelectorAll('button')); + const [auto, flex] = buttons; + assertthat_1.assert.that(auto).is.not.undefined(); + assertthat_1.assert.that(auto.className).is.containing('AdjustAuto'); + assertthat_1.assert.that(flex).is.not.undefined(); + assertthat_1.assert.that(flex.className).is.containing('AdjustFlex'); + }); + test('sets classes for property size.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Button, { size: 'sm' }, "Click me"), + react_1.default.createElement(lib_1.Button, { size: 'md' }, "Click me")), container); + }); + const buttons = (0, toArray_1.toArray)(container.querySelectorAll('button')); + const [sm, md] = buttons; + assertthat_1.assert.that(sm).is.not.undefined(); + assertthat_1.assert.that(sm.className).is.containing('SizeSm'); + assertthat_1.assert.that(md).is.not.undefined(); + assertthat_1.assert.that(md.className).is.containing('SizeMd'); + }); + test('sets defined property type.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Button, { type: 'submit' }, "Click me"), + react_1.default.createElement(lib_1.Button, { type: 'button' }, "Click me"), + react_1.default.createElement(lib_1.Button, { type: 'reset' }, "Click me")), container); + }); + const buttons = (0, toArray_1.toArray)(container.querySelectorAll('button')); + const [submit, button, reset] = buttons; + assertthat_1.assert.that(submit).is.not.undefined(); + assertthat_1.assert.that(submit.type).is.equalTo('submit'); + assertthat_1.assert.that(button).is.not.undefined(); + assertthat_1.assert.that(button.type).is.equalTo('button'); + assertthat_1.assert.that(reset).is.not.undefined(); + assertthat_1.assert.that(reset.type).is.equalTo('reset'); + }); + test('renders in primary mode.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Button, { isPrimary: true }, "Click me")), container); + }); + const button = container.querySelector('button'); + assertthat_1.assert.that(button).is.not.null(); + assertthat_1.assert.that(button.className).is.containing('TypePrimary'); + assertthat_1.assert.that(button.type).is.equalTo('submit'); + }); + test('takes onClick function and runs it if clicked.', async () => { + let clicked = false; + const onClick = () => { + clicked = true; + }; + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Button, { onClick: onClick }, "Click me")), container); + }); + const button = container.querySelector('button'); + assertthat_1.assert.that(button).is.not.null(); + (0, act_1.act)(() => { + (0, eventDispatchers_1.click)(button); + }); + assertthat_1.assert.that(clicked).is.true(); + }); + test('renders defined icon as child.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Button, { icon: 'icon-name' }, "Click me")), container); + }); + const button = container.querySelector('button'); + assertthat_1.assert.that(button).is.not.null(); + assertthat_1.assert.that(button.className).is.containing('TypeIcon'); + assertthat_1.assert.that(button.textContent).is.equalTo('Click me'); + const svg = button.children[0].nodeName; + assertthat_1.assert.that(svg).is.equalTo('svg'); + }); + test('renders defined icon as only content.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Button, { icon: 'icon-name' })), container); + }); + const button = container.querySelector('button'); + assertthat_1.assert.that(button).is.not.null(); + assertthat_1.assert.that(button.className).is.containing('TypeIconOnly'); + assertthat_1.assert.that(button.textContent).is.equalTo(''); + const svg = button.children[0].nodeName; + assertthat_1.assert.that(svg).is.equalTo('svg'); + }); +}); diff --git a/build/test/unit/input/CheckboxTests.d.ts b/build/test/unit/input/CheckboxTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/input/CheckboxTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/input/CheckboxTests.js b/build/test/unit/input/CheckboxTests.js new file mode 100644 index 00000000..25b51623 --- /dev/null +++ b/build/test/unit/input/CheckboxTests.js @@ -0,0 +1,64 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const eventDispatchers_1 = require("../../shared/eventDispatchers"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const lib_1 = require("../../../lib"); +suite('CheckBox', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders although no property has been defined.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.CheckBox, { id: 'some-id' })), container); + }); + const checkbox = container.querySelector('input'); + assertthat_1.assert.that(checkbox).is.not.null(); + assertthat_1.assert.that(checkbox.type).is.equalTo('checkbox'); + assertthat_1.assert.that(checkbox.id).is.equalTo('some-id'); + assertthat_1.assert.that(checkbox.className).is.containing('CheckBox'); + }); + test('toggles property checked if clicked.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.CheckBox, { id: 'some-id' })), container); + }); + const checkbox = container.querySelector('input'); + assertthat_1.assert.that(checkbox).is.not.null(); + assertthat_1.assert.that(checkbox.checked).is.false(); + (0, act_1.act)(() => { + (0, eventDispatchers_1.click)(checkbox); + }); + assertthat_1.assert.that(checkbox.checked).is.true(); + (0, act_1.act)(() => { + (0, eventDispatchers_1.click)(checkbox); + }); + assertthat_1.assert.that(checkbox.checked).is.false(); + }); + test('takes onChange function and runs it if property checked has been toggled.', async () => { + let doSomething = false; + const onChange = () => { + doSomething = true; + }; + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.CheckBox, { id: 'some-id', onChange: onChange })), container); + }); + const checkbox = container.querySelector('input'); + (0, act_1.act)(() => { + (0, eventDispatchers_1.click)(checkbox); + }); + assertthat_1.assert.that(doSomething).is.true(); + }); +}); diff --git a/build/test/unit/input/DropdownTests.d.ts b/build/test/unit/input/DropdownTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/input/DropdownTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/input/DropdownTests.js b/build/test/unit/input/DropdownTests.js new file mode 100644 index 00000000..20b8e175 --- /dev/null +++ b/build/test/unit/input/DropdownTests.js @@ -0,0 +1,39 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const lib_1 = require("../../../lib"); +suite('Dropdown', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders with required properties.', async () => { + const options = [ + { + label: 'random-label', + value: 'some-value' + }, { + label: 'some-label', + value: 'random-value' + } + ]; + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Dropdown, { options: options, value: 'some-value' }, "Dropdown")), container); + }); + const dropdown = container.querySelector('div'); + assertthat_1.assert.that(dropdown).is.not.null(); + assertthat_1.assert.that(dropdown.className).is.containingAllOf(['Dropdown', 'SizeMd']); + assertthat_1.assert.that(dropdown.className).is.not.containingAllOf(['Dropdown', 'SizeSm', 'IsFocused', 'CollapseIcon']); + }); +}); diff --git a/build/test/unit/input/LinkTests.d.ts b/build/test/unit/input/LinkTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/input/LinkTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/input/LinkTests.js b/build/test/unit/input/LinkTests.js new file mode 100644 index 00000000..032badf8 --- /dev/null +++ b/build/test/unit/input/LinkTests.js @@ -0,0 +1,84 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const eventDispatchers_1 = require("../../shared/eventDispatchers"); +const lib_1 = require("../../../lib"); +suite('Link', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders with required properties.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Link, { id: 'link', href: '/linkTo' }, "This is a link.")), container); + }); + const link = container.querySelector('#link'); + assertthat_1.assert.that(link).is.not.null(); + assertthat_1.assert.that(link.className).is.containing('Link'); + assertthat_1.assert.that(link.textContent).is.equalTo('This is a link.'); + assertthat_1.assert.that(link.href).is.equalTo('/linkTo'); + assertthat_1.assert.that(link.rel).is.not.equalTo('noopener noreferrer'); + assertthat_1.assert.that(link.target).is.not.equalTo('_blank'); + }); + test('sets defined properties in DOM Element if href is absolute.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Link, { id: 'link', href: 'https://thenativeweb.io' }, "This is a link.")), container); + }); + const link = container.querySelector('#link'); + assertthat_1.assert.that(link.rel).is.equalTo('noopener noreferrer'); + assertthat_1.assert.that(link.target).is.equalTo('_blank'); + }); + test('takes onClick function and runs it if clicked.', async () => { + let clicked = false; + const onClick = () => { + clicked = true; + }; + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Link, { id: 'link', onClick: onClick, href: 'https://thenativeweb.io' }, "This is a link.")), container); + }); + const link = container.querySelector('#link'); + assertthat_1.assert.that(link).is.not.null(); + (0, act_1.act)(() => { + (0, eventDispatchers_1.click)(link); + }); + assertthat_1.assert.that(clicked).is.true(); + }); + test('takes onMouseOver function and runs it if hovered.', async () => { + let hovered = false; + const onMouseOver = () => { + hovered = true; + }; + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Link, { id: 'link', onMouseOver: onMouseOver, href: 'https://thenativeweb.io' }, "This is a link.")), container); + }); + const link = container.querySelector('#link'); + assertthat_1.assert.that(link).is.not.null(); + (0, act_1.act)(() => { + (0, eventDispatchers_1.mouseover)(link); + }); + assertthat_1.assert.that(hovered).is.true(); + }); + test('sets tabIndex on inner a element if tabIndex is provided.', async () => { + const tabIndex = 0; + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Link, { tabIndex: tabIndex, id: 'link', href: '/linkTo' }, "This is a link.")), container); + }); + const link = container.querySelector('#link'); + assertthat_1.assert.that(link.tabIndex).is.equalTo(tabIndex); + }); +}); diff --git a/build/test/unit/input/TextAreaTests.d.ts b/build/test/unit/input/TextAreaTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/input/TextAreaTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/input/TextAreaTests.js b/build/test/unit/input/TextAreaTests.js new file mode 100644 index 00000000..9973ec06 --- /dev/null +++ b/build/test/unit/input/TextAreaTests.js @@ -0,0 +1,80 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const toArray_1 = require("../../../lib/utils/toArray"); +const lib_1 = require("../../../lib"); +suite('TextArea', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders although no property has been defined.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.TextArea, null)), container); + }); + const textArea = container.querySelector('textarea'); + assertthat_1.assert.that(textArea.className).is.containingAllOf(['TextArea', 'SizeMd']); + }); + test('can be picked by defined property id.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.TextArea, { id: 'some-id' })), container); + }); + const textArea = container.querySelectorAll('#some-id'); + assertthat_1.assert.that(textArea).is.not.null(); + }); + test('sets classes for defined property size.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.TextArea, { size: 'sm' }), + react_1.default.createElement(lib_1.TextArea, { size: 'md' })), container); + }); + const [small, medium] = (0, toArray_1.toArray)(container.querySelectorAll('textarea')); + assertthat_1.assert.that(small.className).is.containing('SizeSm'); + assertthat_1.assert.that(medium.className).is.containing('SizeMd'); + }); + test('sets classes and property in DOM element if disabled is set to true.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.TextArea, { disabled: true })), container); + }); + const textArea = container.querySelector('textarea'); + assertthat_1.assert.that(textArea.className).is.containing('IsDisabled'); + assertthat_1.assert.that(textArea.disabled).is.true(); + }); + test('sets defined placeholder.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.TextArea, { placeholder: 'This is a placeholder.' })), container); + }); + const textArea = container.querySelector('textarea'); + assertthat_1.assert.that(textArea.placeholder).is.equalTo('This is a placeholder.'); + }); + test('makes input required.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.TextArea, { required: true })), container); + }); + const textArea = container.querySelector('textarea'); + assertthat_1.assert.that(textArea.required).is.true(); + }); + test('sets defined value.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.TextArea, { value: 'This is actual content.' })), container); + }); + const textArea = container.querySelector('textarea'); + assertthat_1.assert.that(textArea.value).is.equalTo('This is actual content.'); + }); +}); diff --git a/build/test/unit/input/TextBoxTests.d.ts b/build/test/unit/input/TextBoxTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/input/TextBoxTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/input/TextBoxTests.js b/build/test/unit/input/TextBoxTests.js new file mode 100644 index 00000000..5d19ca7b --- /dev/null +++ b/build/test/unit/input/TextBoxTests.js @@ -0,0 +1,89 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const toArray_1 = require("../../../lib/utils/toArray"); +const lib_1 = require("../../../lib"); +suite('TextBox', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders although no property has been defined.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.TextBox, null)), container); + }); + const textBox = container.querySelector('input'); + assertthat_1.assert.that(textBox).is.not.null(); + assertthat_1.assert.that(textBox.className).is.containing('TextBox'); + assertthat_1.assert.that(textBox.type).is.equalTo('text'); + assertthat_1.assert.that(textBox.disabled).is.false(); + assertthat_1.assert.that(textBox.required).is.false(); + }); + test('can be picked by id.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.TextBox, { id: 'some-id' })), container); + }); + const textBox = container.querySelector('#some-id'); + assertthat_1.assert.that(textBox).is.not.null(); + }); + test('sets classes and property on DOM element if disabled is set to true.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.TextBox, { disabled: true })), container); + }); + const textBox = container.querySelector('input'); + assertthat_1.assert.that(textBox.disabled).is.true(); + assertthat_1.assert.that(textBox.className).is.containing('IsDisabled'); + }); + test('sets property on DOM element if required is set to true.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.TextBox, { required: true })), container); + }); + const textBox = container.querySelector('input'); + assertthat_1.assert.that(textBox.required).is.true(); + }); + test('sets placeholder on DOM element if defined.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.TextBox, { placeholder: 'This is a placeholder.' })), container); + }); + const textBox = container.querySelector('input'); + assertthat_1.assert.that(textBox.placeholder).is.equalTo('This is a placeholder.'); + }); + test('sets actual content on DOM element if value is defined.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.TextBox, { value: 'This is a value.' })), container); + }); + const textBox = container.querySelector('input'); + assertthat_1.assert.that(textBox.value).is.equalTo('This is a value.'); + }); + test('sets type on DOM element if is defined.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.TextBox, { type: 'date' }), + react_1.default.createElement(lib_1.TextBox, { type: 'port' }), + react_1.default.createElement(lib_1.TextBox, { type: 'time' })), container); + }); + const textBoxes = (0, toArray_1.toArray)(container.querySelectorAll('input')); + const [date, port, time] = textBoxes; + assertthat_1.assert.that(date.type).is.equalTo('date'); + assertthat_1.assert.that(port.type).is.equalTo('number'); + assertthat_1.assert.that(port.className).is.containing('TypePort'); + assertthat_1.assert.that(time.type).is.equalTo('time'); + assertthat_1.assert.that(time.className).is.containing('TypeTime'); + }); +}); diff --git a/build/test/unit/input/ToggleTests.d.ts b/build/test/unit/input/ToggleTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/input/ToggleTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/input/ToggleTests.js b/build/test/unit/input/ToggleTests.js new file mode 100644 index 00000000..78a578bc --- /dev/null +++ b/build/test/unit/input/ToggleTests.js @@ -0,0 +1,60 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const eventDispatchers_1 = require("../../shared/eventDispatchers"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const lib_1 = require("../../../lib"); +suite('Toggle', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders with required properties.', async () => { + const valuesForTesting = ['value-one', 'value-two']; + const selectedValue = valuesForTesting[0]; + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Toggle, { values: valuesForTesting, selectedValue: selectedValue })), container); + }); + const toggle = container.querySelector('div'); + assertthat_1.assert.that(toggle.className).is.containing('Toggle'); + assertthat_1.assert.that(toggle.children[0].textContent).is.equalTo('value-one'); + assertthat_1.assert.that(toggle.children[1].textContent).is.equalTo('value-two'); + }); + test('can be picked by defined id.', async () => { + const valuesForTesting = ['value-one', 'value-two']; + const selectedValue = valuesForTesting[0]; + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Toggle, { id: 'some-id', values: valuesForTesting, selectedValue: selectedValue })), container); + }); + const toggle = container.querySelector('#some-id'); + assertthat_1.assert.that(toggle).is.not.null(); + }); + test('takes onChange function and runs it if clicked.', async () => { + const valuesForTesting = ['value-one', 'value-two']; + const selectedValue = valuesForTesting[0]; + let newValue = 'old-value'; + const handleChange = (value) => { + newValue = value; + }; + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Toggle, { values: valuesForTesting, selectedValue: selectedValue, onChange: handleChange })), container); + }); + const button = container.querySelector('button'); + (0, act_1.act)(() => { + (0, eventDispatchers_1.click)(button); + }); + assertthat_1.assert.that(newValue).is.equalTo('value-one'); + }); +}); diff --git a/build/test/unit/layout/ContainerTests.d.ts b/build/test/unit/layout/ContainerTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/layout/ContainerTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/layout/ContainerTests.js b/build/test/unit/layout/ContainerTests.js new file mode 100644 index 00000000..e76e2f9b --- /dev/null +++ b/build/test/unit/layout/ContainerTests.js @@ -0,0 +1,114 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const toArray_1 = require("../../../lib/utils/toArray"); +const lib_1 = require("../../../lib"); +suite('Container', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders although no property has been defined.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Container, { id: 'some-id' }, + react_1.default.createElement("div", null, "Container"))), container); + }); + const containerDiv = container.querySelector('div'); + assertthat_1.assert.that(containerDiv.className).is.containingAllOf([ + 'Container', + 'BackgroundNone', + 'HorizontalCenter', + 'VerticalCenter' + ]); + assertthat_1.assert.that(containerDiv.className).is.not.containingAllOf([ + 'BackgroundDark', + 'BackgroundLight', + 'HorizontalLeft', + 'HorizontalRight', + 'HorizontalStretch', + 'IsRow', + 'IsScrollable', + 'VerticalStretch', + 'VerticalTop', + 'VerticalBottom' + ]); + assertthat_1.assert.that(containerDiv.id).is.equalTo('some-id'); + }); + test('sets classes for defined property background.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Container, { id: 'some-id', background: 'light' }, + react_1.default.createElement("div", null, "Container")), + react_1.default.createElement(lib_1.Container, { id: 'some-id', background: 'dark' }, + react_1.default.createElement("div", null, "Container")), + react_1.default.createElement(lib_1.Container, { id: 'some-id', background: 'none' }, + react_1.default.createElement("div", null, "Container"))), container); + }); + const containerDiv = (0, toArray_1.toArray)(container.querySelectorAll('#some-id')); + const [gray, dark, none] = containerDiv; + assertthat_1.assert.that(gray.className).is.containing('BackgroundLight'); + assertthat_1.assert.that(dark.className).is.containing('BackgroundDark'); + assertthat_1.assert.that(none.className).is.containing('BackgroundNone'); + }); + test('sets classes for defined property horizontal.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Container, { id: 'some-id', horizontal: 'left' }, + react_1.default.createElement("div", null, "Container")), + react_1.default.createElement(lib_1.Container, { id: 'some-id', horizontal: 'right' }, + react_1.default.createElement("div", null, "Container")), + react_1.default.createElement(lib_1.Container, { id: 'some-id', horizontal: 'center' }, + react_1.default.createElement("div", null, "Container")), + react_1.default.createElement(lib_1.Container, { id: 'some-id', horizontal: 'stretch' }, + react_1.default.createElement("div", null, "Container"))), container); + }); + const containerDiv = (0, toArray_1.toArray)(container.querySelectorAll('#some-id')); + const [left, right, center, stretch] = containerDiv; + assertthat_1.assert.that(left.className).is.containing('HorizontalLeft'); + assertthat_1.assert.that(right.className).is.containing('HorizontalRight'); + assertthat_1.assert.that(center.className).is.containing('HorizontalCenter'); + assertthat_1.assert.that(stretch.className).is.containing('HorizontalStretch'); + }); + test('sets classes for defined property vertical.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Container, { id: 'some-id', vertical: 'top' }, + react_1.default.createElement("div", null, "Container")), + react_1.default.createElement(lib_1.Container, { id: 'some-id', vertical: 'bottom' }, + react_1.default.createElement("div", null, "Container")), + react_1.default.createElement(lib_1.Container, { id: 'some-id', vertical: 'center' }, + react_1.default.createElement("div", null, "Container")), + react_1.default.createElement(lib_1.Container, { id: 'some-id', vertical: 'stretch' }, + react_1.default.createElement("div", null, "Container"))), container); + }); + const containerDiv = (0, toArray_1.toArray)(container.querySelectorAll('#some-id')); + const [top, bottom, center, stretch] = containerDiv; + assertthat_1.assert.that(top.className).is.containing('VerticalTop'); + assertthat_1.assert.that(bottom.className).is.containing('VerticalBottom'); + assertthat_1.assert.that(center.className).is.containing('VerticalCenter'); + assertthat_1.assert.that(stretch.className).is.containing('VerticalStretch'); + }); + test('sets classes for defined property isScrollable.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Container, { className: 'container', isScrollable: true }, + react_1.default.createElement("div", null, "Container")), + react_1.default.createElement(lib_1.Container, { className: 'container', isScrollable: false }, + react_1.default.createElement("div", null, "Container"))), container); + }); + const [scrollable, nonScrollable] = (0, toArray_1.toArray)(container.querySelectorAll('.container')); + assertthat_1.assert.that(scrollable.className).is.containing('IsScrollable'); + assertthat_1.assert.that(nonScrollable.className).is.containing('IsNotScrollable'); + }); +}); diff --git a/build/test/unit/layout/FooterTests.d.ts b/build/test/unit/layout/FooterTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/layout/FooterTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/layout/FooterTests.js b/build/test/unit/layout/FooterTests.js new file mode 100644 index 00000000..15651167 --- /dev/null +++ b/build/test/unit/layout/FooterTests.js @@ -0,0 +1,112 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const toArray_1 = require("../../../lib/utils/toArray"); +const lib_1 = require("../../../lib"); +suite('Footer', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders with only required properties.', async () => { + const currentYear = new Date().getFullYear(); + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Footer, { id: 'footer', yearOfCreation: currentYear })), container); + }); + const footer = container.querySelector('#footer'); + assertthat_1.assert.that(footer.className).is.containing('Footer'); + const copyright = footer.querySelector('[class^=Copyright-]'); + assertthat_1.assert.that(copyright.textContent).is.startingWith(`© Copyright ${currentYear}`); + const legalLinks = footer.querySelector('[class^=Legal-]'); + assertthat_1.assert.that(legalLinks === null || legalLinks === void 0 ? void 0 : legalLinks.textContent).is.equalTo(''); + }); + test('sets classes for defined property borderTop.', async () => { + const currentYear = new Date().getFullYear(); + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Footer, { id: 'footerBorderTopNone', borderTop: 'none', yearOfCreation: currentYear }), + react_1.default.createElement(lib_1.Footer, { id: 'footerBorderTopDark', borderTop: 'dark', yearOfCreation: currentYear })), container); + }); + const footerBorderTopNone = container.querySelector('#footerBorderTopNone'); + const footerBorderTopDark = container.querySelector('#footerBorderTopDark'); + assertthat_1.assert.that(footerBorderTopNone.className).is.containing(`BorderTopNone`); + assertthat_1.assert.that(footerBorderTopDark.className).is.containing(`BorderTopDark`); + }); + test('sets classes for defined property color.', async () => { + const currentYear = new Date().getFullYear(); + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Footer, { id: 'footerColorDark', color: 'dark', yearOfCreation: currentYear }), + react_1.default.createElement(lib_1.Footer, { id: 'footerColorLight', color: 'light', yearOfCreation: currentYear })), container); + }); + const footerColorDark = container.querySelector('#footerColorDark'); + const footerColorLight = container.querySelector('#footerColorLight'); + assertthat_1.assert.that(footerColorDark.className).is.containing(`ColorDark`); + assertthat_1.assert.that(footerColorLight.className).is.containing(`ColorLight`); + }); + test('sets classes for defined property fontSize.', async () => { + const currentYear = new Date().getFullYear(); + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Footer, { id: 'footerFontSizeSm', fontSize: 'sm', yearOfCreation: currentYear }), + react_1.default.createElement(lib_1.Footer, { id: 'footerFontSizeMd', fontSize: 'md', yearOfCreation: currentYear })), container); + }); + const footerFontSizeSm = container.querySelector('#footerFontSizeSm'); + const footerFontSizeMd = container.querySelector('#footerFontSizeMd'); + assertthat_1.assert.that(footerFontSizeSm.className).is.containing(`FontSizeSm`); + assertthat_1.assert.that(footerFontSizeMd.className).is.containing(`FontSizeMd`); + }); + test('renders a copyright timeframe when a year of creation older than the current year is given.', async () => { + const currentYear = new Date().getFullYear(); + const lastYear = currentYear - 1; + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Footer, { id: 'footer', yearOfCreation: lastYear })), container); + }); + const footer = container.querySelector('#footer'); + assertthat_1.assert.that(footer.className).is.containing('Footer'); + const copyright = footer.querySelector('[class^=Copyright-]'); + assertthat_1.assert.that(copyright.textContent).is.startingWith(`© Copyright ${lastYear}-${currentYear}`); + }); + test('renders a link to the imprint.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Footer, { id: 'footer', yearOfCreation: new Date().getFullYear(), linkToImprint: '/imprint' })), container); + }); + const footer = container.querySelector('#footer'); + assertthat_1.assert.that(footer.className).is.containing('Footer'); + const [imprintLink] = (0, toArray_1.toArray)(footer.querySelectorAll('[class^=Legal-] a')); + assertthat_1.assert.that(imprintLink.getAttribute('href')).is.startingWith('/imprint'); + }); + test('renders a link to the privacy policy.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Footer, { id: 'footer', yearOfCreation: new Date().getFullYear(), linkToPrivacyPolicy: '/privacy-policy' })), container); + }); + const footer = container.querySelector('#footer'); + assertthat_1.assert.that(footer.className).is.containing('Footer'); + const [privacyPolicyLink] = (0, toArray_1.toArray)(footer.querySelectorAll('[class^=Legal-] a')); + assertthat_1.assert.that(privacyPolicyLink.getAttribute('href')).is.startingWith('/privacy-policy'); + }); + test('renders an edit on github link.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Footer, { id: 'footer', yearOfCreation: new Date().getFullYear(), linkToGithub: 'https://www.github.com' })), container); + }); + const footer = container.querySelector('#footer'); + assertthat_1.assert.that(footer.className).is.containing('Footer'); + const [privacyPolicyLink] = (0, toArray_1.toArray)(footer.querySelectorAll('[class^=Contribute-] a')); + assertthat_1.assert.that(privacyPolicyLink.getAttribute('href')).is.startingWith('https://www.github.com'); + }); +}); diff --git a/build/test/unit/layout/GridItemTests.d.ts b/build/test/unit/layout/GridItemTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/layout/GridItemTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/layout/GridItemTests.js b/build/test/unit/layout/GridItemTests.js new file mode 100644 index 00000000..ab3bd8d2 --- /dev/null +++ b/build/test/unit/layout/GridItemTests.js @@ -0,0 +1,75 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const lib_1 = require("../../../lib"); +suite('GridItem', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders although no property has been defined.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.GridItem, { id: 'grid-item' }, "Item")), container); + }); + const item = container.querySelector('#grid-item'); + assertthat_1.assert.that(item.className).is.containing('GridItem'); + }); + test('renders defined element type.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.GridItem, { component: 'span' }, "GridItem")), container); + }); + const item = container.querySelector('span'); + assertthat_1.assert.that(item).is.not.null(); + }); + test('sets classes for defined property columnSpan.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.GridItem, { columnSpan: { xs: 3, sm: 4, md: 5, lg: 6 } }, "GridItem")), container); + }); + const item = container.querySelector('div'); + assertthat_1.assert.that(item.className).is.containingAllOf([ + 'xs-columnSpan-3', + 'sm-columnSpan-4', + 'md-columnSpan-5', + 'lg-columnSpan-6' + ]); + }); + test('sets classes for defined property columnStart.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.GridItem, { columnStart: { xs: 3, sm: 4, md: 5, lg: 6 } }, "GridItem")), container); + }); + const item = container.querySelector('div'); + assertthat_1.assert.that(item.className).is.containingAllOf([ + 'xs-columnStart-3', + 'sm-columnStart-4', + 'md-columnStart-5', + 'lg-columnStart-6' + ]); + }); + test('sets classes for defined property columnEnd.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.GridItem, { columnEnd: { xs: 3, sm: 4, md: 5, lg: 6 } }, "GridItem")), container); + }); + const item = container.querySelector('div'); + assertthat_1.assert.that(item.className).is.containingAllOf([ + 'xs-columnEnd-3', + 'sm-columnEnd-4', + 'md-columnEnd-5', + 'lg-columnEnd-6' + ]); + }); +}); diff --git a/build/test/unit/layout/GridTests.d.ts b/build/test/unit/layout/GridTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/layout/GridTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/layout/GridTests.js b/build/test/unit/layout/GridTests.js new file mode 100644 index 00000000..2a20f0a0 --- /dev/null +++ b/build/test/unit/layout/GridTests.js @@ -0,0 +1,79 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const lib_1 = require("../../../lib"); +suite('Grid', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders although no property has been defined.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Grid, { id: 'some-id' }, + react_1.default.createElement("div", null, "Grid"))), container); + }); + const grid = container.querySelector('div'); + assertthat_1.assert.that(grid.id).is.equalTo('some-id'); + assertthat_1.assert.that(grid.className).is.containingAllOf([ + 'Grid', + '-columnGap-2', + '-rowGap-2' + ]); + }); + test('renders defined element type.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Grid, { component: 'span' }, + react_1.default.createElement("p", null, "Grid"))), container); + }); + const grid = container.querySelector('span'); + assertthat_1.assert.that(grid).is.not.null(); + }); + test('sets defined columns for different sized viewports.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Grid, { columns: { xs: 2, sm: 4, md: 4, lg: 2 } }, + react_1.default.createElement("div", null, "Grid"), + react_1.default.createElement("div", null, "Grid"))), container); + }); + const grid = container.querySelector('div'); + assertthat_1.assert.that(grid.className).is.containingAllOf([ + 'Grid', + 'xs-columns-2', + 'sm-columns-4', + 'md-columns-4', + 'lg-columns-2' + ]); + }); + test('sets classes for defined property columnGap.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Grid, { columnGap: '3' }, + react_1.default.createElement("div", null, "Grid"), + react_1.default.createElement("div", null, "Grid"))), container); + }); + const grid = container.querySelector('div'); + assertthat_1.assert.that(grid.className).is.containing('-columnGap-3'); + }); + test('sets classes for defined property rowGap.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Grid, { rowGap: '3' }, + react_1.default.createElement("div", null, "Grid"), + react_1.default.createElement("div", null, "Grid"))), container); + }); + const grid = container.querySelector('div'); + assertthat_1.assert.that(grid.className).is.containing('-rowGap-3'); + }); +}); diff --git a/build/test/unit/layout/HorizontalBarTests.d.ts b/build/test/unit/layout/HorizontalBarTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/layout/HorizontalBarTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/layout/HorizontalBarTests.js b/build/test/unit/layout/HorizontalBarTests.js new file mode 100644 index 00000000..a29e75fc --- /dev/null +++ b/build/test/unit/layout/HorizontalBarTests.js @@ -0,0 +1,123 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const lib_1 = require("../../../lib"); +suite('HorizontalBar', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders although no property has been defined.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.HorizontalBar, { id: 'component' }, + react_1.default.createElement("div", null, "Container"))), container); + }); + const component = container.querySelector('#component'); + assertthat_1.assert.that(component.className).is.containingAllOf([ + 'HorizontalBar', + 'AlignStretch', + 'BackgroundLight', + 'SpaceBetweenItemsSm', + 'PaddingHorizontalMd', + 'WithBorderBottom' + ]); + assertthat_1.assert.that(component.className).is.not.containingAllOf([ + 'BackgroundDark', + 'AlignCenter', + 'AlignRight', + 'AlignLeft', + 'AlignSpaceBetween', + 'SpaceBetweenItemsMd', + 'SpaceBetweenItemsLg', + 'WithBorderTop' + ]); + }); + test('sets classes for defined properties borderTop and borderBottom.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.HorizontalBar, { id: 'borderTopFalse', borderTop: false }), + react_1.default.createElement(lib_1.HorizontalBar, { id: 'borderTopTrue', borderTop: true }), + react_1.default.createElement(lib_1.HorizontalBar, { id: 'borderBottomFalse', borderBottom: false }), + react_1.default.createElement(lib_1.HorizontalBar, { id: 'borderBottomTrue', borderBottom: true })), container); + }); + const borderTopFalse = container.querySelector('#borderTopFalse'); + const borderTopTrue = container.querySelector('#borderTopTrue'); + const borderBottomFalse = container.querySelector('#borderBottomFalse'); + const borderBottomTrue = container.querySelector('#borderBottomTrue'); + assertthat_1.assert.that(borderTopFalse.className).is.not.containing('WithBorderTop'); + assertthat_1.assert.that(borderTopTrue.className).is.containing('WithBorderTop'); + assertthat_1.assert.that(borderBottomFalse.className).is.not.containing('WithBorderBottom'); + assertthat_1.assert.that(borderBottomTrue.className).is.containing('WithBorderBottom'); + }); + test('sets classes for defined property background.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.HorizontalBar, { id: 'light', background: 'light' }), + react_1.default.createElement(lib_1.HorizontalBar, { id: 'dark', background: 'dark' })), container); + }); + const dark = container.querySelector('#dark'); + const light = container.querySelector('#light'); + assertthat_1.assert.that(dark.className).is.containing('BackgroundDark'); + assertthat_1.assert.that(light.className).is.containing('BackgroundLight'); + }); + test('sets classes for defined property align.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.HorizontalBar, { id: 'alignCenter', align: 'center' }), + react_1.default.createElement(lib_1.HorizontalBar, { id: 'alignLeft', align: 'left' }), + react_1.default.createElement(lib_1.HorizontalBar, { id: 'alignRight', align: 'right' }), + react_1.default.createElement(lib_1.HorizontalBar, { id: 'alignSpaceBetween', align: 'space-between' }), + react_1.default.createElement(lib_1.HorizontalBar, { id: 'alignStretch', align: 'stretch' })), container); + }); + const alignCenter = container.querySelector('#alignCenter'); + const alignLeft = container.querySelector('#alignLeft'); + const alignRight = container.querySelector('#alignRight'); + const alignStretch = container.querySelector('#alignStretch'); + assertthat_1.assert.that(alignCenter.className).is.containing('AlignCenter'); + assertthat_1.assert.that(alignLeft.className).is.containing('AlignLeft'); + assertthat_1.assert.that(alignRight.className).is.containing('AlignRight'); + assertthat_1.assert.that(alignStretch.className).is.containing('AlignStretch'); + }); + test('sets classes for defined property spaceBetweenItems.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.HorizontalBar, { id: 'spaceBetweenItemsNone', spaceBetweenItems: 'none' }), + react_1.default.createElement(lib_1.HorizontalBar, { id: 'spaceBetweenItemsSm', spaceBetweenItems: 'sm' }), + react_1.default.createElement(lib_1.HorizontalBar, { id: 'spaceBetweenItemsMd', spaceBetweenItems: 'md' }), + react_1.default.createElement(lib_1.HorizontalBar, { id: 'spaceBetweenItemsLg', spaceBetweenItems: 'lg' })), container); + }); + const spaceBetweenItemsNone = container.querySelector('#spaceBetweenItemsNone'); + const spaceBetweenItemsSm = container.querySelector('#spaceBetweenItemsSm'); + const spaceBetweenItemsMd = container.querySelector('#spaceBetweenItemsMd'); + const spaceBetweenItemsLg = container.querySelector('#spaceBetweenItemsLg'); + assertthat_1.assert.that(spaceBetweenItemsNone.className).is.containing('SpaceBetweenItemsNone'); + assertthat_1.assert.that(spaceBetweenItemsSm.className).is.containing('SpaceBetweenItemsSm'); + assertthat_1.assert.that(spaceBetweenItemsMd.className).is.containing('SpaceBetweenItemsMd'); + assertthat_1.assert.that(spaceBetweenItemsLg.className).is.containing('SpaceBetweenItemsLg'); + }); + test('sets classes for defined property paddingHorizontal.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.HorizontalBar, { id: 'paddingHorizontalNone', paddingHorizontal: 'none' }), + react_1.default.createElement(lib_1.HorizontalBar, { id: 'paddingHorizontalSm', paddingHorizontal: 'sm' }), + react_1.default.createElement(lib_1.HorizontalBar, { id: 'paddingHorizontalMd', paddingHorizontal: 'md' })), container); + }); + const paddingHorizontalNone = container.querySelector('#paddingHorizontalNone'); + const paddingHorizontalSm = container.querySelector('#paddingHorizontalSm'); + const paddingHorizontalMd = container.querySelector('#paddingHorizontalMd'); + assertthat_1.assert.that(paddingHorizontalNone.className).is.containing('PaddingHorizontalNone'); + assertthat_1.assert.that(paddingHorizontalSm.className).is.containing('PaddingHorizontalSm'); + assertthat_1.assert.that(paddingHorizontalMd.className).is.containing('PaddingHorizontalMd'); + }); +}); diff --git a/build/test/unit/layout/SidebarBrandTests.d.ts b/build/test/unit/layout/SidebarBrandTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/layout/SidebarBrandTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/layout/SidebarBrandTests.js b/build/test/unit/layout/SidebarBrandTests.js new file mode 100644 index 00000000..679d885a --- /dev/null +++ b/build/test/unit/layout/SidebarBrandTests.js @@ -0,0 +1,28 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const lib_1 = require("../../../lib"); +suite('SidebarBrand', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders although no property has been defined.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.SidebarBrand, null, "SidebarBrand")), container); + }); + const sidebarBrand = container.querySelector('div'); + assertthat_1.assert.that(sidebarBrand.className).is.containing('SidebarBrand'); + }); +}); diff --git a/build/test/unit/layout/SidebarFooterTests.d.ts b/build/test/unit/layout/SidebarFooterTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/layout/SidebarFooterTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/layout/SidebarFooterTests.js b/build/test/unit/layout/SidebarFooterTests.js new file mode 100644 index 00000000..c1746def --- /dev/null +++ b/build/test/unit/layout/SidebarFooterTests.js @@ -0,0 +1,28 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const lib_1 = require("../../../lib"); +suite('SidebarFooter', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders although no property has been defined.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.SidebarFooter, null, "SidebarFooter")), container); + }); + const sidebarFooter = container.querySelector('div'); + assertthat_1.assert.that(sidebarFooter.className).is.containing('SidebarFooter'); + }); +}); diff --git a/build/test/unit/layout/SidebarItemTests.d.ts b/build/test/unit/layout/SidebarItemTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/layout/SidebarItemTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/layout/SidebarItemTests.js b/build/test/unit/layout/SidebarItemTests.js new file mode 100644 index 00000000..11c657fc --- /dev/null +++ b/build/test/unit/layout/SidebarItemTests.js @@ -0,0 +1,89 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const eventDispatchers_1 = require("../../shared/eventDispatchers"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const lib_1 = require("../../../lib"); +suite('SidebarItem', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders although no property has been defined.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.SidebarItem, { id: 'some-id' }, + react_1.default.createElement("div", null, "SidebarItem"))), container); + }); + const sidebarItem = container.querySelector('#some-id'); + assertthat_1.assert.that(sidebarItem).is.not.null(); + assertthat_1.assert.that(sidebarItem.className).is.containingAllOf(['SidebarItem', 'IsTopLevel']); + assertthat_1.assert.that(sidebarItem.className).is.not.containingAllOf([ + 'IsActive', + 'IsNested', + 'IsClickable' + ]); + }); + test('sets classes for defined property isActive.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.SidebarItem, { isActive: true }, + react_1.default.createElement("div", null, "SidebarItem"))), container); + }); + const sidebarItem = container.querySelector('div'); + assertthat_1.assert.that(sidebarItem.className).is.containing('IsActive'); + }); + test('sets classes for defined property isNested.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.SidebarItem, { isNested: true }, + react_1.default.createElement("div", null, "SidebarItem"))), container); + }); + const sidebarItem = container.querySelector('div'); + assertthat_1.assert.that(sidebarItem.className).is.containing('IsNested'); + }); + test('inserts svg element if property iconName is defined.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.SidebarItem, { iconName: 'heart' }, + react_1.default.createElement("div", null, "SidebarItem"))), container); + }); + const sidebarItem = container.querySelector('svg'); + assertthat_1.assert.that(sidebarItem).is.not.null(); + }); + test('inserts img element if property iconUrl is defined.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.SidebarItem, { iconUrl: '/' }, + react_1.default.createElement("div", null, "SidebarItem"))), container); + }); + const sidebarItem = container.querySelector('img'); + assertthat_1.assert.that(sidebarItem).is.not.null(); + }); + test('takes onClick function and runs it if clicked.', async () => { + let clicked = false; + const onClick = () => { + clicked = true; + }; + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.SidebarItem, { onClick: onClick, isNested: true }, + react_1.default.createElement("div", null, "click me"))), container); + }); + const sidebarItem = container.querySelector('div'); + assertthat_1.assert.that(sidebarItem.className).is.containing('IsClickable'); + (0, act_1.act)(() => { + (0, eventDispatchers_1.click)(sidebarItem); + }); + assertthat_1.assert.that(clicked).is.true(); + }); +}); diff --git a/build/test/unit/layout/SidebarTests.d.ts b/build/test/unit/layout/SidebarTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/layout/SidebarTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/layout/SidebarTests.js b/build/test/unit/layout/SidebarTests.js new file mode 100644 index 00000000..ac99e670 --- /dev/null +++ b/build/test/unit/layout/SidebarTests.js @@ -0,0 +1,29 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const lib_1 = require("../../../lib"); +suite('Sidebar', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders although no property has been defined.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Sidebar, { id: 'some-id' }, "Sidebar")), container); + }); + const sidebar = container.querySelector('div'); + assertthat_1.assert.that(sidebar.id).is.equalTo('some-id'); + assertthat_1.assert.that(sidebar.className).is.containing('Sidebar'); + }); +}); diff --git a/build/test/unit/layout/SpaceTests.d.ts b/build/test/unit/layout/SpaceTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/layout/SpaceTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/layout/SpaceTests.js b/build/test/unit/layout/SpaceTests.js new file mode 100644 index 00000000..7ff1d01b --- /dev/null +++ b/build/test/unit/layout/SpaceTests.js @@ -0,0 +1,69 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const lib_1 = require("../../../lib"); +suite('Space', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders although no property has been defined.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Space, { id: 'component' }, "Content")), container); + }); + const item = container.querySelector('#component'); + assertthat_1.assert.that(item.className).is.containing('Space'); + assertthat_1.assert.that(item.textContent).is.equalTo('Content'); + }); + test('sets both non-responsive and responsive classes for defined property padding.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Space, { id: 'non-responsive', padding: '3' }, "Space"), + react_1.default.createElement(lib_1.Space, { id: 'responsive', padding: { xs: 3, sm: 4, md: 5, lg: 6 } }, "Space")), container); + }); + const nonResponsive = container.querySelector('#non-responsive'); + const responsive = container.querySelector('#responsive'); + assertthat_1.assert.that(nonResponsive.className).is.containing(' -padding-3'); + assertthat_1.assert.that(responsive.className).is.containingAllOf([ + 'xs-padding-3', + 'sm-padding-4', + 'md-padding-5', + 'lg-padding-6' + ]); + }); + test('sets both non-responsive and responsive classes for defined property between.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Space, { id: 'non-responsive', between: '3' }, "Space"), + react_1.default.createElement(lib_1.Space, { id: 'responsive', between: { xs: 3, sm: 4, md: 5, lg: 6 } }, "Space")), container); + }); + const nonResponsive = container.querySelector('#non-responsive'); + const responsive = container.querySelector('#responsive'); + assertthat_1.assert.that(nonResponsive.className).is.containing(' -between-3'); + assertthat_1.assert.that(responsive.className).is.containingAllOf([ + 'xs-between-3', + 'sm-between-4', + 'md-between-5', + 'lg-between-6' + ]); + }); + test('adds custom className.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Space, { id: 'space', className: 'custom-class' }, "Space")), container); + }); + const space = container.querySelector('#space'); + assertthat_1.assert.that(space.className).is.containing('custom-class'); + }); +}); diff --git a/build/test/unit/navigation/BreadcrumbsTests.d.ts b/build/test/unit/navigation/BreadcrumbsTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/navigation/BreadcrumbsTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/navigation/BreadcrumbsTests.js b/build/test/unit/navigation/BreadcrumbsTests.js new file mode 100644 index 00000000..29cd7bd8 --- /dev/null +++ b/build/test/unit/navigation/BreadcrumbsTests.js @@ -0,0 +1,75 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const toArray_1 = require("../../../lib/utils/toArray"); +const lib_1 = require("../../../lib"); +suite('Breadcrumbs', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders with only required properties.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Breadcrumbs, { id: 'component', items: ['First level', 'Second level', 'Third level'] })), container); + }); + const component = container.querySelector('#component'); + assertthat_1.assert.that(component.className).is.containingAllOf([ + 'Breadcrumb', + 'SizeMd', + 'ColorDark' + ]); + assertthat_1.assert.that(component.className).is.not.containingAllOf([ + 'SizeSm', + 'ColorLight' + ]); + const breadcrumbs = (0, toArray_1.toArray)(component.querySelectorAll('[class^=Breadcrumb-]')); + const [first, second, third] = breadcrumbs; + assertthat_1.assert.that(breadcrumbs.length).is.equalTo(3); + assertthat_1.assert.that(first.textContent).is.equalTo('First level'); + assertthat_1.assert.that(second.textContent).is.equalTo('Second level'); + assertthat_1.assert.that(third.textContent).is.equalTo('Third level'); + }); + test('sets classes for defined property size.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Breadcrumbs, { id: 'sizeSm', size: 'sm', items: ['First level', 'Second level', 'Third level'] }), + react_1.default.createElement(lib_1.Breadcrumbs, { id: 'sizeMd', size: 'md', items: ['First level', 'Second level', 'Third level'] })), container); + }); + const sizeSm = container.querySelector('#sizeSm'); + const sizeMd = container.querySelector('#sizeMd'); + assertthat_1.assert.that(sizeSm.className).is.containing('SizeSm'); + assertthat_1.assert.that(sizeMd.className).is.containing('SizeMd'); + }); + test('sets classes for defined property color.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Breadcrumbs, { id: 'colorLight', color: 'light', items: ['First level', 'Second level', 'Third level'] }), + react_1.default.createElement(lib_1.Breadcrumbs, { id: 'colorDark', color: 'dark', items: ['First level', 'Second level', 'Third level'] })), container); + }); + const colorLight = container.querySelector('#colorLight'); + const colorDark = container.querySelector('#colorDark'); + assertthat_1.assert.that(colorLight.className).is.containing('ColorLight'); + assertthat_1.assert.that(colorDark.className).is.containing('ColorDark'); + }); + test('highlights words according to property searchWords.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Breadcrumbs, { id: 'component', searchWords: ['Second'], items: ['First level', 'Second level', 'Third level'] })), container); + }); + const component = container.querySelector('#component'); + const highlights = (0, toArray_1.toArray)(component.querySelectorAll('[class*=Highlight-]')); + assertthat_1.assert.that(highlights.length).is.equalTo(1); + assertthat_1.assert.that(highlights[0].textContent).is.equalTo('Second'); + }); +}); diff --git a/build/test/unit/navigation/PageNavigationTests.d.ts b/build/test/unit/navigation/PageNavigationTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/navigation/PageNavigationTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/navigation/PageNavigationTests.js b/build/test/unit/navigation/PageNavigationTests.js new file mode 100644 index 00000000..e2ee7514 --- /dev/null +++ b/build/test/unit/navigation/PageNavigationTests.js @@ -0,0 +1,123 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const eventDispatchers_1 = require("../../shared/eventDispatchers"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const lib_1 = require("../../../lib"); +suite('PageNavigation', () => { + let container; + let pageTree; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + pageTree = new lib_1.PageTree({ + items: [ + { + title: 'First Section', + children: [ + { + title: 'First chapter', + children: [ + { title: 'Page A' }, + { title: 'Page B' } + ] + }, + { + title: 'Second chapter', + children: [ + { title: 'Page C' }, + { title: 'Page D' } + ] + } + ] + }, + { + title: 'Second Section', + children: [ + { title: 'Page E' } + ] + } + ] + }); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders with only required properties.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.PageNavigation, { id: 'component', pageTree: pageTree, activePath: '' })), container); + }); + const component = container.querySelector('#component'); + const firstSection = component.querySelector('[class*=PageGroup][class*=Level1]:first-of-type'); + const secondSection = component.querySelector('[class*=PageGroup][class*=Level1]:nth-of-type(2)'); + assertthat_1.assert.that(firstSection.textContent).is.containing('First Section'); + assertthat_1.assert.that(firstSection.className).is.not.containing('IsExpanded'); + assertthat_1.assert.that(secondSection.textContent).is.containing('Second Section'); + assertthat_1.assert.that(secondSection.className).is.not.containing('IsExpanded'); + }); + test('renders an expanded tree if property activePath is set.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.PageNavigation, { id: 'component', pageTree: pageTree, activePath: '/first-section/first-chapter/page-a' })), container); + }); + const component = container.querySelector('#component'); + const activeSection = component.querySelector('[class*=PageGroup][class*=Level1][class*=IsActive]'); + const activeSectionTitle = activeSection.querySelector('[class*=PageGroup][class*=Level1][class*=IsActive] > [class*=Title]'); + const activeChapter = activeSection.querySelector('[class*=PageGroup][class*=Level2][class*=IsActive]'); + const activeChapterTitle = activeSection.querySelector('[class*=PageGroup][class*=Level2][class*=IsActive] > [class*=Title]'); + const activePage = activeSection.querySelector('[class*=Page][class*=Level3][class*=IsActive]'); + assertthat_1.assert.that(activeSectionTitle.textContent).is.equalTo('First Section'); + assertthat_1.assert.that(activeSection.className).is.containing('IsExpanded'); + assertthat_1.assert.that(activeChapterTitle.textContent).is.equalTo('First chapter'); + assertthat_1.assert.that(activeChapter.className).is.containing('IsExpanded'); + assertthat_1.assert.that(activePage.textContent).is.equalTo('Page A'); + }); + test('expands a section if it has been clicked.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.PageNavigation, { id: 'component', pageTree: pageTree, activePath: '/first-section/first-chapter/page-a' })), container); + }); + const component = container.querySelector('#component'); + const activeSections = component.querySelectorAll('[class*=PageGroup][class*=Level1][class*=IsActive]'); + assertthat_1.assert.that(activeSections.length).is.equalTo(1); + const inactiveSection = component.querySelector('[class*=PageGroup][class*=Level1]:nth-of-type(2)'); + const inactiveSectionTitle = inactiveSection.querySelector('[class*=Title]'); + assertthat_1.assert.that(inactiveSectionTitle.textContent).is.equalTo('Second Section'); + assertthat_1.assert.that(inactiveSection.className).is.not.containing('IsExpanded'); + (0, act_1.act)(() => { + (0, eventDispatchers_1.click)(inactiveSectionTitle); + }); + assertthat_1.assert.that(inactiveSection.className).is.containing('IsExpanded'); + }); + test('collapses the previously expanded section if activePath changes.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.PageNavigation, { id: 'component', pageTree: pageTree, activePath: '/first-section/first-chapter/page-a' })), container); + }); + const component = container.querySelector('#component'); + const inactiveSection = component.querySelector('[class*=PageGroup][class*=Level1]:nth-of-type(2)'); + const inactiveSectionTitle = inactiveSection.querySelector('[class*=Title]'); + assertthat_1.assert.that(inactiveSectionTitle.textContent).is.equalTo('Second Section'); + assertthat_1.assert.that(inactiveSection.className).is.not.containing('IsExpanded'); + (0, act_1.act)(() => { + (0, eventDispatchers_1.click)(inactiveSectionTitle); + }); + const expandedSections = component.querySelectorAll('[class*=PageGroup][class*=Level1][class*=IsExpanded]'); + assertthat_1.assert.that(expandedSections.length).is.equalTo(2); + assertthat_1.assert.that(inactiveSection.className).is.containing('IsExpanded'); + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.PageNavigation, { id: 'component', pageTree: pageTree, activePath: '/second-section/page-e' })), container); + }); + const activeSectionsAfterPathChanged = component.querySelectorAll('[class*=PageGroup][class*=Level1][class*=IsActive]'); + const activeSectionTitleAfterPathChanged = component.querySelector('[class*=PageGroup][class*=Level1][class*=IsActive] > [class*=Title]'); + assertthat_1.assert.that(activeSectionsAfterPathChanged.length).is.equalTo(1); + assertthat_1.assert.that(activeSectionTitleAfterPathChanged.textContent).is.equalTo('Second Section'); + }); +}); diff --git a/build/test/unit/navigation/PageTree/PageTreeSearchTests.d.ts b/build/test/unit/navigation/PageTree/PageTreeSearchTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/navigation/PageTree/PageTreeSearchTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/navigation/PageTree/PageTreeSearchTests.js b/build/test/unit/navigation/PageTree/PageTreeSearchTests.js new file mode 100644 index 00000000..4e559053 --- /dev/null +++ b/build/test/unit/navigation/PageTree/PageTreeSearchTests.js @@ -0,0 +1,87 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const assertthat_1 = require("assertthat"); +const PageSearch_1 = require("../../../../lib/components/navigation/PageTree/PageSearch"); +const lib_1 = require("../../../../lib"); +suite('PageTreeSearch', () => { + let pageTree; + let pageSearch; + setup(async () => { + pageTree = new lib_1.PageTree({ + items: [ + { + title: 'Computer Science', + children: [ + { + title: 'Data Structures & Algorithms', + children: [ + { title: 'Graphs' }, + { title: 'Trees' }, + { title: 'Queues' } + ] + }, + { + title: 'Programming Languages', + children: [ + { title: 'Lisp' }, + { title: 'JavaScript', keywords: ['dynamic'] }, + { title: 'TypeScript', keywords: ['typed'] } + ] + } + ] + }, + { + title: 'Movies', + children: [ + { + title: 'Science Fiction', + children: [ + { title: 'Blade Runner' }, + { title: 'Star Trek' }, + { title: 'Star Wars' } + ] + }, + { + title: 'Comedy', + children: [ + { title: 'The Life Aquatic' }, + { title: 'Ghost Busters' }, + { title: 'Anchorman' } + ] + } + ] + } + ] + }); + pageSearch = new PageSearch_1.PageSearch(pageTree); + }); + suite('query', () => { + test('returns an empty array when no page has been found.', async () => { + const results = pageSearch.query('foo'); + assertthat_1.assert.that(results.length).is.equalTo(0); + }); + test('returns multiple tree items if multiple items match the query.', async () => { + const results = pageSearch.query('star'); + assertthat_1.assert.that(results.length).is.equalTo(2); + assertthat_1.assert.that(results[0].title).is.equalTo('Star Trek'); + assertthat_1.assert.that(results[1].title).is.equalTo('Star Wars'); + }); + test('ignores upper and lower case.', async () => { + const results = pageSearch.query('sTAr'); + assertthat_1.assert.that(results.length).is.equalTo(2); + assertthat_1.assert.that(results[0].title).is.equalTo('Star Trek'); + assertthat_1.assert.that(results[1].title).is.equalTo('Star Wars'); + }); + test('queries both title and the breadcrumbs of tree items.', async () => { + const results = pageSearch.query('science'); + assertthat_1.assert.that(results.length).is.equalTo(9); + assertthat_1.assert.that(results[0].title).is.equalTo('Graphs'); + assertthat_1.assert.that(results[8].title).is.equalTo('Star Wars'); + }); + test('queries the keywords of tree items.', async () => { + const results = pageSearch.query('typed'); + assertthat_1.assert.that(results.length).is.equalTo(1); + assertthat_1.assert.that(results[0].title).is.equalTo('TypeScript'); + }); + }); +}); diff --git a/build/test/unit/roots/ApplicationTests.d.ts b/build/test/unit/roots/ApplicationTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/roots/ApplicationTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/roots/ApplicationTests.js b/build/test/unit/roots/ApplicationTests.js new file mode 100644 index 00000000..d232ddc5 --- /dev/null +++ b/build/test/unit/roots/ApplicationTests.js @@ -0,0 +1,28 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const lib_1 = require("../../../lib"); +suite('Application', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders default applications.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Application, { id: 'application', useDialogs: false }, "Application")), container); + }); + const application = container.querySelector('#application'); + assertthat_1.assert.that(application.className).is.containing('Application'); + }); +}); diff --git a/build/test/unit/roots/WebsiteTests.d.ts b/build/test/unit/roots/WebsiteTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/roots/WebsiteTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/roots/WebsiteTests.js b/build/test/unit/roots/WebsiteTests.js new file mode 100644 index 00000000..4f88f4ca --- /dev/null +++ b/build/test/unit/roots/WebsiteTests.js @@ -0,0 +1,39 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const lib_1 = require("../../../lib"); +suite('Website', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Website, null, + react_1.default.createElement("div", { className: 'foo' }, "Website"))), container); + }); + const website = container.querySelector('.foo'); + assertthat_1.assert.that(website.textContent).is.equalTo('Website'); + }); + test('renders icons.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Website, { id: 'website' }, + react_1.default.createElement("div", null, "Website"))), container); + }); + const iconSvgContainer = container.querySelector('#website svg'); + assertthat_1.assert.that(iconSvgContainer).is.not.null(); + assertthat_1.assert.that(iconSvgContainer.innerHTML).is.containing(' { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders although no property has been defined.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Headline, null, "I am a headline.")), container); + }); + const headline = container.querySelector('h1'); + assertthat_1.assert.that(headline).is.not.null(); + assertthat_1.assert.that(headline.className).is.containing('Level1'); + assertthat_1.assert.that(headline.className).is.not.containing('Level2'); + assertthat_1.assert.that(headline.textContent).is.equalTo('#I am a headline.'); + }); + test('renders an anchor with a slugified version of the headline text.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Headline, null, "I am a headline.")), container); + }); + const anchor = container.querySelector('h1 a'); + assertthat_1.assert.that(anchor).is.not.null(); + assertthat_1.assert.that(anchor.getAttribute('href')).is.equalTo('#i-am-a-headline'); + }); + test('renders defined property level.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Headline, { level: '1' }, "I am a headline."), + react_1.default.createElement(lib_1.Headline, { level: '2' }, "I am a headline."), + react_1.default.createElement(lib_1.Headline, { level: '3' }, "I am a headline."), + react_1.default.createElement(lib_1.Headline, { level: '4' }, "I am a headline."), + react_1.default.createElement(lib_1.Headline, { level: '5' }, "I am a headline.")), container); + }); + const headline = (0, toArray_1.toArray)(container.querySelectorAll('h1, h2, h3, h4, h5')); + const [one, two, three, four, five] = headline; + assertthat_1.assert.that(one).is.not.undefined(); + assertthat_1.assert.that(one.tagName).is.containing('H1'); + assertthat_1.assert.that(one.className).is.containing('Level1'); + assertthat_1.assert.that(two).is.not.undefined(); + assertthat_1.assert.that(two.tagName).is.containing('H2'); + assertthat_1.assert.that(two.className).is.containing('Level2'); + assertthat_1.assert.that(three).is.not.undefined(); + assertthat_1.assert.that(three.tagName).is.containing('H3'); + assertthat_1.assert.that(three.className).is.containing('Level3'); + assertthat_1.assert.that(four).is.not.undefined(); + assertthat_1.assert.that(four.tagName).is.containing('H4'); + assertthat_1.assert.that(four.className).is.containing('Level4'); + assertthat_1.assert.that(five).is.not.undefined(); + assertthat_1.assert.that(five.tagName).is.containing('H5'); + assertthat_1.assert.that(five.className).is.containing('Level5'); + }); + test('sets defined id.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Headline, { id: 'some-id' }, "I am a headline.")), container); + }); + const headline = document.querySelector('#some-id'); + assertthat_1.assert.that(headline).is.not.null(); + assertthat_1.assert.that(headline.id).is.equalTo('some-id'); + }); +}); diff --git a/build/test/unit/typography/LabelTests.d.ts b/build/test/unit/typography/LabelTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/typography/LabelTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/typography/LabelTests.js b/build/test/unit/typography/LabelTests.js new file mode 100644 index 00000000..5d22da76 --- /dev/null +++ b/build/test/unit/typography/LabelTests.js @@ -0,0 +1,29 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const lib_1 = require("../../../lib"); +suite('Label', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders and sets defined property id.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Label, { id: 'some-id' }, "I am a label.")), container); + }); + const label = container.querySelector('#some-id'); + assertthat_1.assert.that(label).is.not.null(); + assertthat_1.assert.that(label.className).is.containing('Label'); + }); +}); diff --git a/build/test/unit/typography/TextTests.d.ts b/build/test/unit/typography/TextTests.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/build/test/unit/typography/TextTests.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/build/test/unit/typography/TextTests.js b/build/test/unit/typography/TextTests.js new file mode 100644 index 00000000..8be35da8 --- /dev/null +++ b/build/test/unit/typography/TextTests.js @@ -0,0 +1,57 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const act_1 = require("../../shared/act"); +const assertthat_1 = require("assertthat"); +const react_1 = __importDefault(require("react")); +const react_dom_1 = __importDefault(require("react-dom")); +const lib_1 = require("../../../lib"); +suite('Text', () => { + let container; + setup(async () => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + teardown(async () => { + document.body.removeChild(container); + }); + test('renders although no property has been defined.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Text, null, "I am a text.")), container); + }); + const text = container.querySelector('div'); + assertthat_1.assert.that(text.className).is.containingAllOf([ + 'Text', + 'AdjustAuto', + 'SizeMd' + ]); + assertthat_1.assert.that(text.className).is.not.containing('BreakLines'); + }); + test('sets classes for property adjust.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Text, { adjust: 'flex' }, "I am a text.")), container); + }); + const text = container.querySelector('div'); + assertthat_1.assert.that(text.className).is.containing('AdjustFlex'); + }); + test('sets classes for property size.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Text, { size: 'sm' }, "I am a text.")), container); + }); + const text = container.querySelector('div'); + assertthat_1.assert.that(text.className).is.containing('SizeSm'); + }); + test('sets classes for property breakLines.', async () => { + (0, act_1.act)(() => { + react_dom_1.default.render(react_1.default.createElement(lib_1.ThemeProvider, null, + react_1.default.createElement(lib_1.Text, { breakLines: true }, "I am a text.")), container); + }); + const text = container.querySelector('div'); + assertthat_1.assert.that(text.className).is.containing('BreakLines'); + }); +}); diff --git a/package-lock.json b/package-lock.json index 2580703e..dc3a4d46 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,696 +1,360 @@ { "name": "thenativeweb-ux", "version": "5.9.30", - "lockfileVersion": 1, + "lockfileVersion": 3, "requires": true, - "dependencies": { - "@babel/code-frame": { + "packages": { + "": { + "name": "thenativeweb-ux", + "version": "5.9.30", + "license": "LGPL-3.0", + "dependencies": { + "@babel/runtime-corejs2": "7.16.5", + "@types/animejs": "3.1.4", + "@types/color": "3.0.2", + "@types/fs-extra": "9.0.13", + "@types/globby": "9.1.0", + "@types/jsdom": "16.2.13", + "@types/lodash": "4.14.178", + "@types/mozjpeg": "5.0.0", + "@types/node": "16.11.12", + "@types/pngquant-bin": "4.0.0", + "@types/react-highlight-words": "0.16.3", + "@types/react-syntax-highlighter": "13.5.2", + "@types/react-transition-group": "4.4.3", + "@types/uuid": "8.3.3", + "@types/xml2js": "0.4.9", + "animejs": "3.2.1", + "classnames": "2.3.1", + "color": "4.1.0", + "command-line-interface": "4.0.21", + "csstype": "3.0.10", + "fs-extra": "10.0.0", + "globby": "11.0.4", + "jsdom": "19.0.0", + "lodash": "4.17.21", + "mozjpeg": "7.1.1", + "p-queue": "6.6.2", + "pngquant-bin": "5.0.2", + "pretty-format": "27.4.2", + "react-highlight-words": "0.17.0", + "react-jss": "10.7.1", + "react-syntax-highlighter": "15.4.5", + "react-transition-group": "4.4.2", + "svgo": "2.8.0", + "untildify": "4.0.0", + "uuid": "8.3.2", + "validate-value": "9.1.7", + "xml2js": "0.4.23" + }, + "bin": { + "ux": "build/lib/bin/ux.js" + }, + "devDependencies": { + "@next/bundle-analyzer": "12.0.7", + "@types/classnames": "2.3.1", + "@types/common-tags": "1.8.1", + "@types/express": "4.17.13", + "@types/puppeteer": "5.4.4", + "@types/react": "17.0.37", + "@types/react-dom": "17.0.11", + "@types/shelljs": "0.8.10", + "@types/webpack": "5.28.0", + "assertthat": "6.3.14", + "axios": "0.24.0", + "buntstift": "5.0.1", + "common-tags": "1.8.2", + "express": "4.17.2", + "get-port": "5.1.1", + "isolated": "3.0.25", + "next": "11.0.1", + "processenv": "3.0.9", + "puppeteer": "13.0.0", + "react": "17.0.2", + "react-dom": "17.0.2", + "semantic-release-configuration": "2.0.5", + "shelljs": "0.8.4", + "typescript": "5.7.2" + }, + "peerDependencies": { + "react": "^17.0.2", + "react-dom": "^17.0.2" + } + }, + "node_modules/@babel/code-frame": { "version": "7.12.11", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, - "requires": { + "dependencies": { "@babel/highlight": "^7.10.4" } }, - "@babel/compat-data": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.7.tgz", - "integrity": "sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw==", - "dev": true - }, - "@babel/core": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.8.tgz", - "integrity": "sha512-/AtaeEhT6ErpDhInbXmjHcUQXH0L0TEgscfcxk1qbOvLuKCa5aZT0SOOtDKFY96/CLROwbLSKyFor6idgNaU4Q==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.8", - "@babel/helper-compilation-targets": "^7.14.5", - "@babel/helper-module-transforms": "^7.14.8", - "@babel/helpers": "^7.14.8", - "@babel/parser": "^7.14.8", - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.8", - "@babel/types": "^7.14.8", - "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" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.14.5" - } - }, - "@babel/types": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.8.tgz", - "integrity": "sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.8", - "to-fast-properties": "^2.0.0" - } - }, - "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/eslint-parser": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.14.7.tgz", - "integrity": "sha512-6WPwZqO5priAGIwV6msJcdc9TsEPzYeYdS/Xuoap+/ihkgN6dzHp2bcAAwyWZ5bLzk0vvjDmKvRwkqNaiJ8BiQ==", + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "dev": true, - "requires": { - "eslint-scope": "^5.1.1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "engines": { + "node": ">=6.9.0" } }, - "@babel/generator": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.8.tgz", - "integrity": "sha512-cYDUpvIzhBVnMzRoY1fkSEhK/HmwEVwlyULYgn/tMQYd6Obag3ylCjONle3gdErfXBW61SVTlR9QR7uWlgeIkg==", + "node_modules/@babel/highlight": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.9.tgz", + "integrity": "sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw==", "dev": true, - "requires": { - "@babel/types": "^7.14.8", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, "dependencies": { - "@babel/types": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.8.tgz", - "integrity": "sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.8", - "to-fast-properties": "^2.0.0" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/helper-compilation-targets": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz", - "integrity": "sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.14.5", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", - "semver": "^6.3.0" + "@babel/helper-validator-identifier": "^7.25.9", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-function-name": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", - "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/types": "^7.14.5" - }, "dependencies": { - "@babel/types": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.8.tgz", - "integrity": "sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.8", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-get-function-arity": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", - "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" + "color-convert": "^1.9.0" }, - "dependencies": { - "@babel/types": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.8.tgz", - "integrity": "sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.8", - "to-fast-properties": "^2.0.0" - } - } + "engines": { + "node": ">=4" } }, - "@babel/helper-hoist-variables": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz", - "integrity": "sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==", + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, - "requires": { - "@babel/types": "^7.14.5" - }, "dependencies": { - "@babel/types": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.8.tgz", - "integrity": "sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.8", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.14.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz", - "integrity": "sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, - "dependencies": { - "@babel/types": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.8.tgz", - "integrity": "sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.8", - "to-fast-properties": "^2.0.0" - } - } + "engines": { + "node": ">=4" } }, - "@babel/helper-module-imports": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz", - "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==", + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, - "requires": { - "@babel/types": "^7.14.5" - }, "dependencies": { - "@babel/types": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.8.tgz", - "integrity": "sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.8", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-module-transforms": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.8.tgz", - "integrity": "sha512-RyE+NFOjXn5A9YU1dkpeBaduagTlZ0+fccnIcAGbv1KGUlReBj7utF7oEth8IdIBQPcux0DDgW5MFBH2xu9KcA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5", - "@babel/helper-simple-access": "^7.14.8", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/helper-validator-identifier": "^7.14.8", - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.8", - "@babel/types": "^7.14.8" - }, - "dependencies": { - "@babel/types": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.8.tgz", - "integrity": "sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.8", - "to-fast-properties": "^2.0.0" - } - } + "color-name": "1.1.3" } }, - "@babel/helper-optimise-call-expression": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz", - "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - }, - "dependencies": { - "@babel/types": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.8.tgz", - "integrity": "sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.8", - "to-fast-properties": "^2.0.0" - } - } - } + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true }, - "@babel/helper-replace-supers": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz", - "integrity": "sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow==", + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.14.5", - "@babel/helper-optimise-call-expression": "^7.14.5", - "@babel/traverse": "^7.14.5", - "@babel/types": "^7.14.5" - }, - "dependencies": { - "@babel/types": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.8.tgz", - "integrity": "sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.8", - "to-fast-properties": "^2.0.0" - } - } + "engines": { + "node": ">=4" } }, - "@babel/helper-simple-access": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz", - "integrity": "sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg==", + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, - "requires": { - "@babel/types": "^7.14.8" - }, "dependencies": { - "@babel/types": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.8.tgz", - "integrity": "sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.8", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", - "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" + "has-flag": "^3.0.0" }, - "dependencies": { - "@babel/types": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.8.tgz", - "integrity": "sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.8", - "to-fast-properties": "^2.0.0" - } - } + "engines": { + "node": ">=4" } }, - "@babel/helper-validator-identifier": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.8.tgz", - "integrity": "sha512-ZGy6/XQjllhYQrNw/3zfWRwZCTVSiBLZ9DHVZxn9n2gip/7ab8mv2TWlKPIBk26RwedCBoWdjLmn+t9na2Gcow==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", - "dev": true - }, - "@babel/helpers": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.8.tgz", - "integrity": "sha512-ZRDmI56pnV+p1dH6d+UN6GINGz7Krps3+270qqI9UJ4wxYThfAIcI5i7j5vXC4FJ3Wap+S9qcebxeYiqn87DZw==", - "dev": true, - "requires": { - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.14.8", - "@babel/types": "^7.14.8" - }, + "node_modules/@babel/runtime": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", + "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", "dependencies": { - "@babel/types": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.8.tgz", - "integrity": "sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.8", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.8.tgz", - "integrity": "sha512-syoCQFOoo/fzkWDeM0dLEZi5xqurb5vuyzwIMNZRNun+N/9A4cUZeQaE7dTrB8jGaKuJRBtEOajtnmw0I5hvvA==", - "dev": true - }, - "@babel/runtime": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.8.tgz", - "integrity": "sha512-twj3L8Og5SaCRCErB4x4ajbvBIVV77CGeFglHpeg5WC5FF8TZzBWXtTJ4MqaD9QszLYTtr+IsaAL2rEUevb+eg==", - "requires": { "regenerator-runtime": "^0.13.4" } }, - "@babel/runtime-corejs2": { + "node_modules/@babel/runtime-corejs2": { "version": "7.16.5", "resolved": "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.16.5.tgz", "integrity": "sha512-GHejyoK+JQqna9rUTkybaGahZOOM+EDcUsbWaLye1g4ZOQMotrMiY8VTBbX1gycZTMNG/YiWTo4WTABvyPUgOg==", - "requires": { + "dependencies": { "core-js": "^2.6.5", "regenerator-runtime": "^0.13.4" - } - }, - "@babel/template": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", - "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.14.5" - } - }, - "@babel/types": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.8.tgz", - "integrity": "sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.8", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/traverse": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.8.tgz", - "integrity": "sha512-kexHhzCljJcFNn1KYAQ6A5wxMRzq9ebYpEDV4+WdNyr3i7O44tanbDOR/xjiG2F3sllan+LgwK+7OMk0EmydHg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.14.8", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-hoist-variables": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.14.8", - "@babel/types": "^7.14.8", - "debug": "^4.1.0", - "globals": "^11.1.0" }, - "dependencies": { - "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.14.5" - } - }, - "@babel/types": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.8.tgz", - "integrity": "sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.8", - "to-fast-properties": "^2.0.0" - } - } + "engines": { + "node": ">=6.9.0" } }, - "@babel/types": { + "node_modules/@babel/types": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", "dev": true, - "requires": { + "dependencies": { "esutils": "^2.0.2", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } }, - "@emotion/is-prop-valid": { + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@emotion/is-prop-valid": { "version": "0.7.3", "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.7.3.tgz", "integrity": "sha512-uxJqm/sqwXw3YPA5GXX365OBcJGFtxUVkB6WyezqFHlNe9jqUWH5ur2O2M8dGBz61kn1g3ZBlzUunFQXQIClhA==", - "requires": { + "dependencies": { "@emotion/memoize": "0.7.1" } }, - "@emotion/memoize": { + "node_modules/@emotion/memoize": { "version": "0.7.1", "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.1.tgz", "integrity": "sha512-Qv4LTqO11jepd5Qmlp3M1YEjBumoTHcHFdgPTQ+sFlIL5myi/7xu/POwP7IRu6odBdmLXdtIs1D6TuW6kbwbbg==" }, - "@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "globals": { - "version": "13.10.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", - "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - } - } - }, - "@hapi/accept": { + "node_modules/@hapi/accept": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/@hapi/accept/-/accept-5.0.2.tgz", "integrity": "sha512-CmzBx/bXUR8451fnZRuZAJRlzgm0Jgu5dltTX/bszmR2lheb9BpyN47Q1RbaGTsvFzn0PXAEs+lXDKfshccYZw==", "dev": true, - "requires": { + "dependencies": { "@hapi/boom": "9.x.x", "@hapi/hoek": "9.x.x" } }, - "@hapi/boom": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-9.1.3.tgz", - "integrity": "sha512-RlrGyZ603hE/eRTZtTltocRm50HHmrmL3kGOP0SQ9MasazlW1mt/fkv4C5P/6rnpFXjwld/POFX1C8tMZE3ldg==", + "node_modules/@hapi/boom": { + "version": "9.1.4", + "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-9.1.4.tgz", + "integrity": "sha512-Ls1oH8jaN1vNsqcaHVYJrKmgMcKsC1wcp8bujvXrHaAqD2iDYq3HoOwsxwo09Cuda5R5nC0o0IxlrlTuvPuzSw==", "dev": true, - "requires": { + "dependencies": { "@hapi/hoek": "9.x.x" } }, - "@hapi/hoek": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.0.tgz", - "integrity": "sha512-sqKVVVOe5ivCaXDWivIJYVSaEgdQK9ul7a4Kity5Iw7u9+wBAPbX1RMSnLLmp7O4Vzj0WOWwMAJsTL00xwaNug==", + "node_modules/@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", "dev": true }, - "@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "requires": { + "node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dependencies": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^16.0.0", "chalk": "^4.0.0" }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "@next/bundle-analyzer": { + "node_modules/@next/bundle-analyzer": { "version": "12.0.7", "resolved": "https://registry.npmjs.org/@next/bundle-analyzer/-/bundle-analyzer-12.0.7.tgz", "integrity": "sha512-u3er2QTSPrcouO8CqfNraHrj9e/A+sBMQWe4w4yy2kSmK4L7PXkWDb8OFWB25eaDD24LrnMPTuuEq2pNCnbujA==", "dev": true, - "requires": { + "dependencies": { "webpack-bundle-analyzer": "4.3.0" } }, - "@next/env": { + "node_modules/@next/env": { "version": "11.0.1", "resolved": "https://registry.npmjs.org/@next/env/-/env-11.0.1.tgz", "integrity": "sha512-yZfKh2U6R9tEYyNUrs2V3SBvCMufkJ07xMH5uWy8wqcl5gAXoEw6A/1LDqwX3j7pUutF9d1ZxpdGDA3Uag+aQQ==", "dev": true }, - "@next/polyfill-module": { + "node_modules/@next/polyfill-module": { "version": "11.0.1", "resolved": "https://registry.npmjs.org/@next/polyfill-module/-/polyfill-module-11.0.1.tgz", "integrity": "sha512-Cjs7rrKCg4CF4Jhri8PCKlBXhszTfOQNl9AjzdNy4K5jXFyxyoSzuX2rK4IuoyE+yGp5A3XJCBEmOQ4xbUp9Mg==", "dev": true }, - "@next/react-dev-overlay": { + "node_modules/@next/react-dev-overlay": { "version": "11.0.1", "resolved": "https://registry.npmjs.org/@next/react-dev-overlay/-/react-dev-overlay-11.0.1.tgz", "integrity": "sha512-lvUjMVpLsgzADs9Q8wtC5LNqvfdN+M0BDMSrqr04EDWAyyX0vURHC9hkvLbyEYWyh+WW32pwjKBXdkMnJhoqMg==", "dev": true, - "requires": { + "dependencies": { "@babel/code-frame": "7.12.11", "anser": "1.4.9", "chalk": "4.0.0", @@ -703,289 +367,358 @@ "stacktrace-parser": "0.1.10", "strip-ansi": "6.0.0" }, + "peerDependencies": { + "react": "^17.0.2", + "react-dom": "^17.0.2" + } + }, + "node_modules/@next/react-dev-overlay/node_modules/chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", - "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "classnames": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", - "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "source-map": { - "version": "0.8.0-beta.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", - "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", - "dev": true, - "requires": { - "whatwg-url": "^7.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", - "dev": true - }, - "whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", - "dev": true, - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - } + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@next/react-dev-overlay/node_modules/classnames": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", + "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==", + "dev": true + }, + "node_modules/@next/react-dev-overlay/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@next/react-dev-overlay/node_modules/source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "dev": true, + "dependencies": { + "whatwg-url": "^7.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@next/react-dev-overlay/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@next/react-dev-overlay/node_modules/tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/@next/react-dev-overlay/node_modules/webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "node_modules/@next/react-dev-overlay/node_modules/whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dev": true, + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" } }, - "@next/react-refresh-utils": { + "node_modules/@next/react-refresh-utils": { "version": "11.0.1", "resolved": "https://registry.npmjs.org/@next/react-refresh-utils/-/react-refresh-utils-11.0.1.tgz", "integrity": "sha512-K347DM6Z7gBSE+TfUaTTceWvbj0B6iNAsFZXbFZOlfg3uyz2sbKpzPYYFocCc27yjLaS8OfR8DEdS2mZXi8Saw==", - "dev": true + "dev": true, + "peerDependencies": { + "react-refresh": "0.8.3", + "webpack": "^4 || ^5" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + } + } }, - "@nodelib/fs.scandir": { + "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "requires": { + "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" } }, - "@nodelib/fs.stat": { + "node_modules/@nodelib/fs.stat": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } }, - "@nodelib/fs.walk": { + "node_modules/@nodelib/fs.walk": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "requires": { + "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" } }, - "@octokit/auth-token": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.5.tgz", - "integrity": "sha512-BpGYsPgJt05M7/L/5FoE1PiAbdxXFZkX/3kDYcsvd1v6UhlnE5e96dTDr0ezX/EFwciQxf3cNV0loipsURU+WA==", + "node_modules/@octokit/auth-token": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz", + "integrity": "sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==", "dev": true, - "requires": { + "dependencies": { "@octokit/types": "^6.0.3" } }, - "@octokit/core": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.5.1.tgz", - "integrity": "sha512-omncwpLVxMP+GLpLPgeGJBF6IWJFjXDS5flY5VbppePYX9XehevbDykRH9PdCdvqt9TS5AOTiDide7h0qrkHjw==", + "node_modules/@octokit/core": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.6.0.tgz", + "integrity": "sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==", "dev": true, - "requires": { + "dependencies": { "@octokit/auth-token": "^2.4.4", "@octokit/graphql": "^4.5.8", - "@octokit/request": "^5.6.0", + "@octokit/request": "^5.6.3", "@octokit/request-error": "^2.0.5", "@octokit/types": "^6.0.3", "before-after-hook": "^2.2.0", "universal-user-agent": "^6.0.0" } }, - "@octokit/endpoint": { + "node_modules/@octokit/endpoint": { "version": "6.0.12", "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", "dev": true, - "requires": { + "dependencies": { "@octokit/types": "^6.0.3", "is-plain-object": "^5.0.0", "universal-user-agent": "^6.0.0" } }, - "@octokit/graphql": { - "version": "4.6.4", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.6.4.tgz", - "integrity": "sha512-SWTdXsVheRmlotWNjKzPOb6Js6tjSqA2a8z9+glDJng0Aqjzti8MEWOtuT8ZSu6wHnci7LZNuarE87+WJBG4vg==", + "node_modules/@octokit/graphql": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz", + "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==", "dev": true, - "requires": { + "dependencies": { "@octokit/request": "^5.6.0", "@octokit/types": "^6.0.3", "universal-user-agent": "^6.0.0" } }, - "@octokit/openapi-types": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-9.1.0.tgz", - "integrity": "sha512-XBP03pG4XuTU+VgeJM1ozRdmZJerMG4tk6wA+raFKycC4qV9jtD2UQroAg9bAcmI3Q0zWvifeDGtPqsFjMzkLg==", + "node_modules/@octokit/openapi-types": { + "version": "12.11.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", + "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==", "dev": true }, - "@octokit/plugin-paginate-rest": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.14.0.tgz", - "integrity": "sha512-S2uEu2uHeI7Vf+Lvj8tv3O5/5TCAa8GHS0dUQN7gdM7vKA6ZHAbR6HkAVm5yMb1mbedLEbxOuQ+Fa0SQ7tCDLA==", + "node_modules/@octokit/plugin-paginate-rest": { + "version": "2.21.3", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz", + "integrity": "sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==", "dev": true, - "requires": { - "@octokit/types": "^6.18.0" + "dependencies": { + "@octokit/types": "^6.40.0" + }, + "peerDependencies": { + "@octokit/core": ">=2" } }, - "@octokit/plugin-request-log": { + "node_modules/@octokit/plugin-request-log": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", - "dev": true + "dev": true, + "peerDependencies": { + "@octokit/core": ">=3" + } }, - "@octokit/plugin-rest-endpoint-methods": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.5.0.tgz", - "integrity": "sha512-v4dNoHF8cXNx7C67yQx7oarHs5Wg2IiafWvp/ULkNcCOuXgQdBOkJtwidpYqPiRPUw4uHDkI6Tgfje+nXB+Deg==", + "node_modules/@octokit/plugin-rest-endpoint-methods": { + "version": "5.16.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz", + "integrity": "sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==", "dev": true, - "requires": { - "@octokit/types": "^6.21.0", + "dependencies": { + "@octokit/types": "^6.39.0", "deprecation": "^2.3.1" + }, + "peerDependencies": { + "@octokit/core": ">=3" } }, - "@octokit/request": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.0.tgz", - "integrity": "sha512-4cPp/N+NqmaGQwbh3vUsYqokQIzt7VjsgTYVXiwpUP2pxd5YiZB2XuTedbb0SPtv9XS7nzAKjAuQxmY8/aZkiA==", + "node_modules/@octokit/request": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz", + "integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==", "dev": true, - "requires": { + "dependencies": { "@octokit/endpoint": "^6.0.1", "@octokit/request-error": "^2.1.0", "@octokit/types": "^6.16.1", "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.1", + "node-fetch": "^2.6.7", "universal-user-agent": "^6.0.0" } }, - "@octokit/request-error": { + "node_modules/@octokit/request-error": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", "dev": true, - "requires": { + "dependencies": { "@octokit/types": "^6.0.3", "deprecation": "^2.0.0", "once": "^1.4.0" } }, - "@octokit/rest": { - "version": "18.7.0", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-18.7.0.tgz", - "integrity": "sha512-8K8BJFyPFRSfnwu+aSbdjU5w3EtxC33PkDlEi5tyVTYC+t4n7gaqygRg5ajJLCpb/ZzVaXXFJXC9OxQ9TvFRAw==", - "dev": true, - "requires": { - "@octokit/core": "^3.5.0", - "@octokit/plugin-paginate-rest": "^2.6.2", - "@octokit/plugin-request-log": "^1.0.2", - "@octokit/plugin-rest-endpoint-methods": "5.5.0" - } - }, - "@octokit/types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.21.0.tgz", - "integrity": "sha512-VPSxn9uhCoOUMpxCsOAQhf8DgIx+uzFjZRYDiZS5+TvrKaEwBrWkjr/5NmUVvPbW6xdPC2n3yL3XCnoxa4rxvg==", + "node_modules/@octokit/request/node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dev": true, - "requires": { - "@octokit/openapi-types": "^9.1.0" + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "@polka/url": { - "version": "1.0.0-next.21", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", - "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", + "node_modules/@octokit/request/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "dev": true }, - "@semantic-release/changelog": { + "node_modules/@octokit/request/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/@octokit/request/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/@octokit/rest": { + "version": "18.12.0", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-18.12.0.tgz", + "integrity": "sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==", + "dev": true, + "dependencies": { + "@octokit/core": "^3.5.1", + "@octokit/plugin-paginate-rest": "^2.16.8", + "@octokit/plugin-request-log": "^1.0.4", + "@octokit/plugin-rest-endpoint-methods": "^5.12.0" + } + }, + "node_modules/@octokit/types": { + "version": "6.41.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", + "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", + "dev": true, + "dependencies": { + "@octokit/openapi-types": "^12.11.0" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.28", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz", + "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==", + "dev": true + }, + "node_modules/@semantic-release/changelog": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/@semantic-release/changelog/-/changelog-5.0.1.tgz", "integrity": "sha512-unvqHo5jk4dvAf2nZ3aw4imrlwQ2I50eVVvq9D47Qc3R+keNqepx1vDYwkjF8guFXnOYaYcR28yrZWno1hFbiw==", "dev": true, - "requires": { + "dependencies": { "@semantic-release/error": "^2.1.0", "aggregate-error": "^3.0.0", "fs-extra": "^9.0.0", "lodash": "^4.17.4" }, + "engines": { + "node": ">=10.18" + }, + "peerDependencies": { + "semantic-release": ">=15.8.0 <18.0.0" + } + }, + "node_modules/@semantic-release/changelog/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, "dependencies": { - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - } + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" } }, - "@semantic-release/commit-analyzer": { + "node_modules/@semantic-release/commit-analyzer": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-8.0.1.tgz", "integrity": "sha512-5bJma/oB7B4MtwUkZC2Bf7O1MHfi4gWe4mA+MIQ3lsEV0b422Bvl1z5HRpplDnMLHH3EXMoRdEng6Ds5wUqA3A==", "dev": true, - "requires": { + "dependencies": { "conventional-changelog-angular": "^5.0.0", "conventional-commits-filter": "^2.0.0", "conventional-commits-parser": "^3.0.7", @@ -993,20 +726,49 @@ "import-from": "^3.0.0", "lodash": "^4.17.4", "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=10.18" + }, + "peerDependencies": { + "semantic-release": ">=16.0.0 <18.0.0" } }, - "@semantic-release/error": { + "node_modules/@semantic-release/commit-analyzer/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@semantic-release/commit-analyzer/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/@semantic-release/error": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-2.2.0.tgz", "integrity": "sha512-9Tj/qn+y2j+sjCI3Jd+qseGtHjOAeg7dU2/lVcqIQ9TV3QDaDXDYXcoOHU+7o2Hwh8L8ymL4gfuO7KxDs3q2zg==", "dev": true }, - "@semantic-release/git": { + "node_modules/@semantic-release/git": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/@semantic-release/git/-/git-9.0.0.tgz", "integrity": "sha512-AZ4Zha5NAPAciIJH3ipzw/WU9qLAn8ENaoVAhD6srRPxTpTzuV3NhNh14rcAo8Paj9dO+5u4rTKcpetOBluYVw==", "dev": true, - "requires": { + "dependencies": { "@semantic-release/error": "^2.1.0", "aggregate-error": "^3.0.0", "debug": "^4.0.0", @@ -1016,103 +778,172 @@ "micromatch": "^4.0.0", "p-reduce": "^2.0.0" }, + "engines": { + "node": ">=10.18" + }, + "peerDependencies": { + "semantic-release": ">=16.0.0 <18.0.0" + } + }, + "node_modules/@semantic-release/git/node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@semantic-release/git/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, "dependencies": { - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "p-reduce": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz", - "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true } } }, - "@semantic-release/github": { + "node_modules/@semantic-release/git/node_modules/execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/@semantic-release/git/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/git/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/git/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/@semantic-release/git/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@semantic-release/git/node_modules/p-reduce": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz", + "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@semantic-release/git/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@semantic-release/git/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@semantic-release/git/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@semantic-release/git/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@semantic-release/github": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-7.2.3.tgz", "integrity": "sha512-lWjIVDLal+EQBzy697ayUNN8MoBpp+jYIyW2luOdqn5XBH4d9bQGfTnjuLyzARZBHejqh932HVjiH/j4+R7VHw==", "dev": true, - "requires": { + "dependencies": { "@octokit/rest": "^18.0.0", "@semantic-release/error": "^2.2.0", "aggregate-error": "^3.0.0", @@ -1129,14 +960,66 @@ "p-filter": "^2.0.0", "p-retry": "^4.0.0", "url-join": "^4.0.0" + }, + "engines": { + "node": ">=10.18" + }, + "peerDependencies": { + "semantic-release": ">=16.0.0 <18.0.0" + } + }, + "node_modules/@semantic-release/github/node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@semantic-release/github/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@semantic-release/github/node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" } }, - "@semantic-release/npm": { + "node_modules/@semantic-release/github/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/@semantic-release/npm": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-7.1.3.tgz", "integrity": "sha512-x52kQ/jR09WjuWdaTEHgQCvZYMOTx68WnS+TZ4fya5ZAJw4oRtJETtrvUw10FdfM28d/keInQdc66R1Gw5+OEQ==", "dev": true, - "requires": { + "dependencies": { "@semantic-release/error": "^2.2.0", "aggregate-error": "^3.0.0", "execa": "^5.0.0", @@ -1151,160 +1034,158 @@ "semver": "^7.1.2", "tempy": "^1.0.0" }, + "engines": { + "node": ">=10.19" + }, + "peerDependencies": { + "semantic-release": ">=16.0.0 <18.0.0" + } + }, + "node_modules/@semantic-release/npm/node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@semantic-release/npm/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, "dependencies": { - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/@semantic-release/npm/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/npm/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/@semantic-release/npm/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/npm/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@semantic-release/npm/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@semantic-release/npm/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@semantic-release/npm/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@semantic-release/npm/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@semantic-release/npm/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" } }, - "@semantic-release/release-notes-generator": { + "node_modules/@semantic-release/release-notes-generator": { "version": "9.0.3", "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-9.0.3.tgz", "integrity": "sha512-hMZyddr0u99OvM2SxVOIelHzly+PP3sYtJ8XOLHdMp8mrluN5/lpeTnIO27oeCYdupY/ndoGfvrqDjHqkSyhVg==", "dev": true, - "requires": { + "dependencies": { "conventional-changelog-angular": "^5.0.0", "conventional-changelog-writer": "^4.0.0", "conventional-commits-filter": "^2.0.0", @@ -1316,1350 +1197,1035 @@ "lodash": "^4.17.4", "read-pkg-up": "^7.0.0" }, + "engines": { + "node": ">=10.18" + }, + "peerDependencies": { + "semantic-release": ">=15.8.0 <18.0.0" + } + }, + "node_modules/@semantic-release/release-notes-generator/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "into-stream": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-6.0.0.tgz", - "integrity": "sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA==", - "dev": true, - "requires": { - "from2": "^2.3.0", - "p-is-promise": "^3.0.0" - } - }, - "p-is-promise": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", - "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==", - "dev": true - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - } - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true } } }, - "@sindresorhus/is": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", - "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==" - }, - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true - }, - "@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==" + "node_modules/@semantic-release/release-notes-generator/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "@tsconfig/node10": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", - "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", + "node_modules/@semantic-release/release-notes-generator/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, - "@tsconfig/node12": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", - "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", - "dev": true + "node_modules/@sindresorhus/is": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", + "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==", + "engines": { + "node": ">=4" + } }, - "@tsconfig/node14": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", - "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", - "dev": true + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "engines": { + "node": ">= 10" + } }, - "@tsconfig/node16": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", - "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", - "dev": true + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "engines": { + "node": ">=10.13.0" + } }, - "@types/animejs": { + "node_modules/@types/animejs": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/@types/animejs/-/animejs-3.1.4.tgz", "integrity": "sha512-WUjeFT2SXd6intfE6cg6eL1jk/JL88JqM2gC4WqO4iHLmbCvHUq6aoLK13lGpDWs4FtS2PHoYraJZ0dEx99Dyg==" }, - "@types/body-parser": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.1.tgz", - "integrity": "sha512-a6bTJ21vFOGIkwM0kzh9Yr89ziVxq4vYH2fQ6N8AeipEzai/cFK6aGMArIkUeIdRIgpwQa+2bXiLuUJCpSf2Cg==", + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", "dev": true, - "requires": { + "dependencies": { "@types/connect": "*", "@types/node": "*" } }, - "@types/classnames": { + "node_modules/@types/classnames": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/@types/classnames/-/classnames-2.3.1.tgz", "integrity": "sha512-zeOWb0JGBoVmlQoznvqXbE0tEC/HONsnoUNH19Hc96NFsTAwTXbTqb8FMYkru1F/iqp7a18Ws3nWJvtA1sHD1A==", + "deprecated": "This is a stub types definition. classnames provides its own type definitions, so you do not need this installed.", "dev": true, - "requires": { + "dependencies": { "classnames": "*" } }, - "@types/color": { + "node_modules/@types/color": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@types/color/-/color-3.0.2.tgz", "integrity": "sha512-INiJl6sfNn8iyC5paxVzqiVUEj2boIlFki02uRTAkKwAj++7aAF+ZfEv/XrIeBa0XI/fTZuDHW8rEEcEVnON+Q==", - "requires": { + "dependencies": { "@types/color-convert": "*" } }, - "@types/color-convert": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/color-convert/-/color-convert-2.0.0.tgz", - "integrity": "sha512-m7GG7IKKGuJUXvkZ1qqG3ChccdIM/qBBo913z+Xft0nKCX4hAU/IxKwZBU4cpRZ7GS5kV4vOblUkILtSShCPXQ==", - "requires": { - "@types/color-name": "*" + "node_modules/@types/color-convert": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/color-convert/-/color-convert-2.0.4.tgz", + "integrity": "sha512-Ub1MmDdyZ7mX//g25uBAoH/mWGd9swVbt8BseymnaE18SU4po/PjmCrHxqIIRjBo3hV/vh1KGr0eMxUhp+t+dQ==", + "dependencies": { + "@types/color-name": "^1.1.0" } }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" + "node_modules/@types/color-name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.5.tgz", + "integrity": "sha512-j2K5UJqGTxeesj6oQuGpMgifpT5k9HprgQd8D1Y0lOFqKHl3PJu5GMeS4Y5EgjS55AE6OQxf8mPED9uaGbf4Cg==" }, - "@types/command-line-args": { + "node_modules/@types/command-line-args": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.2.0.tgz", "integrity": "sha512-UuKzKpJJ/Ief6ufIaIzr3A/0XnluX7RvFgwkV89Yzvm77wCh1kFaFmqN8XEnGcN62EuHdedQjEMb8mYxFLGPyA==" }, - "@types/command-line-commands": { + "node_modules/@types/command-line-commands": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@types/command-line-commands/-/command-line-commands-2.0.1.tgz", "integrity": "sha512-3cOzvwRdFS0w4NKeoAAjvRGM1ONSphUrvAs2uBIYIUW4uchXu/vm5GZPu6YNRb/wS7H8qt4uh1k0IF99eBF2Xg==" }, - "@types/command-line-usage": { + "node_modules/@types/command-line-usage": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/@types/command-line-usage/-/command-line-usage-5.0.2.tgz", "integrity": "sha512-n7RlEEJ+4x4TS7ZQddTmNSxP+zziEG0TNsMfiRIxcIVXt71ENJ9ojeXmGO3wPoTdn7pJcU2xc3CJYMktNT6DPg==" }, - "@types/common-tags": { + "node_modules/@types/common-tags": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/@types/common-tags/-/common-tags-1.8.1.tgz", "integrity": "sha512-20R/mDpKSPWdJs5TOpz3e7zqbeCNuMCPhV7Yndk9KU2Rbij2r5W4RzwDPkzC+2lzUqXYu9rFzTktCBnDjHuNQg==", "dev": true }, - "@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", "dev": true, - "requires": { + "dependencies": { "@types/node": "*" } }, - "@types/eslint": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.0.tgz", - "integrity": "sha512-07XlgzX0YJUn4iG1ocY4IX9DzKSmMGUs6ESKlxWhZRaa0fatIWaHWUVapcuGa8r5HFnTqzj+4OCjd5f7EZ/i/A==", + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", "dev": true, - "requires": { + "dependencies": { "@types/estree": "*", "@types/json-schema": "*" } }, - "@types/eslint-scope": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.1.tgz", - "integrity": "sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g==", + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", "dev": true, - "requires": { + "dependencies": { "@types/eslint": "*", "@types/estree": "*" } }, - "@types/estree": { - "version": "0.0.50", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", - "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "dev": true }, - "@types/express": { + "node_modules/@types/express": { "version": "4.17.13", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", "dev": true, - "requires": { + "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.18", "@types/qs": "*", "@types/serve-static": "*" } }, - "@types/express-serve-static-core": { - "version": "4.17.24", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.24.tgz", - "integrity": "sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA==", + "node_modules/@types/express-serve-static-core": { + "version": "4.19.6", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", + "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", "dev": true, - "requires": { + "dependencies": { "@types/node": "*", "@types/qs": "*", - "@types/range-parser": "*" + "@types/range-parser": "*", + "@types/send": "*" } }, - "@types/fs-extra": { + "node_modules/@types/fs-extra": { "version": "9.0.13", "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", - "requires": { + "dependencies": { "@types/node": "*" } }, - "@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "node_modules/@types/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==", "dev": true, - "requires": { - "@types/minimatch": "*", + "dependencies": { + "@types/minimatch": "^5.1.2", "@types/node": "*" } }, - "@types/globby": { + "node_modules/@types/globby": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/@types/globby/-/globby-9.1.0.tgz", "integrity": "sha512-9du/HCA71EBz7syHRnM4Q/u4Fbx3SyN/Uu+4Of9lyPX4A6Xi+A8VMxvx8j5/CMTfrae2Zwdwg0fAaKvKXfRbAw==", - "requires": { + "deprecated": "This is a stub types definition. globby provides its own type definitions, so you do not need this installed.", + "dependencies": { "globby": "*" } }, - "@types/hast": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz", - "integrity": "sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==", - "requires": { - "@types/unist": "*" + "node_modules/@types/hast": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.10.tgz", + "integrity": "sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==", + "dependencies": { + "@types/unist": "^2" } }, - "@types/inquirer": { + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "dev": true + }, + "node_modules/@types/inquirer": { "version": "8.1.3", "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-8.1.3.tgz", "integrity": "sha512-AayK4ZL5ssPzR1OtnOLGAwpT0Dda3Xi/h1G0l1oJDNrowp7T1423q4Zb8/emr7tzRlCy4ssEri0LWVexAqHyKQ==", "dev": true, - "requires": { + "dependencies": { "@types/through": "*", "rxjs": "^7.2.0" - }, - "dependencies": { - "rxjs": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.4.0.tgz", - "integrity": "sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w==", - "dev": true, - "requires": { - "tslib": "~2.1.0" - } - }, - "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", - "dev": true - } } }, - "@types/istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==" + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==" }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "requires": { + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dependencies": { "@types/istanbul-lib-coverage": "*" } }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "requires": { + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dependencies": { "@types/istanbul-lib-report": "*" } }, - "@types/jsdom": { + "node_modules/@types/jsdom": { "version": "16.2.13", "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-16.2.13.tgz", "integrity": "sha512-8JQCjdeAidptSsOcRWk2iTm9wCcwn9l+kRG6k5bzUacrnm1ezV4forq0kWjUih/tumAeoG+OspOvQEbbRucBTw==", - "requires": { + "dependencies": { "@types/node": "*", "@types/parse5": "*", "@types/tough-cookie": "*" } }, - "@types/json-schema": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.8.tgz", - "integrity": "sha512-YSBPTLTVm2e2OoQIDYx8HaeWJ5tTToLH67kXR7zYNGupXMEHa2++G8k+DczX2cFVgalypqtyZIcU19AFcmOpmg==", - "dev": true - }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true }, - "@types/lodash": { + "node_modules/@types/lodash": { "version": "4.14.178", "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.178.tgz", "integrity": "sha512-0d5Wd09ItQWH1qFbEyQ7oTQ3GZrMfth5JkbN3EvTKLXcHLRDSXeLnlvlOn0wvxVIwK5o2M8JzP/OWz7T3NRsbw==" }, - "@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", - "dev": true - }, - "@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", "dev": true }, - "@types/minimist": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", - "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "node_modules/@types/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", "dev": true }, - "@types/mocha": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.2.tgz", - "integrity": "sha512-Lwh0lzzqT5Pqh6z61P3c3P5nm6fzQK/MMHl9UKeneAeInVflBSz1O2EkX6gM6xfJd7FBXBY5purtLx7fUiZ7Hw==", + "node_modules/@types/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", "dev": true }, - "@types/mozjpeg": { + "node_modules/@types/mozjpeg": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/@types/mozjpeg/-/mozjpeg-5.0.0.tgz", "integrity": "sha512-orPWvcpNRb7FXVpIbkFa8L3p8rWz2N30wbrN7PXRnU1nEC4/9NnahDplCbMmzPwVMQlF56YrJUzTh8t8mIYtng==", - "requires": { + "dependencies": { "@types/node": "*" } }, - "@types/node": { + "node_modules/@types/node": { "version": "16.11.12", "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.12.tgz", "integrity": "sha512-+2Iggwg7PxoO5Kyhvsq9VarmPbIelXP070HMImEpbtGCoyWNINQj4wzjbQCXzdHTRXnqufutJb5KAURZANNBAw==" }, - "@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "node_modules/@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", "dev": true }, - "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", "dev": true }, - "@types/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-ARATsLdrGPUnaBvxLhUlnltcMgn7pQG312S8ccdYlnyijabrX9RN/KN/iGj9Am96CoW8e/K9628BA7Bv4XHdrA==" + "node_modules/@types/parse5": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-7.0.0.tgz", + "integrity": "sha512-f2SeAxumolBmhuR62vNGTsSAvdz/Oj0k682xNrcKJ4dmRnTPODB74j6CPoNPzBPTHsu7Y7W7u93Mgp8Ovo8vWw==", + "deprecated": "This is a stub types definition. parse5 provides its own type definitions, so you do not need this installed.", + "dependencies": { + "parse5": "*" + } }, - "@types/pngquant-bin": { + "node_modules/@types/pngquant-bin": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@types/pngquant-bin/-/pngquant-bin-4.0.0.tgz", "integrity": "sha512-tCuGWs2eOJZxltxWci/NKGJUXVRR1tvweoE/TRNdsBy3WsscMbEFS4jCnS7axQAnWr+GFUeCmrHsGr2HhaWW1A==", - "requires": { + "dependencies": { "@types/node": "*" } }, - "@types/prop-types": { - "version": "15.7.4", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz", - "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==" + "node_modules/@types/prop-types": { + "version": "15.7.13", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", + "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==" }, - "@types/puppeteer": { + "node_modules/@types/puppeteer": { "version": "5.4.4", "resolved": "https://registry.npmjs.org/@types/puppeteer/-/puppeteer-5.4.4.tgz", "integrity": "sha512-3Nau+qi69CN55VwZb0ATtdUAlYlqOOQ3OfQfq0Hqgc4JMFXiQT/XInlwQ9g6LbicDslE6loIFsXFklGh5XmI6Q==", "dev": true, - "requires": { + "dependencies": { "@types/node": "*" } }, - "@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "node_modules/@types/qs": { + "version": "6.9.17", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.17.tgz", + "integrity": "sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==", "dev": true }, - "@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", "dev": true }, - "@types/react": { + "node_modules/@types/react": { "version": "17.0.37", "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.37.tgz", "integrity": "sha512-2FS1oTqBGcH/s0E+CjrCCR9+JMpsu9b69RTFO+40ua43ZqP5MmQ4iUde/dMjWR909KxZwmOQIFq6AV6NjEG5xg==", - "requires": { + "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", "csstype": "^3.0.2" } }, - "@types/react-dom": { + "node_modules/@types/react-dom": { "version": "17.0.11", "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.11.tgz", "integrity": "sha512-f96K3k+24RaLGVu/Y2Ng3e1EbZ8/cVJvypZWd7cy0ofCBaf2lcM46xNhycMZ2xGwbBjRql7hOlZ+e2WlJ5MH3Q==", "dev": true, - "requires": { + "dependencies": { "@types/react": "*" } }, - "@types/react-highlight-words": { + "node_modules/@types/react-highlight-words": { "version": "0.16.3", "resolved": "https://registry.npmjs.org/@types/react-highlight-words/-/react-highlight-words-0.16.3.tgz", "integrity": "sha512-ZarU4+/R593xctDXy/SkyWeS/dg5sG8TxZ2DATd2EdDKHlfqCPnOYzHEo/7XaYpCoSCgk5Sp1sVNhnOzC/ezJg==", - "requires": { + "dependencies": { "@types/react": "*" } }, - "@types/react-syntax-highlighter": { + "node_modules/@types/react-syntax-highlighter": { "version": "13.5.2", "resolved": "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-13.5.2.tgz", "integrity": "sha512-sRZoKZBGKaE7CzMvTTgz+0x/aVR58ZYUTfB7HN76vC+yQnvo1FWtzNARBt0fGqcLGEVakEzMu/CtPzssmanu8Q==", - "requires": { + "dependencies": { "@types/react": "*" } }, - "@types/react-transition-group": { + "node_modules/@types/react-transition-group": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.3.tgz", "integrity": "sha512-fUx5muOWSYP8Bw2BUQ9M9RK9+W1XBK/7FLJ8PTQpnpTEkn0ccyMffyEQvan4C3h53gHdx7KE5Qrxi/LnUGQtdg==", - "requires": { + "dependencies": { "@types/react": "*" } }, - "@types/recursive-readdir": { + "node_modules/@types/recursive-readdir": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/@types/recursive-readdir/-/recursive-readdir-2.2.0.tgz", "integrity": "sha512-HGk753KRu2N4mWduovY4BLjYq4jTOL29gV2OfGdGxHcPSWGFkC5RRIdk+VTs5XmYd7MVAD+JwKrcb5+5Y7FOCg==", "dev": true, - "requires": { + "dependencies": { "@types/node": "*" } }, - "@types/retry": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", - "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==", + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", "dev": true }, - "@types/scheduler": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", - "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" + "node_modules/@types/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-YIoDCTH3Af6XM5VuwGG/QL/CJqga1Zm3NkU3HZ4ZHK2fRMPYP1VczsTUqtsf43PH/iJNVlPHAo2oWX7BSdB2Hw==" }, - "@types/serve-static": { - "version": "1.13.10", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", - "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", "dev": true, - "requires": { + "dependencies": { "@types/mime": "^1", "@types/node": "*" } }, - "@types/shelljs": { + "node_modules/@types/serve-static": { + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "dev": true, + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "node_modules/@types/shelljs": { "version": "0.8.10", "resolved": "https://registry.npmjs.org/@types/shelljs/-/shelljs-0.8.10.tgz", "integrity": "sha512-nhBdUA/n0nRo1B6E4BuRnUvllYAqal4T9zd91ZDnBh+qQMQTwvxmJHx6xEn/0vdjP2kqEA5eVeLazs4nMxeuFg==", "dev": true, - "requires": { + "dependencies": { "@types/glob": "*", "@types/node": "*" } }, - "@types/string-similarity": { + "node_modules/@types/string-similarity": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@types/string-similarity/-/string-similarity-4.0.0.tgz", "integrity": "sha512-dMS4S07fbtY1AILG/RhuwmptmzK1Ql8scmAebOTJ/8iBtK/KI17NwGwKzu1uipjj8Kk+3mfPxum56kKZE93mzQ==" }, - "@types/temp": { + "node_modules/@types/temp": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/@types/temp/-/temp-0.9.1.tgz", "integrity": "sha512-yDQ8Y+oQi9V7VkexwE6NBSVyNuyNFeGI275yWXASc2DjmxNicMi9O50KxDpNlST1kBbV9jKYBHGXhgNYFMPqtA==", "dev": true, - "requires": { + "dependencies": { "@types/node": "*" } }, - "@types/through": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.30.tgz", - "integrity": "sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==", + "node_modules/@types/through": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/through/-/through-0.0.33.tgz", + "integrity": "sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==", "dev": true, - "requires": { + "dependencies": { "@types/node": "*" } }, - "@types/tough-cookie": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.1.tgz", - "integrity": "sha512-Y0K95ThC3esLEYD6ZuqNek29lNX2EM1qxV8y2FTLUB0ff5wWrk7az+mLrnNFUnaXcgKye22+sFBRXOgpPILZNg==" + "node_modules/@types/tough-cookie": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", + "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==" }, - "@types/unist": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", - "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==" + "node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==" }, - "@types/uuid": { + "node_modules/@types/uuid": { "version": "8.3.3", "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.3.tgz", "integrity": "sha512-0LbEEx1zxrYB3pgpd1M5lEhLcXjKJnYghvhTRgaBeUivLHMDM1TzF3IJ6hXU2+8uA4Xz+5BA63mtZo5DjVT8iA==" }, - "@types/webpack": { + "node_modules/@types/webpack": { "version": "5.28.0", "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-5.28.0.tgz", "integrity": "sha512-8cP0CzcxUiFuA9xGJkfeVpqmWTk9nx6CWwamRGCj95ph1SmlRRk9KlCZ6avhCbZd4L68LvYT6l1kpdEnQXrF8w==", "dev": true, - "requires": { + "dependencies": { "@types/node": "*", "tapable": "^2.2.0", "webpack": "^5" } }, - "@types/xml2js": { + "node_modules/@types/xml2js": { "version": "0.4.9", "resolved": "https://registry.npmjs.org/@types/xml2js/-/xml2js-0.4.9.tgz", "integrity": "sha512-CHiCKIihl1pychwR2RNX5mAYmJDACgFVCMT5OArMaO3erzwXVcBqPcusr+Vl8yeeXukxZqtF8mZioqX+mpjjdw==", - "requires": { + "dependencies": { "@types/node": "*" } }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "requires": { + "node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "dependencies": { "@types/yargs-parser": "*" } }, - "@types/yargs-parser": { - "version": "20.2.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", - "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==" + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==" }, - "@types/yauzl": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz", - "integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==", + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", "dev": true, "optional": true, - "requires": { - "@types/node": "*" - } - }, - "@typescript-eslint/eslint-plugin": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.22.1.tgz", - "integrity": "sha512-kVTAghWDDhsvQ602tHBc6WmQkdaYbkcTwZu+7l24jtJiYvm9l+/y/b2BZANEezxPDiX5MK2ZecE+9BFi/YJryw==", - "dev": true, - "requires": { - "@typescript-eslint/experimental-utils": "4.22.1", - "@typescript-eslint/scope-manager": "4.22.1", - "debug": "^4.1.1", - "functional-red-black-tree": "^1.0.1", - "lodash": "^4.17.15", - "regexpp": "^3.0.0", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "@typescript-eslint/experimental-utils": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.22.1.tgz", - "integrity": "sha512-svYlHecSMCQGDO2qN1v477ax/IDQwWhc7PRBiwAdAMJE7GXk5stF4Z9R/8wbRkuX/5e9dHqbIWxjeOjckK3wLQ==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/scope-manager": "4.22.1", - "@typescript-eslint/types": "4.22.1", - "@typescript-eslint/typescript-estree": "4.22.1", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" - } - }, - "@typescript-eslint/parser": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.22.1.tgz", - "integrity": "sha512-l+sUJFInWhuMxA6rtirzjooh8cM/AATAe3amvIkqKFeMzkn85V+eLzb1RyuXkHak4dLfYzOmF6DXPyflJvjQnw==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "4.22.1", - "@typescript-eslint/types": "4.22.1", - "@typescript-eslint/typescript-estree": "4.22.1", - "debug": "^4.1.1" - } - }, - "@typescript-eslint/scope-manager": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.22.1.tgz", - "integrity": "sha512-d5bAiPBiessSmNi8Amq/RuLslvcumxLmyhf1/Xa9IuaoFJ0YtshlJKxhlbY7l2JdEk3wS0EnmnfeJWSvADOe0g==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.22.1", - "@typescript-eslint/visitor-keys": "4.22.1" - } - }, - "@typescript-eslint/types": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.22.1.tgz", - "integrity": "sha512-2HTkbkdAeI3OOcWbqA8hWf/7z9c6gkmnWNGz0dKSLYLWywUlkOAQ2XcjhlKLj5xBFDf8FgAOF5aQbnLRvgNbCw==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.22.1.tgz", - "integrity": "sha512-p3We0pAPacT+onSGM+sPR+M9CblVqdA9F1JEdIqRVlxK5Qth4ochXQgIyb9daBomyQKAXbygxp1aXQRV0GC79A==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.22.1", - "@typescript-eslint/visitor-keys": "4.22.1", - "debug": "^4.1.1", - "globby": "^11.0.1", - "is-glob": "^4.0.1", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "@typescript-eslint/visitor-keys": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.22.1.tgz", - "integrity": "sha512-WPkOrIRm+WCLZxXQHCi+WG8T2MMTUFR70rWjdWYddLT7cEfb2P4a3O/J2U1FBVsSFTocXLCoXWY6MZGejeStvQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.22.1", - "eslint-visitor-keys": "^2.0.0" - } - }, - "@ungap/promise-all-settled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", - "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", - "dev": true - }, - "@vue/compiler-core": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.1.5.tgz", - "integrity": "sha512-TXBhFinoBaXKDykJzY26UEuQU1K07FOp/0Ie+OXySqqk0bS0ZO7Xvl7UmiTUPYcLrWbxWBR7Bs/y55AI0MNc2Q==", - "dev": true, - "requires": { - "@babel/parser": "^7.12.0", - "@babel/types": "^7.12.0", - "@vue/shared": "3.1.5", - "estree-walker": "^2.0.1", - "source-map": "^0.6.1" - }, "dependencies": { - "@babel/types": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.8.tgz", - "integrity": "sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.8", - "to-fast-properties": "^2.0.0" - } - } + "@types/node": "*" } }, - "@vue/compiler-dom": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.1.5.tgz", - "integrity": "sha512-ZsL3jqJ52OjGU/YiT/9XiuZAmWClKInZM2aFJh9gnsAPqOrj2JIELMbkIFpVKR/CrVO/f2VxfPiiQdQTr65jcQ==", + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", "dev": true, - "requires": { - "@vue/compiler-core": "3.1.5", - "@vue/shared": "3.1.5" - } - }, - "@vue/compiler-sfc": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.1.5.tgz", - "integrity": "sha512-mtMY6xMvZeSRx9MTa1+NgJWndrkzVTdJ1pQAmAKQuxyb5LsHVvrgP7kcQFvxPHVpLVTORbTJWHaiqoKrJvi1iA==", - "dev": true, - "requires": { - "@babel/parser": "^7.13.9", - "@babel/types": "^7.13.0", - "@types/estree": "^0.0.48", - "@vue/compiler-core": "3.1.5", - "@vue/compiler-dom": "3.1.5", - "@vue/compiler-ssr": "3.1.5", - "@vue/shared": "3.1.5", - "consolidate": "^0.16.0", - "estree-walker": "^2.0.1", - "hash-sum": "^2.0.0", - "lru-cache": "^5.1.1", - "magic-string": "^0.25.7", - "merge-source-map": "^1.1.0", - "postcss": "^8.1.10", - "postcss-modules": "^4.0.0", - "postcss-selector-parser": "^6.0.4", - "source-map": "^0.6.1" - }, "dependencies": { - "@babel/types": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.8.tgz", - "integrity": "sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.8", - "to-fast-properties": "^2.0.0" - } - }, - "@types/estree": { - "version": "0.0.48", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.48.tgz", - "integrity": "sha512-LfZwXoGUDo0C3me81HXgkBg5CTQYb6xzEl+fNmbO4JdRiSKQ8A0GD1OBBvKAIsbCUgoyAty7m99GqqMQe784ew==", - "dev": true - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - } - } - }, - "@vue/compiler-ssr": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.1.5.tgz", - "integrity": "sha512-CU5N7Di/a4lyJ18LGJxJYZS2a8PlLdWpWHX9p/XcsjT2TngMpj3QvHVRkuik2u8QrIDZ8OpYmTyj1WDNsOV+Dg==", - "dev": true, - "requires": { - "@vue/compiler-dom": "3.1.5", - "@vue/shared": "3.1.5" - } - }, - "@vue/shared": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.1.5.tgz", - "integrity": "sha512-oJ4F3TnvpXaQwZJNF3ZK+kLPHKarDmJjJ6jyzVNDKH9md1dptjC7lWR//jrGuLdek/U6iltWxqAnYOu8gCiOvA==", - "dev": true - }, - "@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", - "dev": true, - "requires": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" } }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", "dev": true }, - "@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", "dev": true }, - "@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", "dev": true }, - "@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", "dev": true, - "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", "@xtuc/long": "4.2.2" } }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", "dev": true }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" } }, - "@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", "dev": true, - "requires": { + "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, - "@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", "dev": true, - "requires": { + "dependencies": { "@xtuc/long": "4.2.2" } }, - "@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", "dev": true }, - "@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" } }, - "@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, - "@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" } }, - "@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, - "@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", "@xtuc/long": "4.2.2" } }, - "@xtuc/ieee754": { + "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", "dev": true }, - "@xtuc/long": { + "node_modules/@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "dev": true }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, - "abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==" + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead" }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dev": true, - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" } }, - "acorn": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz", - "integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==", - "dev": true + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } }, - "acorn-globals": { + "node_modules/acorn-globals": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "requires": { + "dependencies": { "acorn": "^7.1.1", "acorn-walk": "^7.1.1" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" - } } }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true + "node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } }, - "acorn-walk": { + "node_modules/acorn-walk": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "engines": { + "node": ">=0.4.0" + } }, - "agent-base": { + "node_modules/agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "requires": { + "dependencies": { "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/agent-base/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "aggregate-error": { + "node_modules/agent-base/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/aggregate-error": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, - "requires": { + "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" }, - "dependencies": { - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - } + "engines": { + "node": ">=8" } }, - "ajv": { - "version": "8.6.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz", - "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==", - "requires": { + "node_modules/ajv": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", + "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", + "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "ajv-formats": { + "node_modules/ajv-formats": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "requires": { + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } } }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true - }, - "animejs": { + "node_modules/animejs": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/animejs/-/animejs-3.2.1.tgz", "integrity": "sha512-sWno3ugFryK5nhiDm/2BKeFCpZv7vzerWUcUPyAZLDhMek3+S/p418ldZJbJXo5ZUOpfm2kP2XRO4NJcULMy9A==" }, - "anser": { + "node_modules/anser": { "version": "1.4.9", "resolved": "https://registry.npmjs.org/anser/-/anser-1.4.9.tgz", "integrity": "sha512-AI+BjTeGt2+WFk4eWcqbQ7snZpDBt8SaLlj0RT2h5xfdWaiy51OjYvqwMrNzJLGy8iOAL6nKDITWO+rd4MkYEA==", "dev": true }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true - }, - "ansi-escapes": { + "node_modules/ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, - "requires": { + "dependencies": { "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - } + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "ansicolors": { + "node_modules/ansicolors": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", - "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=", + "integrity": "sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==", "dev": true }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, - "requires": { + "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" } }, - "arch": { + "node_modules/arch": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", - "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==" + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "archive-type": { + "node_modules/archive-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/archive-type/-/archive-type-4.0.0.tgz", - "integrity": "sha1-+S5yIzBW38aWlHJ0nCZ72wRrHXA=", - "requires": { + "integrity": "sha512-zV4Ky0v1F8dBrdYElwTvQhweQ0P7Kwc1aluqJsYtOBP01jXcWCyW2IEfI1YiqsG+Iy7ZR+o5LF1N+PGECBxHWA==", + "dependencies": { "file-type": "^4.2.0" }, - "dependencies": { - "file-type": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz", - "integrity": "sha1-G2AOX8ofvcboDApwxxyNul95BsU=" - } + "engines": { + "node": ">=4" } }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" + "node_modules/archive-type/node_modules/file-type": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz", + "integrity": "sha512-f2UbFQEk7LXgWpi5ntcO86OeA/cC80fuDDDaX/fZ2ZGel+AF7leRQqBBW1eJNiiQkrZlAoM6P+VYP5P6bOlDEQ==", + "engines": { + "node": ">=4" } }, - "argv-formatter": { + "node_modules/argv-formatter": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/argv-formatter/-/argv-formatter-1.0.0.tgz", - "integrity": "sha1-oMoMvCmltz6Dbuvhy/bF4OTrgvk=", + "integrity": "sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw==", "dev": true }, - "array-back": { + "node_modules/array-back": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==" - }, - "array-differ": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", - "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", - "dev": true + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "engines": { + "node": ">=6" + } }, - "array-find-index": { + "node_modules/array-find-index": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" + "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", + "engines": { + "node": ">=0.10.0" + } }, - "array-flatten": { + "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", "dev": true }, - "array-ify": { + "node_modules/array-ify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=", + "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", "dev": true }, - "array-includes": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz", - "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", - "get-intrinsic": "^1.1.1", - "is-string": "^1.0.5" - } - }, - "array-union": { + "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "engines": { + "node": ">=8" + } }, - "array.prototype.flatmap": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz", - "integrity": "sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==", + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "function-bind": "^1.1.1" + "engines": { + "node": ">=0.10.0" } }, - "arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "dev": true - }, - "asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "node_modules/asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^4.0.0", "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } + "minimalistic-assert": "^1.0.0" } }, - "assert": { + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", + "dev": true + }, + "node_modules/assert": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz", "integrity": "sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==", "dev": true, - "requires": { + "dependencies": { "es6-object-assign": "^1.1.0", "is-nan": "^1.2.1", "object-is": "^1.0.1", "util": "^0.12.0" } }, - "assertthat": { + "node_modules/assertthat": { "version": "6.3.14", "resolved": "https://registry.npmjs.org/assertthat/-/assertthat-6.3.14.tgz", "integrity": "sha512-QewJD4x3vqU3Afv8g5lW9AoPzV5iD+TSTJ3dm4yE1881JZjIOyNfykFrUP1aIz13d3oLuRyoNBfID0skUsxbMA==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", "dev": true, - "requires": { + "dependencies": { "@types/common-tags": "1.8.1", "@types/uuid": "8.3.1", "chalk": "4.1.2", @@ -2667,224 +2233,216 @@ "defekt": "8.0.0", "typedescriptor": "4.0.12", "uuid": "8.3.2" - }, - "dependencies": { - "@types/uuid": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.1.tgz", - "integrity": "sha512-Y2mHTRAbqfFkpjldbkHGY8JIzRN6XqYRliG8/24FcHm2D2PwW24fl5xMRTVGdrb7iMrwCaIEbLWerGIkXuFWVg==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "common-tags": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", - "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==", - "dev": true - }, - "defekt": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/defekt/-/defekt-8.0.0.tgz", - "integrity": "sha512-z/eZ+HW+LmE1bg6sk0OmuynS7EoJBgqUaDBNYiOqKgxqB6kl2blpTPXb6K578SpWbbg1SusBrxSruRer6de/Pw==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } } }, - "ast-types": { - "version": "0.13.2", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.2.tgz", - "integrity": "sha512-uWMHxJxtfj/1oZClOxDEV1sQ1HCDkA4MG8Gr69KKeBjEVH0R84WlejZ0y2DcwyBlpAEMltmVYkVgqfLFb2oyiA==", + "node_modules/assertthat/node_modules/@types/uuid": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.1.tgz", + "integrity": "sha512-Y2mHTRAbqfFkpjldbkHGY8JIzRN6XqYRliG8/24FcHm2D2PwW24fl5xMRTVGdrb7iMrwCaIEbLWerGIkXuFWVg==", "dev": true }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true + "node_modules/assertthat/node_modules/common-tags": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", + "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } }, - "async-af": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/async-af/-/async-af-7.0.39.tgz", - "integrity": "sha512-wFvIqK2/Xqk0AKSV7DLVTR3Xf4bUEsDoSgwKhUgKYGUDnb85tuQrDpc4k16dXyo/pqW7l75d/uZMpFuiV/sjrA==", - "dev": true + "node_modules/ast-types": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.2.tgz", + "integrity": "sha512-uWMHxJxtfj/1oZClOxDEV1sQ1HCDkA4MG8Gr69KKeBjEVH0R84WlejZ0y2DcwyBlpAEMltmVYkVgqfLFb2oyiA==", + "dev": true, + "engines": { + "node": ">=4" + } }, - "asynckit": { + "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, - "at-least-node": { + "node_modules/at-least-node": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 4.0.0" + } }, - "available-typed-arrays": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.4.tgz", - "integrity": "sha512-SA5mXJWrId1TaQjfxUYghbqQ/hYioKmLJvPJyDuYRtXXenFNMjj4hSSt1Cf1xsuXSXrtxrVC5Ot4eU6cOtBDdA==", - "dev": true + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "axios": { + "node_modules/axios": { "version": "0.24.0", "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", "dev": true, - "requires": { - "follow-redirects": "^1.14.4" - }, "dependencies": { - "follow-redirects": { - "version": "1.14.5", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.5.tgz", - "integrity": "sha512-wtphSXy7d4/OR+MvIFbCVBDzZ5520qV8XfPklSN5QtxuMUJZ+b0Wnst1e1lCDocfzuCkHqj8k0FpZqO+UIaKNA==", - "dev": true - } + "follow-redirects": "^1.14.4" } }, - "babel-plugin-syntax-jsx": { + "node_modules/babel-plugin-syntax-jsx": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", - "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=", + "integrity": "sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw==", "dev": true }, - "balanced-match": { + "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "base64-js": { + "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "before-after-hook": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz", - "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==", + "node_modules/before-after-hook": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", + "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", "dev": true }, - "big.js": { + "node_modules/big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true + "dev": true, + "engines": { + "node": "*" + } }, - "bin-build": { + "node_modules/bin-build": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bin-build/-/bin-build-3.0.0.tgz", "integrity": "sha512-jcUOof71/TNAI2uM5uoUaDq2ePcVBQ3R/qhxAz1rX7UfvduAL/RXD3jXzvn8cVcDJdGVkiR1shal3OH0ImpuhA==", - "requires": { + "dependencies": { "decompress": "^4.0.0", "download": "^6.2.2", "execa": "^0.7.0", "p-map-series": "^1.0.0", "tempfile": "^2.0.0" + }, + "engines": { + "node": ">=4" } }, - "bin-check": { + "node_modules/bin-check": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bin-check/-/bin-check-4.1.0.tgz", "integrity": "sha512-b6weQyEUKsDGFlACWSIOfveEnImkJyK/FGW6FAG42loyoquvjdtOIqO6yBFzHyqyVVhNgNkQxxx09SFLK28YnA==", - "requires": { + "dependencies": { "execa": "^0.7.0", "executable": "^4.1.0" + }, + "engines": { + "node": ">=4" } }, - "bin-version": { + "node_modules/bin-version": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/bin-version/-/bin-version-3.1.0.tgz", "integrity": "sha512-Mkfm4iE1VFt4xd4vH+gx+0/71esbfus2LsnCGe8Pi4mndSPyT+NGES/Eg99jx8/lUGWfu3z2yuB/bt5UB+iVbQ==", - "requires": { + "dependencies": { "execa": "^1.0.0", "find-versions": "^3.0.0" }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "requires": { - "pump": "^3.0.0" - } - } + "engines": { + "node": ">=6" } }, - "bin-version-check": { + "node_modules/bin-version-check": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/bin-version-check/-/bin-version-check-4.0.0.tgz", "integrity": "sha512-sR631OrhC+1f8Cvs8WyVWOA33Y8tgwjETNPyyD/myRBXLkfS/vl74FmH/lFcRl9KY3zwGh7jFhvyk9vV3/3ilQ==", - "requires": { + "dependencies": { "bin-version": "^3.0.0", "semver": "^5.6.0", "semver-truncate": "^1.1.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/bin-version/node_modules/cross-spawn": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz", + "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/bin-version/node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" } }, - "bin-wrapper": { + "node_modules/bin-version/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/bin-wrapper": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bin-wrapper/-/bin-wrapper-4.1.0.tgz", "integrity": "sha512-hfRmo7hWIXPkbpi0ZltboCMVrU+0ClXR/JgbCKKjlDjQf6igXa7OwdqNcFWQZPZTgiY7ZpzE3+LjjkLiTN2T7Q==", - "requires": { + "dependencies": { "bin-check": "^4.1.0", "bin-version-check": "^4.0.0", "download": "^7.1.0", @@ -2892,148 +2450,209 @@ "os-filter-obj": "^2.0.0", "pify": "^4.0.1" }, + "engines": { + "node": ">=6" + } + }, + "node_modules/bin-wrapper/node_modules/download": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/download/-/download-7.1.0.tgz", + "integrity": "sha512-xqnBTVd/E+GxJVrX5/eUJiLYjCGPwMpdL+jGhGU57BvtcA7wwhtHVbXBeUk51kOpW3S7Jn3BQbN9Q1R1Km2qDQ==", "dependencies": { - "download": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/download/-/download-7.1.0.tgz", - "integrity": "sha512-xqnBTVd/E+GxJVrX5/eUJiLYjCGPwMpdL+jGhGU57BvtcA7wwhtHVbXBeUk51kOpW3S7Jn3BQbN9Q1R1Km2qDQ==", - "requires": { - "archive-type": "^4.0.0", - "caw": "^2.0.1", - "content-disposition": "^0.5.2", - "decompress": "^4.2.0", - "ext-name": "^5.0.0", - "file-type": "^8.1.0", - "filenamify": "^2.0.0", - "get-stream": "^3.0.0", - "got": "^8.3.1", - "make-dir": "^1.2.0", - "p-event": "^2.1.0", - "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } - } - }, - "file-type": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-8.1.0.tgz", - "integrity": "sha512-qyQ0pzAy78gVoJsmYeNgl8uH8yKhr1lVhW7JbzJmnlRi0I4R2eEDEJZVKG8agpDnLpacwNbDhLNG/LMdxHD2YQ==" - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "got": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz", - "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==", - "requires": { - "@sindresorhus/is": "^0.7.0", - "cacheable-request": "^2.1.1", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "into-stream": "^3.1.0", - "is-retry-allowed": "^1.1.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "mimic-response": "^1.0.0", - "p-cancelable": "^0.4.0", - "p-timeout": "^2.0.1", - "pify": "^3.0.0", - "safe-buffer": "^5.1.1", - "timed-out": "^4.0.1", - "url-parse-lax": "^3.0.0", - "url-to-options": "^1.0.1" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } - } - }, - "p-cancelable": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz", - "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==" - }, - "p-event": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/p-event/-/p-event-2.3.1.tgz", - "integrity": "sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA==", - "requires": { - "p-timeout": "^2.0.1" - } - }, - "p-timeout": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", - "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", - "requires": { - "p-finally": "^1.0.0" - } - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" - }, - "url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "requires": { - "prepend-http": "^2.0.0" - } - } + "archive-type": "^4.0.0", + "caw": "^2.0.1", + "content-disposition": "^0.5.2", + "decompress": "^4.2.0", + "ext-name": "^5.0.0", + "file-type": "^8.1.0", + "filenamify": "^2.0.0", + "get-stream": "^3.0.0", + "got": "^8.3.1", + "make-dir": "^1.2.0", + "p-event": "^2.1.0", + "pify": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true + "node_modules/bin-wrapper/node_modules/download/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "engines": { + "node": ">=4" + } }, - "bl": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", - "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", - "requires": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" + "node_modules/bin-wrapper/node_modules/file-type": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-8.1.0.tgz", + "integrity": "sha512-qyQ0pzAy78gVoJsmYeNgl8uH8yKhr1lVhW7JbzJmnlRi0I4R2eEDEJZVKG8agpDnLpacwNbDhLNG/LMdxHD2YQ==", + "engines": { + "node": ">=6" } }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true + "node_modules/bin-wrapper/node_modules/get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", + "engines": { + "node": ">=4" + } }, - "bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", + "node_modules/bin-wrapper/node_modules/got": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz", + "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==", + "dependencies": { + "@sindresorhus/is": "^0.7.0", + "cacheable-request": "^2.1.1", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "into-stream": "^3.1.0", + "is-retry-allowed": "^1.1.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "mimic-response": "^1.0.0", + "p-cancelable": "^0.4.0", + "p-timeout": "^2.0.1", + "pify": "^3.0.0", + "safe-buffer": "^5.1.1", + "timed-out": "^4.0.1", + "url-parse-lax": "^3.0.0", + "url-to-options": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/bin-wrapper/node_modules/got/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/bin-wrapper/node_modules/into-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", + "integrity": "sha512-TcdjPibTksa1NQximqep2r17ISRiNE9fwlfbg3F8ANdvP5/yrFTew86VcO//jk4QTaMlbjypPBq76HN2zaKfZQ==", + "dependencies": { + "from2": "^2.1.1", + "p-is-promise": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/bin-wrapper/node_modules/p-cancelable": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz", + "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/bin-wrapper/node_modules/p-event": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-2.3.1.tgz", + "integrity": "sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA==", + "dependencies": { + "p-timeout": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/bin-wrapper/node_modules/p-is-promise": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", + "integrity": "sha512-zL7VE4JVS2IFSkR2GQKDSPEVxkoH43/p7oEnwpdCndKYJO0HVeRB7fA8TJwuLOTBREtK0ea8eHaxdwcpob5dmg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/bin-wrapper/node_modules/p-timeout": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", + "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/bin-wrapper/node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/bin-wrapper/node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bl/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", "dev": true }, - "body-parser": { + "node_modules/body-parser": { "version": "1.19.1", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==", "dev": true, - "requires": { + "dependencies": { "bytes": "3.1.1", "content-type": "~1.0.4", "debug": "2.6.9", @@ -3045,82 +2664,59 @@ "raw-body": "2.4.2", "type-is": "~1.6.18" }, - "dependencies": { - "bytes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", - "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "engines": { + "node": ">= 0.8" } }, - "boolbase": { + "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" }, - "bottleneck": { + "node_modules/bottleneck": { "version": "2.19.5", "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz", "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==", "dev": true }, - "brace-expansion": { + "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "requires": { + "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "^7.0.1" + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" } }, - "brorand": { + "node_modules/brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", "dev": true }, - "browser-process-hrtime": { + "node_modules/browser-process-hrtime": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "browserify-aes": { + "node_modules/browserify-aes": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "dev": true, - "requires": { + "dependencies": { "buffer-xor": "^1.0.3", "cipher-base": "^1.0.0", "create-hash": "^1.1.0", @@ -3129,208 +2725,178 @@ "safe-buffer": "^5.0.1" } }, - "browserify-cipher": { + "node_modules/browserify-cipher": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", "dev": true, - "requires": { + "dependencies": { "browserify-aes": "^1.0.4", "browserify-des": "^1.0.0", "evp_bytestokey": "^1.0.0" } }, - "browserify-des": { + "node_modules/browserify-des": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", "dev": true, - "requires": { + "dependencies": { "cipher-base": "^1.0.1", "des.js": "^1.0.0", "inherits": "^2.0.1", "safe-buffer": "^5.1.2" } }, - "browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "node_modules/browserify-rsa": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.1.tgz", + "integrity": "sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==", "dev": true, - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" + "dependencies": { + "bn.js": "^5.2.1", + "randombytes": "^2.1.0", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" } }, - "browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "node_modules/browserify-sign": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.3.tgz", + "integrity": "sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==", "dev": true, - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", + "dependencies": { + "bn.js": "^5.2.1", + "browserify-rsa": "^4.1.0", "create-hash": "^1.2.0", "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", + "elliptic": "^6.5.5", + "hash-base": "~3.0", "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } + "parse-asn1": "^5.1.7", + "readable-stream": "^2.3.8", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.12" } }, - "browserify-zlib": { + "node_modules/browserify-zlib": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", "dev": true, - "requires": { + "dependencies": { "pako": "~1.0.5" } }, - "browserslist": { + "node_modules/browserslist": { "version": "4.16.6", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", "dev": true, - "requires": { + "dependencies": { "caniuse-lite": "^1.0.30001219", "colorette": "^1.2.2", "electron-to-chromium": "^1.3.723", "escalade": "^3.1.1", "node-releases": "^1.1.71" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" } }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "node_modules/buffer": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", + "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" } }, - "buffer-alloc": { + "node_modules/buffer-alloc": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "requires": { + "dependencies": { "buffer-alloc-unsafe": "^1.1.0", "buffer-fill": "^1.0.0" } }, - "buffer-alloc-unsafe": { + "node_modules/buffer-alloc-unsafe": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" }, - "buffer-crc32": { + "node_modules/buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "engines": { + "node": "*" + } }, - "buffer-fill": { + "node_modules/buffer-fill": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=" + "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==" }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "buffer-xor": { + "node_modules/buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "builtin-modules": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", - "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", "dev": true }, - "builtin-status-codes": { + "node_modules/builtin-status-codes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", "dev": true }, - "buntstift": { + "node_modules/buntstift": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/buntstift/-/buntstift-5.0.1.tgz", "integrity": "sha512-XMw3RAybrGwYN17EkBsl+3cXGHcELKWQv4apO1hyZaUPEFfpSUXgybIlLQSTKJNSttPZkxHve/mOJak//vvIdA==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", "dev": true, - "requires": { + "dependencies": { "@types/inquirer": "8.1.3", "chalk": "4.1.2", "humanize-string": "2.1.0", "inquirer": "8.2.0", "ora": "5.4.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } } }, - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true + "node_modules/bytes": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", + "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "cacheable-request": { + "node_modules/cacheable-request": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", - "integrity": "sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0=", - "requires": { + "integrity": "sha512-vag0O2LKZ/najSoUwDbVlnlCFvhBE/7mGTY2B5FgCBDcRD+oVV1HYTOwM6JZfMg/hIcM6IwnTZ1uQQL5/X3xIQ==", + "dependencies": { "clone-response": "1.0.2", "get-stream": "3.0.0", "http-cache-semantics": "3.8.1", @@ -3338,331 +2904,443 @@ "lowercase-keys": "1.0.0", "normalize-url": "2.0.1", "responselike": "1.0.2" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", + "integrity": "sha512-RPlX0+PHuvxVDZ7xX+EBVAp4RsVxP/TdDSN2mJYdiq1Lc4Hz7EUSjUI7RZrKKlmrIzVhf6Jo2stj7++gVarS0A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cacheable-request/node_modules/normalize-url": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", + "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", + "dependencies": { + "prepend-http": "^2.0.0", + "query-string": "^5.0.1", + "sort-keys": "^2.0.0" }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cacheable-request/node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/cacheable-request/node_modules/sort-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", + "integrity": "sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==", "dependencies": { - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "lowercase-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", - "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=" - } + "is-plain-obj": "^1.0.0" + }, + "engines": { + "node": ">=4" } }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "callsites": { + "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" + "node_modules/camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "caniuse-lite": { - "version": "1.0.30001246", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001246.tgz", - "integrity": "sha512-Tc+ff0Co/nFNbLOrziBXmMVtpt9S2c2Y+Z9Nk9Khj09J+0zR9ejvIW5qkZAErCbOrVODCx/MN+GpB5FNBs5GFA==", - "dev": true + "node_modules/caniuse-lite": { + "version": "1.0.30001683", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001683.tgz", + "integrity": "sha512-iqmNnThZ0n70mNwvxpEC2nBJ037ZHZUoBI5Gorh1Mw6IlEAZujEoU1tXA628iZfzm7R9FvFzxbfdgml82a3k8Q==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] }, - "cardinal": { + "node_modules/cardinal": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz", - "integrity": "sha1-fMEFXYItISlU0HsIXeolHMe8VQU=", + "integrity": "sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==", "dev": true, - "requires": { + "dependencies": { "ansicolors": "~0.3.2", "redeyed": "~2.1.0" + }, + "bin": { + "cdl": "bin/cdl.js" } }, - "caw": { + "node_modules/caw": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/caw/-/caw-2.0.1.tgz", "integrity": "sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA==", - "requires": { + "dependencies": { "get-proxy": "^2.0.0", "isurl": "^1.0.0-alpha5", "tunnel-agent": "^0.6.0", "url-to-options": "^1.0.1" + }, + "engines": { + "node": ">=4" } }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "character-entities": { + "node_modules/character-entities": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", - "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==" + "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "character-entities-legacy": { + "node_modules/character-entities-legacy": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", - "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==" + "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "character-reference-invalid": { + "node_modules/character-reference-invalid": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", - "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==" + "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "chardet": { + "node_modules/chardet": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, - "chokidar": { + "node_modules/chokidar": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", "dev": true, - "requires": { + "dependencies": { "anymatch": "~3.1.1", "braces": "~3.0.2", - "fsevents": "~2.3.1", "glob-parent": "~5.1.0", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.5.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.1" } }, - "chownr": { + "node_modules/chownr": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", "dev": true }, - "chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true - }, - "ci-info": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", - "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", - "dev": true - }, - "cipher-base": { + "node_modules/chrome-trace-event": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "engines": { + "node": ">=6.0" + } + }, + "node_modules/cipher-base": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.5.tgz", + "integrity": "sha512-xq7ICKB4TMHUx7Tz1L9O2SGKOhYMOTR32oir45Bq28/AQTpHogKgHcoYFSdRbMtddl+ozNXfXY9jWcgYKmde0w==", + "dev": true, + "dependencies": { + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" } }, - "classnames": { + "node_modules/classnames": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz", "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" }, - "clean-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz", - "integrity": "sha1-jffHquUf02h06PjQW5GAvBGj/tc=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "clean-stack": { + "node_modules/clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "cli-cursor": { + "node_modules/cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, - "requires": { + "dependencies": { "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" } }, - "cli-spinners": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.0.tgz", - "integrity": "sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q==", - "dev": true + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "cli-table": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.6.tgz", - "integrity": "sha512-ZkNZbnZjKERTY5NwC2SeMeLeifSPq/pubeRoTpdr3WchLlnZg6hEgvHkK5zL7KNFdd9PmHN8lxrENUwI3cE8vQ==", + "node_modules/cli-table3": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", "dev": true, - "requires": { - "colors": "1.0.3" + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" } }, - "cli-width": { + "node_modules/cli-width": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true + "dev": true, + "engines": { + "node": ">= 10" + } }, - "cliui": { + "node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, - "requires": { + "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } } }, - "clone": { + "node_modules/clone": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "engines": { + "node": ">=0.8" + } }, - "clone-response": { + "node_modules/clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "requires": { + "integrity": "sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==", + "dependencies": { "mimic-response": "^1.0.0" } }, - "color": { + "node_modules/color": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/color/-/color-4.1.0.tgz", "integrity": "sha512-o2rkkxyLGgYoeUy1OodXpbPAQNmlNBrirQ8ODO8QutzDiDMNdezSOZLNnusQ6pUpCQJUsaJIo9DZJKqa2HgH7A==", - "requires": { + "dependencies": { "color-convert": "^2.0.1", "color-string": "^1.9.0" } }, - "color-convert": { + "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { + "dependencies": { "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "color-name": { + "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "color-string": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.0.tgz", - "integrity": "sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==", - "requires": { + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "dependencies": { "color-name": "^1.0.0", "simple-swizzle": "^0.2.2" } }, - "colorette": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", - "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", - "dev": true - }, - "colors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", - "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "node_modules/colorette": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", "dev": true }, - "combined-stream": { + "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { + "dependencies": { "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" } }, - "comma-separated-tokens": { + "node_modules/comma-separated-tokens": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", - "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==" + "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "command-line-args": { + "node_modules/command-line-args": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.0.tgz", "integrity": "sha512-4zqtU1hYsSJzcJBOcNZIbW5Fbk9BkjCp1pZVhQKoRaWL5J7N4XphDLwo8aWwdQpTugxwu+jf9u2ZhkXiqp5Z6A==", - "requires": { + "dependencies": { "array-back": "^3.1.0", "find-replace": "^3.0.0", "lodash.camelcase": "^4.3.0", "typical": "^4.0.0" + }, + "engines": { + "node": ">=4.0.0" } }, - "command-line-commands": { + "node_modules/command-line-commands": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/command-line-commands/-/command-line-commands-3.0.2.tgz", "integrity": "sha512-ac6PdCtdR6q7S3HN+JiVLIWGHY30PRYIEl2qPo+FuEuzwAUk0UYyimrngrg7FvF/mCr4Jgoqv5ZnHZgads50rw==", - "requires": { + "dependencies": { "array-back": "^4.0.1" }, - "dependencies": { - "array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==" - } + "engines": { + "node": ">=8" } }, - "command-line-interface": { + "node_modules/command-line-commands/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/command-line-interface": { "version": "4.0.21", "resolved": "https://registry.npmjs.org/command-line-interface/-/command-line-interface-4.0.21.tgz", "integrity": "sha512-H1J++SFiJ5nxdYLkLxtKRoijZYiSZdz67c9AUNjIlV6hqyjj6hphdpMh13sFdEziHRDDLPJfbBR6RbDgzZNhpw==", - "requires": { + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dependencies": { "@types/command-line-args": "5.2.0", "@types/command-line-commands": "2.0.1", "@types/command-line-usage": "5.0.2", @@ -3673,143 +3351,201 @@ "defekt": "7.3.2", "string-similarity": "4.0.4", "strip-indent": "3.0.0" - }, - "dependencies": { - "defekt": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/defekt/-/defekt-7.3.2.tgz", - "integrity": "sha512-4spUugjxcZTlQaHuKQWVtI+DJx1Pp+zjCD+/0vpMPjNnliowHCEYsVm4sbyzgspuB7Y8djKN/J6V+7phrCVXUQ==" - } } }, - "command-line-usage": { + "node_modules/command-line-interface/node_modules/defekt": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/defekt/-/defekt-7.3.2.tgz", + "integrity": "sha512-4spUugjxcZTlQaHuKQWVtI+DJx1Pp+zjCD+/0vpMPjNnliowHCEYsVm4sbyzgspuB7Y8djKN/J6V+7phrCVXUQ==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info." + }, + "node_modules/command-line-usage": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.1.tgz", "integrity": "sha512-F59pEuAR9o1SF/bD0dQBDluhpT4jJQNWUHEuVBqpDmCUo6gPjCi+m9fCWnWZVR/oG6cMTUms4h+3NPl74wGXvA==", - "requires": { + "dependencies": { "array-back": "^4.0.1", "chalk": "^2.4.2", "table-layout": "^1.0.1", "typical": "^5.2.0" }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/command-line-usage/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dependencies": { - "array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==" - }, - "typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==" - } + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/command-line-usage/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/command-line-usage/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/command-line-usage/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/command-line-usage/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/command-line-usage/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/command-line-usage/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/command-line-usage/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "engines": { + "node": ">=8" } }, - "commander": { + "node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, - "common-tags": { + "node_modules/common-tags": { "version": "1.8.2", "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", - "dev": true + "dev": true, + "engines": { + "node": ">=4.0.0" + } }, - "commondir": { + "node_modules/commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", "dev": true }, - "compare-func": { + "node_modules/compare-func": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", "dev": true, - "requires": { + "dependencies": { "array-ify": "^1.0.0", "dot-prop": "^5.1.0" } }, - "concat-map": { + "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, - "config-chain": { + "node_modules/config-chain": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", - "requires": { + "dependencies": { "ini": "^1.3.4", "proto-list": "~1.2.1" } }, - "console-browserify": { + "node_modules/console-browserify": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", "dev": true }, - "console-stream": { + "node_modules/console-stream": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/console-stream/-/console-stream-0.1.1.tgz", - "integrity": "sha1-oJX+B7IEZZVfL6/Si11yvM2UnUQ=" - }, - "consolidate": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.16.0.tgz", - "integrity": "sha512-Nhl1wzCslqXYTJVDyJCu3ODohy9OfBMB5uD2BiBTzd7w+QY0lBzafkR8y8755yMYHAaMD4NuzbAw03/xzfw+eQ==", - "dev": true, - "requires": { - "bluebird": "^3.7.2" - } + "integrity": "sha512-QC/8l9e6ofi6nqZ5PawlDgzmMw3OxIXtvolBzap/F4UDBJlDaZRSNbL/lb41C29FcbSJncBFlJFj2WJoNyZRfQ==" }, - "constants-browserify": { + "node_modules/constants-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", "dev": true }, - "content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "requires": { - "safe-buffer": "5.1.2" - }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" } }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "conventional-changelog-angular": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.12.tgz", - "integrity": "sha512-5GLsbnkR/7A89RyHLvvoExbiGbd9xKdKqDTrArnPbOqBqG/2wIosu0fHwpeIRI8Tl94MhVNBXcLJZl92ZQ5USw==", + "node_modules/conventional-changelog-angular": { + "version": "5.0.13", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", + "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", "dev": true, - "requires": { + "dependencies": { "compare-func": "^2.0.0", "q": "^1.5.1" + }, + "engines": { + "node": ">=10" } }, - "conventional-changelog-writer": { + "node_modules/conventional-changelog-writer": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.1.0.tgz", "integrity": "sha512-WwKcUp7WyXYGQmkLsX4QmU42AZ1lqlvRW9mqoyiQzdD+rJWbTepdWoKJuwXTS+yq79XKnQNa93/roViPQrAQgw==", "dev": true, - "requires": { + "dependencies": { "compare-func": "^2.0.0", "conventional-commits-filter": "^2.0.7", "dateformat": "^3.0.0", @@ -3821,546 +3557,135 @@ "split": "^1.0.0", "through2": "^4.0.0" }, + "bin": { + "conventional-changelog-writer": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-writer/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/conventional-commits-filter": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz", + "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==", + "dev": true, "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "hosted-git-info": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", - "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "map-obj": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.2.1.tgz", - "integrity": "sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ==", - "dev": true - }, - "meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", - "dev": true, - "requires": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - } - }, - "normalize-package-data": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.2.tgz", - "integrity": "sha512-6CdZocmfGaKnIHPVFhJJZ3GuR8SsLKvDANFp47Jmy51aKIr8akjAWTSxtpI+MBgBFdSMRyo4hMpDlT6dTffgZg==", - "dev": true, - "requires": { - "hosted-git-info": "^4.0.1", - "resolve": "^1.20.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } - } - }, - "redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dev": true, - "requires": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "dev": true - }, - "type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "conventional-commits-filter": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz", - "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==", - "dev": true, - "requires": { "lodash.ismatch": "^4.4.0", "modify-values": "^1.0.0" + }, + "engines": { + "node": ">=10" } }, - "conventional-commits-parser": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.1.tgz", - "integrity": "sha512-OG9kQtmMZBJD/32NEw5IhN5+HnBqVjy03eC+I71I0oQRFA5rOgA4OtPOYG7mz1GkCfCNxn3gKIX8EiHJYuf1cA==", + "node_modules/conventional-commits-parser": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz", + "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==", "dev": true, - "requires": { - "JSONStream": "^1.0.4", + "dependencies": { "is-text-path": "^1.0.1", + "JSONStream": "^1.0.4", "lodash": "^4.17.15", "meow": "^8.0.0", "split2": "^3.0.0", - "through2": "^4.0.0", - "trim-off-newlines": "^1.0.0" + "through2": "^4.0.0" }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "hosted-git-info": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", - "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "map-obj": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.2.1.tgz", - "integrity": "sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ==", - "dev": true - }, - "meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", - "dev": true, - "requires": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - } - }, - "normalize-package-data": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.2.tgz", - "integrity": "sha512-6CdZocmfGaKnIHPVFhJJZ3GuR8SsLKvDANFp47Jmy51aKIr8akjAWTSxtpI+MBgBFdSMRyo4hMpDlT6dTffgZg==", - "dev": true, - "requires": { - "hosted-git-info": "^4.0.1", - "resolve": "^1.20.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } - } - }, - "redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dev": true, - "requires": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "dev": true - }, - "type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } + "bin": { + "conventional-commits-parser": "cli.js" + }, + "engines": { + "node": ">=10" } }, - "convert-source-map": { + "node_modules/convert-source-map": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - }, "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } + "safe-buffer": "~5.1.1" } }, - "cookie": { + "node_modules/convert-source-map/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/cookie": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "cookie-signature": { + "node_modules/cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", "dev": true }, - "core-js": { + "node_modules/core-js": { "version": "2.6.12", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "hasInstallScript": true }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, - "cosmiconfig": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", - "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", "dev": true, - "requires": { + "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", "parse-json": "^5.0.0", "path-type": "^4.0.0", "yaml": "^1.10.0" }, - "dependencies": { - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - } + "engines": { + "node": ">=10" } }, - "create-ecdh": { + "node_modules/create-ecdh": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^4.1.0", "elliptic": "^6.5.3" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } } }, - "create-hash": { + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", + "dev": true + }, + "node_modules/create-hash": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "dev": true, - "requires": { + "dependencies": { "cipher-base": "^1.0.1", "inherits": "^2.0.1", "md5.js": "^1.3.4", @@ -4368,12 +3693,12 @@ "sha.js": "^2.4.0" } }, - "create-hmac": { + "node_modules/create-hmac": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "dev": true, - "requires": { + "dependencies": { "cipher-base": "^1.0.3", "create-hash": "^1.1.0", "inherits": "^2.0.1", @@ -4382,28 +3707,22 @@ "sha.js": "^2.4.8" } }, - "create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "cross-spawn": { + "node_modules/cross-spawn": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { + "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", + "dependencies": { "lru-cache": "^4.0.1", "shebang-command": "^1.2.0", "which": "^1.2.9" } }, - "crypto-browserify": { + "node_modules/crypto-browserify": { "version": "3.12.0", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", "dev": true, - "requires": { + "dependencies": { "browserify-cipher": "^1.0.0", "browserify-sign": "^4.0.0", "create-ecdh": "^4.0.0", @@ -4415,190 +3734,271 @@ "public-encrypt": "^4.0.0", "randombytes": "^2.0.0", "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" } }, - "crypto-random-string": { + "node_modules/crypto-random-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "css-jss": { + "node_modules/css-jss": { "version": "10.7.1", "resolved": "https://registry.npmjs.org/css-jss/-/css-jss-10.7.1.tgz", "integrity": "sha512-lD4Gc27F4lXA9eIzbj9cdS+E7ePe0D6o6sbyOJ6p3j7BW/C3zhMHfIumbVWlAkmfOjxFTnVYIx78/suL+yCNkg==", - "requires": { + "dependencies": { "@babel/runtime": "^7.3.1", "jss": "10.7.1", "jss-preset-default": "10.7.1" } }, - "css-select": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz", - "integrity": "sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==", - "requires": { + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dependencies": { "boolbase": "^1.0.0", - "css-what": "^5.0.0", - "domhandler": "^4.2.0", - "domutils": "^2.6.0", - "nth-check": "^2.0.0" + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" } }, - "css-tree": { + "node_modules/css-tree": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "requires": { + "dependencies": { "mdn-data": "2.0.14", "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" } }, - "css-vendor": { + "node_modules/css-vendor": { "version": "2.0.8", "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-2.0.8.tgz", "integrity": "sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ==", - "requires": { + "dependencies": { "@babel/runtime": "^7.8.3", "is-in-browser": "^1.0.2" } }, - "css-what": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", - "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==" + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } }, - "css.escape": { + "node_modules/css.escape": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", - "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=", - "dev": true - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", "dev": true }, - "cssnano-preset-simple": { + "node_modules/cssnano-preset-simple": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/cssnano-preset-simple/-/cssnano-preset-simple-2.0.0.tgz", "integrity": "sha512-HkufSLkaBJbKBFx/7aj5HmCK9Ni/JedRQm0mT2qBzMG/dEuJOLnMt2lK6K1rwOOyV4j9aSY+knbW9WoS7BYpzg==", "dev": true, - "requires": { + "dependencies": { "caniuse-lite": "^1.0.30001202" + }, + "peerDependencies": { + "postcss": "^8.2.1" } }, - "cssnano-simple": { + "node_modules/cssnano-simple": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/cssnano-simple/-/cssnano-simple-2.0.0.tgz", "integrity": "sha512-0G3TXaFxlh/szPEG/o3VcmCwl0N3E60XNb9YZZijew5eIs6fLjJuOPxQd9yEBaX2p/YfJtt49i4vYi38iH6/6w==", "dev": true, - "requires": { + "dependencies": { "cssnano-preset-simple": "^2.0.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" } }, - "csso": { + "node_modules/csso": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "requires": { + "dependencies": { "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" } }, - "cssom": { + "node_modules/cssom": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==" }, - "cssstyle": { + "node_modules/cssstyle": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "requires": { + "dependencies": { "cssom": "~0.3.6" }, - "dependencies": { - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" - } + "engines": { + "node": ">=8" } }, - "csstype": { + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + }, + "node_modules/csstype": { "version": "3.0.10", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz", "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==" }, - "currently-unhandled": { + "node_modules/currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "requires": { + "integrity": "sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==", + "dependencies": { "array-find-index": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "data-uri-to-buffer": { + "node_modules/data-uri-to-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==", - "dev": true + "dev": true, + "engines": { + "node": ">= 6" + } }, - "data-urls": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.1.tgz", - "integrity": "sha512-Ds554NeT5Gennfoo9KN50Vh6tpgtvYEwraYjejXnyTpu1C7oXKxdFk75REooENHE8ndTVOJuv+BEs4/J/xcozw==", - "requires": { - "abab": "^2.0.3", + "node_modules/data-urls": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", + "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", + "dependencies": { + "abab": "^2.0.6", "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^10.0.0" + "whatwg-url": "^11.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/data-urls/node_modules/whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "dependencies": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" } }, - "dateformat": { + "node_modules/dateformat": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", - "dev": true + "dev": true, + "engines": { + "node": "*" + } }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" } }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + "node_modules/decamelize": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz", + "integrity": "sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==", + "dev": true, + "dependencies": { + "xregexp": "4.0.0" + }, + "engines": { + "node": ">=4" + } }, - "decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", + "node_modules/decamelize-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", "dev": true, - "requires": { + "dependencies": { "decamelize": "^1.1.0", "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decamelize-keys/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==" + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" }, - "decompress": { + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/decompress": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz", "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==", - "requires": { + "dependencies": { "decompress-tar": "^4.0.0", "decompress-tarbz2": "^4.0.0", "decompress-targz": "^4.0.0", @@ -4607,112 +4007,175 @@ "make-dir": "^1.0.0", "pify": "^2.3.0", "strip-dirs": "^2.0.0" + }, + "engines": { + "node": ">=4" } }, - "decompress-response": { + "node_modules/decompress-response": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "requires": { + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dependencies": { "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" } }, - "decompress-tar": { + "node_modules/decompress-tar": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", - "requires": { + "dependencies": { "file-type": "^5.2.0", "is-stream": "^1.1.0", "tar-stream": "^1.5.2" + }, + "engines": { + "node": ">=4" } }, - "decompress-tarbz2": { + "node_modules/decompress-tarbz2": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", - "requires": { + "dependencies": { "decompress-tar": "^4.1.0", "file-type": "^6.1.0", "is-stream": "^1.1.0", "seek-bzip": "^1.0.5", "unbzip2-stream": "^1.0.9" }, - "dependencies": { - "file-type": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", - "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==" - } + "engines": { + "node": ">=4" } }, - "decompress-targz": { + "node_modules/decompress-tarbz2/node_modules/file-type": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", + "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-targz": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", - "requires": { + "dependencies": { "decompress-tar": "^4.1.1", "file-type": "^5.2.0", "is-stream": "^1.1.0" + }, + "engines": { + "node": ">=4" } }, - "decompress-unzip": { + "node_modules/decompress-unzip": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", - "integrity": "sha1-3qrM39FK6vhVePczroIQ+bSEj2k=", - "requires": { + "integrity": "sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==", + "dependencies": { "file-type": "^3.8.0", "get-stream": "^2.2.0", "pify": "^2.3.0", "yauzl": "^2.4.2" }, - "dependencies": { - "file-type": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", - "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=" - } + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-unzip/node_modules/file-type": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", + "integrity": "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress-unzip/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" } }, - "deep-extend": { + "node_modules/deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "engines": { + "node": ">=4.0.0" + } }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", "dev": true, - "requires": { + "dependencies": { "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "defekt": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/defekt/-/defekt-7.3.2.tgz", - "integrity": "sha512-4spUugjxcZTlQaHuKQWVtI+DJx1Pp+zjCD+/0vpMPjNnliowHCEYsVm4sbyzgspuB7Y8djKN/J6V+7phrCVXUQ==" + "node_modules/defekt": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/defekt/-/defekt-8.0.0.tgz", + "integrity": "sha512-z/eZ+HW+LmE1bg6sk0OmuynS7EoJBgqUaDBNYiOqKgxqB6kl2blpTPXb6K578SpWbbg1SusBrxSruRer6de/Pw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info." }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dev": true, - "requires": { - "object-keys": "^1.0.12" + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "del": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", - "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/del": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", "dev": true, - "requires": { + "dependencies": { "globby": "^11.0.1", "graceful-fs": "^4.2.4", "is-glob": "^4.0.1", @@ -4722,261 +4185,210 @@ "rimraf": "^3.0.2", "slash": "^3.0.0" }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/del/node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, "dependencies": { - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "delayed-stream": { + "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "depcheck": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/depcheck/-/depcheck-1.4.1.tgz", - "integrity": "sha512-ecX8zIXE9TlVu14ebnZTwgIeP/t/Rq2WpowjWbMuqG6ayozVVf9zKW4EBEQ/HsS1dxhY+J9+UiRetu2UMxG9ww==", - "dev": true, - "requires": { - "@babel/parser": "^7.12.5", - "@babel/traverse": "^7.12.5", - "@vue/compiler-sfc": "^3.0.5", - "camelcase": "^6.2.0", - "cosmiconfig": "^7.0.0", - "debug": "^4.2.0", - "deps-regex": "^0.1.4", - "ignore": "^5.1.8", - "js-yaml": "^3.14.0", - "json5": "^2.1.3", - "lodash": "^4.17.20", - "minimatch": "^3.0.4", - "multimatch": "^5.0.0", - "please-upgrade-node": "^3.2.0", - "query-ast": "^1.0.3", - "readdirp": "^3.5.0", - "require-package-name": "^2.0.1", - "resolve": "^1.18.1", - "sass": "^1.29.0", - "scss-parser": "^1.0.4", - "semver": "^7.3.2", - "yargs": "^16.1.0" - }, - "dependencies": { - "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "dev": true - }, - "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" } }, - "depd": { + "node_modules/depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "deprecation": { + "node_modules/deprecation": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", "dev": true }, - "deps-regex": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deps-regex/-/deps-regex-0.1.4.tgz", - "integrity": "sha1-UYZnt2kUYKXn4KNBvnbrfOgJAYQ=", - "dev": true - }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "node_modules/des.js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0" } }, - "destroy": { + "node_modules/destroy": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==", "dev": true }, - "devtools-protocol": { + "node_modules/devtools-protocol": { "version": "0.0.937139", "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.937139.tgz", "integrity": "sha512-daj+rzR3QSxsPRy5vjjthn58axO8c11j58uY0lG5vvlJk/EiOdCWOptGdkXDjtuRHr78emKq0udHCXM4trhoDQ==", "dev": true }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true - }, - "diffie-hellman": { + "node_modules/diffie-hellman": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^4.1.0", "miller-rabin": "^4.0.0", "randombytes": "^2.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } } }, - "dir-glob": { + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", + "dev": true + }, + "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "requires": { + "dependencies": { "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "dom-helpers": { + "node_modules/dom-helpers": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", - "requires": { + "dependencies": { "@babel/runtime": "^7.8.7", "csstype": "^3.0.2" } }, - "dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", - "requires": { + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "domain-browser": { + "node_modules/domain-browser": { "version": "4.19.0", "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-4.19.0.tgz", "integrity": "sha512-fRA+BaAWOR/yr/t7T9E9GJztHPeFjj8U35ajyAjCDtAAnTn1Rc1f6W6VGPJrO1tkQv9zWu+JRof7z6oQtiYVFQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://bevry.me/fund" + } }, - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] }, - "domexception": { + "node_modules/domexception": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", - "requires": { + "deprecated": "Use your platform's native DOMException instead", + "dependencies": { "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" } }, - "domhandler": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.2.tgz", - "integrity": "sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w==", - "requires": { + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dependencies": { "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" } }, - "domutils": { + "node_modules/domutils": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "requires": { + "dependencies": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" } }, - "dot-prop": { + "node_modules/dot-prop": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", "dev": true, - "requires": { + "dependencies": { "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, - "dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", - "dev": true - }, - "download": { + "node_modules/download": { "version": "6.2.5", "resolved": "https://registry.npmjs.org/download/-/download-6.2.5.tgz", "integrity": "sha512-DpO9K1sXAST8Cpzb7kmEhogJxymyVUd5qz/vCOSyvwtp2Klj2XcDt5YUuasgxka44SxF0q5RriKIwJmQHG2AuA==", - "requires": { + "dependencies": { "caw": "^2.0.0", "content-disposition": "^0.5.2", "decompress": "^4.0.0", @@ -4989,57 +4401,64 @@ "p-event": "^1.0.0", "pify": "^3.0.0" }, - "dependencies": { - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } + "engines": { + "node": ">=4" } }, - "duplexer": { + "node_modules/download/node_modules/get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/download/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", "dev": true }, - "duplexer2": { + "node_modules/duplexer2": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", "dev": true, - "requires": { + "dependencies": { "readable-stream": "^2.0.2" } }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==" }, - "ee-first": { + "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", "dev": true }, - "electron-to-chromium": { - "version": "1.3.785", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.785.tgz", - "integrity": "sha512-WmCgAeURsMFiyoJ646eUaJQ7GNfvMRLXo+GamUyKVNEM4MqTAsXyC0f38JEB4N3BtbD0tlAKozGP5E2T9K3YGg==", + "node_modules/electron-to-chromium": { + "version": "1.5.64", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.64.tgz", + "integrity": "sha512-IXEuxU+5ClW2IGEYFC2T7szbyVgehupCWQe5GNh+H065CD6U6IFN0s4KeAMFGNmQolRU4IV7zGBWSYMmZ8uuqQ==", "dev": true }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "node_modules/elliptic": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz", + "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^4.11.9", "brorand": "^1.1.0", "hash.js": "^1.0.0", @@ -5047,855 +4466,416 @@ "inherits": "^2.0.4", "minimalistic-assert": "^1.0.1", "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } } }, - "emoji-regex": { + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", + "dev": true + }, + "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "emojis-list": { + "node_modules/emojis-list": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true + "integrity": "sha512-knHEZMgs8BB+MInokmNTg/OyPlAddghe1YBgNwJBc5zsJi/uyIcXoSDsL/W9ymOsBoBGdPIHXYJ9+qKFwRwDng==", + "dev": true, + "engines": { + "node": ">= 0.10" + } }, - "encodeurl": { + "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "encoding": { + "node_modules/encoding": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "dev": true, - "requires": { + "dependencies": { "iconv-lite": "^0.6.2" - }, + } + }, + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, "dependencies": { - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "end-of-stream": { + "node_modules/end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { + "dependencies": { "once": "^1.4.0" } }, - "enhanced-resolve": { - "version": "5.8.2", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz", - "integrity": "sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA==", + "node_modules/enhanced-resolve": { + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", "dev": true, - "requires": { + "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" } }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "requires": { - "ansi-colors": "^4.1.1" + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" - }, - "env-ci": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-5.0.2.tgz", - "integrity": "sha512-Xc41mKvjouTXD3Oy9AqySz1IeyvJvHZ20Twf5ZLYbNpPPIuCnL/qHCmNlD01LoNy0JTunw9HPYVptD19Ac7Mbw==", + "node_modules/env-ci": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-5.5.0.tgz", + "integrity": "sha512-o0JdWIbOLP+WJKIUt36hz1ImQQFuN92nhsfTkHHap+J8CiI8WgGpH/a9jEGHh4/TU5BUUGjlnKXNoDb57+ne+A==", "dev": true, - "requires": { - "execa": "^4.0.0", + "dependencies": { + "execa": "^5.0.0", + "fromentries": "^1.3.2", "java-properties": "^1.0.0" }, - "dependencies": { - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } + "engines": { + "node": ">=10.17" } }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "^0.2.1" - }, + "node_modules/env-ci/node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, "dependencies": { - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - } + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" } }, - "es-abstract": { - "version": "1.18.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz", - "integrity": "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==", + "node_modules/env-ci/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "is-callable": "^1.2.3", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.3", - "is-string": "^1.0.6", - "object-inspect": "^1.10.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - } - }, - "es-module-lexer": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.7.1.tgz", - "integrity": "sha512-MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw==", - "dev": true + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "node_modules/env-ci/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "es6-object-assign": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", - "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=", - "dev": true - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "requires": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" + "node_modules/env-ci/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" } }, - "eslint": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.27.0.tgz", - "integrity": "sha512-JZuR6La2ZF0UD384lcbnd0Cgg6QJjiCwhMD6eU4h/VGPcVGwawNNzKU41tgokGXnfjOOyI6QIffthhJTPzzuRA==", + "node_modules/env-ci/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, - "requires": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.1", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" + "engines": { + "node": ">=8" }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "globals": { - "version": "13.10.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", - "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "eslint-config-es": { - "version": "3.28.30", - "resolved": "https://registry.npmjs.org/eslint-config-es/-/eslint-config-es-3.28.30.tgz", - "integrity": "sha512-vroJ4qECOdykhn+LLDC+GAeTue+va0XqNgbCppMXN+V91M4K6dgv/pksw3pikh05roG+3DCHIl929WBLETp8dQ==", + "node_modules/env-ci/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, - "requires": { - "@typescript-eslint/eslint-plugin": "4.22.1", - "@typescript-eslint/parser": "4.22.1", - "eslint-plugin-extended": "0.2.0", - "eslint-plugin-mocha": "8.1.0", - "eslint-plugin-react": "7.23.2", - "eslint-plugin-unicorn": "31.0.0" + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "eslint-plugin-extended": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-extended/-/eslint-plugin-extended-0.2.0.tgz", - "integrity": "sha1-iqM1eXaAPBHGQgPVudJkIlfjiBk=", + "node_modules/env-ci/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, - "requires": { - "varname": "2.0.2" + "engines": { + "node": ">=8" } }, - "eslint-plugin-mocha": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-8.1.0.tgz", - "integrity": "sha512-1EgHvXKRl7W3mq3sntZAi5T24agRMyiTPL4bSXe+B4GksYOjAPEWYx+J3eJg4It1l2NMNZJtk0gQyQ6mfiPhQg==", + "node_modules/env-ci/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, - "requires": { - "eslint-utils": "^2.1.0", - "ramda": "^0.27.1" + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "eslint-plugin-react": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.23.2.tgz", - "integrity": "sha512-AfjgFQB+nYszudkxRkTFu0UR1zEQig0ArVMPloKhxwlwkzaw/fBiH0QWcBBhZONlXqQC51+nfqFrkn4EzHcGBw==", + "node_modules/env-ci/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, - "requires": { - "array-includes": "^3.1.3", - "array.prototype.flatmap": "^1.2.4", - "doctrine": "^2.1.0", - "has": "^1.0.3", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.0.4", - "object.entries": "^1.1.3", - "object.fromentries": "^2.0.4", - "object.values": "^1.1.3", - "prop-types": "^15.7.2", - "resolve": "^2.0.0-next.3", - "string.prototype.matchall": "^4.0.4" - }, - "dependencies": { - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "resolve": { - "version": "2.0.0-next.3", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", - "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", - "dev": true, - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - } + "engines": { + "node": ">=8" } }, - "eslint-plugin-unicorn": { - "version": "31.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-31.0.0.tgz", - "integrity": "sha512-HR3gI4ANtV8A+0FLAaxjBD/G5J3PWBo+7OswyGeK5nylGqtKLJVbnPksIkBgmVg+SFpxu5MnjaxQQI+9KjyVAg==", + "node_modules/env-ci/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, - "requires": { - "ci-info": "^3.1.1", - "clean-regexp": "^1.0.0", - "eslint-template-visitor": "^2.3.2", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "import-modules": "^2.1.0", - "is-builtin-module": "^3.1.0", - "lodash": "^4.17.21", - "pluralize": "^8.0.0", - "read-pkg-up": "^7.0.1", - "regexp-tree": "^0.1.23", - "reserved-words": "^0.1.2", - "safe-regex": "^2.1.1", - "semver": "^7.3.5" + "dependencies": { + "isexe": "^2.0.0" }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } + "is-arrayish": "^0.2.1" } }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, "dependencies": { - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - } + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" } }, - "eslint-template-visitor": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/eslint-template-visitor/-/eslint-template-visitor-2.3.2.tgz", - "integrity": "sha512-3ydhqFpuV7x1M9EK52BPNj6V0Kwu0KKkcIAfpUhwHbR8ocRln/oUHgfxQupY8O1h4Qv/POHDumb/BwwNfxbtnA==", + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", "dev": true, - "requires": { - "@babel/core": "^7.12.16", - "@babel/eslint-parser": "^7.12.16", - "eslint-visitor-keys": "^2.0.0", - "esquery": "^1.3.1", - "multimap": "^1.1.0" + "engines": { + "node": ">= 0.4" } }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "node_modules/es-module-lexer": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", + "dev": true + }, + "node_modules/es6-object-assign": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", + "integrity": "sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } + "engines": { + "node": ">=6" } }, - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", "dev": true }, - "espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "dev": true, - "requires": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-scope/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" } }, - "esprima": { + "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" } }, - "esrecurse": { + "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, - "requires": { + "dependencies": { "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" } }, - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } }, - "estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true - }, - "esutils": { + "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } }, - "etag": { + "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "eventemitter3": { + "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" }, - "events": { + "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.8.x" + } }, - "evp_bytestokey": { + "node_modules/evp_bytestokey": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "dev": true, - "requires": { + "dependencies": { "md5.js": "^1.3.4", "safe-buffer": "^5.1.1" } }, - "execa": { + "node_modules/execa": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "requires": { + "integrity": "sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==", + "dependencies": { "cross-spawn": "^5.0.1", "get-stream": "^3.0.0", "is-stream": "^1.1.0", @@ -5904,28 +4884,43 @@ "signal-exit": "^3.0.0", "strip-eof": "^1.0.0" }, - "dependencies": { - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - } + "engines": { + "node": ">=4" + } + }, + "node_modules/execa/node_modules/get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", + "engines": { + "node": ">=4" } }, - "executable": { + "node_modules/executable": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", - "requires": { + "dependencies": { "pify": "^2.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/executable/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" } }, - "express": { + "node_modules/express": { "version": "4.17.2", "resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz", "integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==", "dev": true, - "requires": { + "dependencies": { "accepts": "~1.3.7", "array-flatten": "1.1.1", "body-parser": "1.19.1", @@ -5957,194 +4952,220 @@ "utils-merge": "1.0.1", "vary": "~1.1.2" }, - "dependencies": { - "content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dev": true, - "requires": { - "safe-buffer": "5.2.1" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - } + "engines": { + "node": ">= 0.10.0" } }, - "ext-list": { + "node_modules/ext-list": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz", "integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==", - "requires": { + "dependencies": { "mime-db": "^1.28.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "ext-name": { + "node_modules/ext-name": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz", "integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==", - "requires": { + "dependencies": { "ext-list": "^2.0.0", "sort-keys-length": "^1.0.0" + }, + "engines": { + "node": ">=4" } }, - "external-editor": { + "node_modules/external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, - "requires": { + "dependencies": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" } }, - "extract-zip": { + "node_modules/extract-zip": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", "dev": true, - "requires": { - "@types/yauzl": "^2.9.1", + "dependencies": { "debug": "^4.1.1", "get-stream": "^5.1.0", "yauzl": "^2.10.0" }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extract-zip/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true } } }, - "fast-deep-equal": { + "node_modules/extract-zip/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/extract-zip/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, - "fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", - "requires": { + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" } }, - "fast-json-stable-stringify": { + "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "fastq": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.1.tgz", - "integrity": "sha512-HOnr8Mc60eNYl1gzwp6r5RoUyAn5/glBolUzP/Ez6IFVPMPirxn/9phgL6zhOtaTy7ISwPvQ+wT+hfcRZh/bzw==", - "requires": { + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dependencies": { "reusify": "^1.0.4" } }, - "fault": { + "node_modules/fault": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz", "integrity": "sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==", - "requires": { + "dependencies": { "format": "^0.2.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "fd-slicer": { + "node_modules/fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "requires": { + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dependencies": { "pend": "~1.2.0" } }, - "figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", - "requires": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" - } - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, - "requires": { - "flat-cache": "^3.0.4" + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "file-type": { + "node_modules/file-type": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", - "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=" + "integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==", + "engines": { + "node": ">=4" + } }, - "filename-reserved-regex": { + "node_modules/filename-reserved-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", - "integrity": "sha1-q/c9+rc10EVECr/qLZHzieu/oik=" + "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==", + "engines": { + "node": ">=4" + } }, - "filenamify": { + "node_modules/filenamify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-2.1.0.tgz", "integrity": "sha512-ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA==", - "requires": { + "dependencies": { "filename-reserved-regex": "^2.0.0", "strip-outer": "^1.0.0", "trim-repeated": "^1.0.0" + }, + "engines": { + "node": ">=4" } }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "requires": { + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "finalhandler": { + "node_modules/finalhandler": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", "dev": true, - "requires": { + "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", @@ -6153,362 +5174,428 @@ "statuses": "~1.5.0", "unpipe": "~1.0.0" }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "engines": { + "node": ">= 0.8" } }, - "find-cache-dir": { + "node_modules/find-cache-dir": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", "dev": true, - "requires": { + "dependencies": { "commondir": "^1.0.1", "make-dir": "^3.0.2", "pkg-dir": "^4.1.0" }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-cache-dir/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, "dependencies": { - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-cache-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" } }, - "find-replace": { + "node_modules/find-replace": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", - "requires": { + "dependencies": { "array-back": "^3.0.1" + }, + "engines": { + "node": ">=4.0.0" } }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "find-versions": { + "node_modules/find-versions": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz", "integrity": "sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==", - "requires": { + "dependencies": { "semver-regex": "^2.0.0" + }, + "engines": { + "node": ">=6" } }, - "findsuggestions": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/findsuggestions/-/findsuggestions-1.0.0.tgz", - "integrity": "sha512-ufg8Pfz0gx9jsiW82ADNC1lfNYPA/Cfl/OIWB+v+qnEIZd4SQVL8W/sEpSyLm879Ib9AFuH9iSmdD5+TWyhUzA==", + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", "dev": true, - "requires": { - "leven": "2.1.0" + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } } }, - "flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, "dependencies": { - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } + "is-callable": "^1.1.3" } }, - "flatted": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.1.tgz", - "integrity": "sha512-OMQjaErSFHmHqZe+PSidH5n8j3O0F2DdnVh8JB4j4eUQ2k6KvB0qGfrKIhapvez5JerBbmWkaLYUYWISaESoXg==", - "dev": true - }, - "follow-redirects": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.3.tgz", - "integrity": "sha512-3MkHxknWMUtb23apkgz/83fDoe+y+qr0TdgacGIA7bew+QLBo3vdgEN2xEsuXNivpFy4CyDhBBZnNZOtalmenw==", - "dev": true - }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", - "dev": true - }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "requires": { + "node_modules/form-data": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" } }, - "format": { + "node_modules/format": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", - "integrity": "sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=" + "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==", + "engines": { + "node": ">=0.4.x" + } }, - "forwarded": { + "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "fresh": { + "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "from2": { + "node_modules/from2": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "requires": { + "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", + "dependencies": { "inherits": "^2.0.1", "readable-stream": "^2.0.0" } }, - "fs-constants": { + "node_modules/fromentries": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", + "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, - "fs-extra": { + "node_modules/fs-extra": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", - "requires": { + "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" } }, - "fs.realpath": { + "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, - "generic-names": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/generic-names/-/generic-names-2.0.1.tgz", - "integrity": "sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ==", + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, - "requires": { - "loader-utils": "^1.1.0" + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "get-caller-file": { + "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "get-orientation": { + "node_modules/get-orientation": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/get-orientation/-/get-orientation-1.1.2.tgz", "integrity": "sha512-/pViTfifW+gBbh/RnlFYHINvELT9Znt+SYyDKAUL6uV6By019AK/s+i9XP4jSwq7lwP38Fd8HVeTxym3+hkwmQ==", "dev": true, - "requires": { + "dependencies": { "stream-parser": "^0.3.1" } }, - "get-port": { + "node_modules/get-port": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "get-proxy": { + "node_modules/get-proxy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/get-proxy/-/get-proxy-2.1.0.tgz", "integrity": "sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw==", - "requires": { + "dependencies": { "npm-conf": "^1.1.0" + }, + "engines": { + "node": ">=4" } }, - "get-stdin": { + "node_modules/get-stdin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" + "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==", + "engines": { + "node": ">=0.10.0" + } }, - "get-stream": { + "node_modules/get-stream": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", - "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=", - "requires": { + "integrity": "sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==", + "dependencies": { "object-assign": "^4.0.1", "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "git-log-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/git-log-parser/-/git-log-parser-1.2.0.tgz", - "integrity": "sha1-LmpMGxP8AAKCB7p5WnrDFme5/Uo=", + "node_modules/git-log-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/git-log-parser/-/git-log-parser-1.2.1.tgz", + "integrity": "sha512-PI+sPDvHXNPl5WNOErAK05s3j0lgwUzMN6o8cyQrDaKfT3qd7TmNJKeXX+SknI5I0QhG5fVPAEwSY4tRGDtYoQ==", "dev": true, - "requires": { + "dependencies": { "argv-formatter": "~1.0.0", "spawn-error-forwarder": "~1.0.0", "split2": "~1.0.0", "stream-combiner2": "~1.1.1", "through2": "~2.0.0", - "traverse": "~0.6.6" - }, + "traverse": "0.6.8" + } + }, + "node_modules/git-log-parser/node_modules/split2": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-1.0.0.tgz", + "integrity": "sha512-NKywug4u4pX/AZBB1FCPzZ6/7O+Xhz1qMVbzTvvKvikjO99oPN87SkK08mEY9P63/5lWjK+wgOOgApnTg5r6qg==", + "dev": true, "dependencies": { - "split2": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-1.0.0.tgz", - "integrity": "sha1-UuLiIdiMdfmnP5BVbiY/+WdysxQ=", - "dev": true, - "requires": { - "through2": "~2.0.0" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } + "through2": "~2.0.0" + } + }, + "node_modules/git-log-parser/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } }, - "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, - "requires": { + "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "glob-parent": { + "node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "requires": { + "dependencies": { "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" } }, - "glob-to-regexp": { + "node_modules/glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } }, - "globby": { + "node_modules/globby": { "version": "11.0.4", "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", - "requires": { + "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", "fast-glob": "^3.1.1", "ignore": "^5.1.4", "merge2": "^1.3.0", "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "got": { + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", - "requires": { + "dependencies": { "decompress-response": "^3.2.0", "duplexer3": "^0.1.4", "get-stream": "^3.0.0", @@ -6524,424 +5611,575 @@ "url-parse-lax": "^1.0.0", "url-to-options": "^1.0.1" }, - "dependencies": { - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - } + "engines": { + "node": ">=4" } }, - "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" + "node_modules/got/node_modules/get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", + "engines": { + "node": ">=4" + } }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, - "gzip-size": { + "node_modules/gzip-size": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", "dev": true, - "requires": { + "dependencies": { "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", "dev": true, - "requires": { + "dependencies": { "minimist": "^1.2.5", - "neo-async": "^2.6.0", + "neo-async": "^2.6.2", "source-map": "^0.6.1", - "uglify-js": "^3.1.4", "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" } }, - "hard-rejection": { + "node_modules/hard-rejection": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" + "dev": true, + "engines": { + "node": ">=6" } }, - "has-ansi": { + "node_modules/has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "requires": { + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "dependencies": { "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "node_modules/has-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "engines": { + "node": ">=0.10.0" + } }, - "has-symbol-support-x": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", - "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==" + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } }, - "has-symbols": { + "node_modules/has-property-descriptors": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbol-support-x": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", + "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==", + "engines": { + "node": "*" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "has-to-string-tag-x": { + "node_modules/has-to-string-tag-x": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", - "requires": { + "dependencies": { "has-symbol-support-x": "^1.4.1" + }, + "engines": { + "node": "*" } }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "hash-sum": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz", - "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", - "dev": true + "node_modules/hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": ">=4" + } }, - "hash.js": { + "node_modules/hash.js": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.3", "minimalistic-assert": "^1.0.1" } }, - "hast-util-parse-selector": { + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hast-util-parse-selector": { "version": "2.2.5", "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", - "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==" + "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, - "hastscript": { + "node_modules/hastscript": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", - "requires": { + "dependencies": { "@types/hast": "^2.0.0", "comma-separated-tokens": "^1.0.0", "hast-util-parse-selector": "^2.0.0", "property-information": "^5.0.0", "space-separated-tokens": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "he": { + "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true + "dev": true, + "bin": { + "he": "bin/he" + } }, - "highlight-words-core": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/highlight-words-core/-/highlight-words-core-1.2.2.tgz", - "integrity": "sha512-BXUKIkUuh6cmmxzi5OIbUJxrG8OAk2MqoL1DtO3Wo9D2faJg2ph5ntyuQeLqaHJmzER6H5tllCDA9ZnNe9BVGg==" + "node_modules/highlight-words-core": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/highlight-words-core/-/highlight-words-core-1.2.3.tgz", + "integrity": "sha512-m1O9HW3/GNHxzSIXWw1wCNXXsgLlxrP0OI6+ycGUhiUHkikqW3OrwVHz+lxeNBe5yqLESdIcj8PowHQ2zLvUvQ==" }, - "highlight.js": { + "node_modules/highlight.js": { "version": "10.7.3", "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", - "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==" + "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "engines": { + "node": "*" + } }, - "hmac-drbg": { + "node_modules/hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", "dev": true, - "requires": { + "dependencies": { "hash.js": "^1.0.3", "minimalistic-assert": "^1.0.0", "minimalistic-crypto-utils": "^1.0.1" } }, - "hoist-non-react-statics": { + "node_modules/hoist-non-react-statics": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "requires": { - "react-is": "^16.7.0" - }, "dependencies": { - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - } + "react-is": "^16.7.0" } }, - "hook-std": { + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/hook-std": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/hook-std/-/hook-std-2.0.0.tgz", "integrity": "sha512-zZ6T5WcuBMIUVh49iPQS9t977t7C0l7OtHrpeMb5uk48JdflRX0NSFvCekfYNmGQETnLq9W/isMyHl69kxGi8g==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hosted-git-info/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, - "html-encoding-sniffer": { + "node_modules/html-encoding-sniffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", - "requires": { + "dependencies": { "whatwg-encoding": "^2.0.0" + }, + "engines": { + "node": ">=12" } }, - "http-cache-semantics": { + "node_modules/http-cache-semantics": { "version": "3.8.1", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==" }, - "http-errors": { + "node_modules/http-errors": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", "dev": true, - "requires": { + "dependencies": { "depd": "~1.1.2", "inherits": "2.0.4", "setprototypeof": "1.2.0", "statuses": ">= 1.5.0 < 2", "toidentifier": "1.0.1" }, - "dependencies": { - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true - } + "engines": { + "node": ">= 0.6" } }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "requires": { - "@tootallnate/once": "1", + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dependencies": { + "@tootallnate/once": "2", "agent-base": "6", "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-agent/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "https-browserify": { + "node_modules/http-proxy-agent/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", "dev": true }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "requires": { + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dependencies": { "agent-base": "6", "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "human-signals": { + "node_modules/https-proxy-agent/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/human-signals": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true + "dev": true, + "engines": { + "node": ">=8.12.0" + } }, - "humanize-string": { + "node_modules/humanize-string": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/humanize-string/-/humanize-string-2.1.0.tgz", "integrity": "sha512-sQ+hqmxyXW8Cj7iqxcQxD7oSy3+AXnIZXdUF9lQMkzaG8dtbKAB8U7lCtViMnwQ+MpdCKsO2Kiij3G6UUXq/Xg==", "dev": true, - "requires": { + "dependencies": { "decamelize": "^2.0.0" }, - "dependencies": { - "decamelize": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz", - "integrity": "sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==", - "dev": true, - "requires": { - "xregexp": "4.0.0" - } - } + "engines": { + "node": ">=6" } }, - "hyphenate-style-name": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz", - "integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==" + "node_modules/hyphenate-style-name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.1.0.tgz", + "integrity": "sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw==" }, - "iconv-lite": { + "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, - "requires": { + "dependencies": { "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" } }, - "icss-replace-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", - "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", - "dev": true - }, - "icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true - }, - "ieee754": { + "node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==" + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "engines": { + "node": ">= 4" + } }, - "image-size": { + "node_modules/image-size": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.0.0.tgz", "integrity": "sha512-JLJ6OwBfO1KcA+TvJT+v8gbE6iWbj24LyDNFgFEN0lzegn6cC6a/p3NIDaepMsJjQjlUWqIC7wJv8lBFxPNjcw==", "dev": true, - "requires": { + "dependencies": { "queue": "6.0.2" + }, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=12.0.0" } }, - "import-fresh": { + "node_modules/import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, - "requires": { + "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" } }, - "import-from": { + "node_modules/import-from": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz", "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==", "dev": true, - "requires": { + "dependencies": { "resolve-from": "^5.0.0" }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } + "engines": { + "node": ">=8" } }, - "import-lazy": { + "node_modules/import-lazy": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-3.1.0.tgz", - "integrity": "sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ==" - }, - "import-modules": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-modules/-/import-modules-2.1.0.tgz", - "integrity": "sha512-8HEWcnkbGpovH9yInoisxaSoIg9Brbul+Ju3Kqe2UsYDUBJD/iQjSgEj0zPcTDPKfPp2fs5xlv1i+JSye/m1/A==", - "dev": true - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true + "integrity": "sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ==", + "engines": { + "node": ">=6" + } }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "requires": { - "repeating": "^2.0.0" + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" } }, - "inflight": { + "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, - "requires": { + "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, - "inherits": { + "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "ini": { + "node_modules/ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, - "inquirer": { + "node_modules/inquirer": { "version": "8.2.0", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.0.tgz", "integrity": "sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==", "dev": true, - "requires": { + "dependencies": { "ansi-escapes": "^4.2.1", "chalk": "^4.1.1", "cli-cursor": "^3.1.0", @@ -6957,511 +6195,467 @@ "strip-ansi": "^6.0.0", "through": "^2.3.6" }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "rxjs": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.4.0.tgz", - "integrity": "sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w==", - "dev": true, - "requires": { - "tslib": "~2.1.0" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", - "dev": true - } - } - }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" + "engines": { + "node": ">=8.0.0" } }, - "interpret": { + "node_modules/interpret": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true - }, - "into-stream": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", - "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", - "requires": { - "from2": "^2.1.1", - "p-is-promise": "^1.1.0" + "dev": true, + "engines": { + "node": ">= 0.10" } }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "node_modules/into-stream": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-6.0.0.tgz", + "integrity": "sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA==", "dev": true, - "requires": { - "loose-envify": "^1.0.0" + "dependencies": { + "from2": "^2.3.0", + "p-is-promise": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "ipaddr.js": { + "node_modules/ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.10" + } }, - "is-alphabetical": { + "node_modules/is-alphabetical": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", - "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==" + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "is-alphanumerical": { + "node_modules/is-alphanumerical": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", - "requires": { + "dependencies": { "is-alphabetical": "^1.0.0", "is-decimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "is-arguments": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", - "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", "dev": true, - "requires": { - "call-bind": "^1.0.0" + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" - }, - "is-bigint": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", - "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", - "dev": true + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" }, - "is-binary-path": { + "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, - "requires": { + "dependencies": { "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, - "is-boolean-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", - "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-builtin-module": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.1.0.tgz", - "integrity": "sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==", + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, - "requires": { - "builtin-modules": "^3.0.0" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-callable": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", - "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", - "dev": true - }, - "is-core-module": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz", - "integrity": "sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==", - "requires": { - "has": "^1.0.3" + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-date-object": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz", - "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==", - "dev": true - }, - "is-decimal": { + "node_modules/is-decimal": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", - "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==" + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "is-extglob": { + "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } }, - "is-finite": { + "node_modules/is-finite": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", - "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==" + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "is-fullwidth-code-point": { + "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "is-generator-function": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.9.tgz", - "integrity": "sha512-ZJ34p1uvIfptHCN7sFTjGibB9/oBg17sHqzDLfuwhvmN/qLVvIQXRQ8licZQ35WJ8KuEQt/etnnzQFI9C9Ue/A==", - "dev": true + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "requires": { + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "is-hexadecimal": { + "node_modules/is-hexadecimal": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", - "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==" + "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "is-in-browser": { + "node_modules/is-in-browser": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz", - "integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU=" + "integrity": "sha512-FeXIBgG/CPGd/WUxuEyvgGTEfwiG9Z4EKGxjNMRqviiIIfsmgrpnHLffEDdwUHqNva1VEW91o3xBT/m8Elgl9g==" }, - "is-interactive": { + "node_modules/is-interactive": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "is-nan": { + "node_modules/is-nan": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.0", "define-properties": "^1.1.3" - } + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "is-natural-number": { + "node_modules/is-natural-number": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", - "integrity": "sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=" - }, - "is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "dev": true + "integrity": "sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==" }, - "is-number": { + "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "is-number-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz", - "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==", - "dev": true + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } }, - "is-obj": { + "node_modules/is-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "is-object": { + "node_modules/is-object": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", - "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==" + "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "is-path-cwd": { + "node_modules/is-path-cwd": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "is-path-inside": { + "node_modules/is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "is-plain-obj": { + "node_modules/is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "engines": { + "node": ">=0.10.0" + } }, - "is-plain-object": { + "node_modules/is-plain-object": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "is-potential-custom-element-name": { + "node_modules/is-potential-custom-element-name": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" }, - "is-regex": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", - "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.2" - } - }, - "is-retry-allowed": { + "node_modules/is-retry-allowed": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==" + "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", + "engines": { + "node": ">=0.10.0" + } }, - "is-stream": { + "node_modules/is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "is-string": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", - "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==", - "dev": true - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "engines": { + "node": ">=0.10.0" } }, - "is-text-path": { + "node_modules/is-text-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", + "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", "dev": true, - "requires": { + "dependencies": { "text-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "is-typed-array": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.5.tgz", - "integrity": "sha512-S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug==", + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dev": true, - "requires": { - "available-typed-arrays": "^1.0.2", - "call-bind": "^1.0.2", - "es-abstract": "^1.18.0-next.2", - "foreach": "^2.0.5", - "has-symbols": "^1.0.1" + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-typescript": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/is-typescript/-/is-typescript-4.0.5.tgz", - "integrity": "sha512-jzwI4yTi9bRqYCAd0833iGRrmCQ1on2FRg7Lrz8gpcpMJxr9QzcKQIAEfdNeWvqH8wPWgsf2WKx1U2/Lw+tikg==", - "dev": true - }, - "is-unicode-supported": { + "node_modules/is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "is-utf8": { + "node_modules/is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==" }, - "isarray": { + "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" }, - "isexe": { + "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, - "isolated": { + "node_modules/isolated": { "version": "3.0.25", "resolved": "https://registry.npmjs.org/isolated/-/isolated-3.0.25.tgz", "integrity": "sha512-QEdszGRuc8Y0MFWUBmKFcl9p04xSzHLxtV8hurzSe79hurTG1VdYM62L7wBezTWIP00bpqMv9bsaC8jPdRznRA==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", "dev": true, - "requires": { + "dependencies": { "@types/fs-extra": "9.0.12", "@types/recursive-readdir": "2.2.0", "@types/temp": "0.9.1", "fs-extra": "10.0.0", "recursive-readdir": "2.2.2", "temp": "0.9.4" - }, + } + }, + "node_modules/isolated/node_modules/@types/fs-extra": { + "version": "9.0.12", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.12.tgz", + "integrity": "sha512-I+bsBr67CurCGnSenZZ7v94gd3tc3+Aj2taxMT4yu4ABLuOgOjeFxX3dokG24ztSRg5tnT00sL8BszO7gSMoIw==", + "dev": true, "dependencies": { - "@types/fs-extra": { - "version": "9.0.12", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.12.tgz", - "integrity": "sha512-I+bsBr67CurCGnSenZZ7v94gd3tc3+Aj2taxMT4yu4ABLuOgOjeFxX3dokG24ztSRg5tnT00sL8BszO7gSMoIw==", - "dev": true, - "requires": { - "@types/node": "*" - } - } + "@types/node": "*" } }, - "issue-parser": { + "node_modules/issue-parser": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-6.0.0.tgz", "integrity": "sha512-zKa/Dxq2lGsBIXQ7CUZWTHfvxPC2ej0KfO7fIPqLlHB9J2hJ7rGhZ5rilhuufylr4RXYPzJUeFjKxz305OsNlA==", "dev": true, - "requires": { + "dependencies": { "lodash.capitalize": "^4.2.1", "lodash.escaperegexp": "^4.1.2", "lodash.isplainobject": "^4.0.6", "lodash.isstring": "^4.0.1", "lodash.uniqby": "^4.7.0" + }, + "engines": { + "node": ">=10.13" } }, - "isurl": { + "node_modules/isurl": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", - "requires": { + "dependencies": { "has-to-string-tag-x": "^1.2.0", "is-object": "^1.0.1" + }, + "engines": { + "node": ">= 4" } }, - "java-properties": { + "node_modules/java-properties": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/java-properties/-/java-properties-1.0.2.tgz", "integrity": "sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6.0" + } }, - "jest-worker": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.6.tgz", - "integrity": "sha512-qupxcj/dRuA3xHPMUd40gr2EaAurFbkwzOh7wfPaeE9id7hyjURRQoqNfHifHK3XjJU6YJJUQKILGUnwGPEOCA==", + "node_modules/jest-worker": { + "version": "27.0.0-next.5", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.0-next.5.tgz", + "integrity": "sha512-mk0umAQ5lT+CaOJ+Qp01N6kz48sJG2kr2n1rX0koqKf6FIygQV0qLOdN9SCYID4IVeSigDOcPeGLozdMLYfb5g==", "dev": true, - "requires": { + "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "js-tokens": { + "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsdom": { + "node_modules/jsdom": { "version": "19.0.0", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-19.0.0.tgz", "integrity": "sha512-RYAyjCbxy/vri/CfnjUWJQQtZ3LKlLnDqj+9XLNnJPgEGeirZs3hllKR20re8LUZ6o1b1X4Jat+Qd26zmP41+A==", - "requires": { + "dependencies": { "abab": "^2.0.5", "acorn": "^8.5.0", "acorn-globals": "^6.0.0", @@ -7490,235 +6684,240 @@ "ws": "^8.2.3", "xml-name-validator": "^4.0.0" }, - "dependencies": { - "@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==" - }, - "acorn": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", - "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==" - }, - "http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "requires": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - } - }, - "ws": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.3.0.tgz", - "integrity": "sha512-Gs5EZtpqZzLvmIM59w4igITU57lrtYVFneaa434VROv4thzJyV6UjIL3D42lslWlI+D4KzLYnxSwtfuiO79sNw==" + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true } } }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true + "node_modules/jsdom/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" }, - "json-buffer": { + "node_modules/json-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==" }, - "json-parse-better-errors": { + "node_modules/json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, - "json-parse-even-better-errors": { + "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, - "json-schema": { + "node_modules/json-schema": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" }, - "json-schema-traverse": { + "node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "json-stringify-safe": { + "node_modules/json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", "dev": true }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, - "requires": { + "dependencies": { "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" } }, - "jsonfile": { + "node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "requires": { - "graceful-fs": "^4.1.6", + "dependencies": { "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "jsonparse": { + "node_modules/jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", - "dev": true + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "dev": true, + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } }, - "jss": { + "node_modules/jss": { "version": "10.7.1", "resolved": "https://registry.npmjs.org/jss/-/jss-10.7.1.tgz", "integrity": "sha512-5QN8JSVZR6cxpZNeGfzIjqPEP+ZJwJJfZbXmeABNdxiExyO+eJJDy6WDtqTf8SDKnbL5kZllEpAP71E/Lt7PXg==", - "requires": { + "dependencies": { "@babel/runtime": "^7.3.1", "csstype": "^3.0.2", "is-in-browser": "^1.1.3", "tiny-warning": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/jss" } }, - "jss-plugin-camel-case": { + "node_modules/jss-plugin-camel-case": { "version": "10.7.1", "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.7.1.tgz", "integrity": "sha512-+ioIyWvmAfgDCWXsQcW1NMnLBvRinOVFkSYJUgewQ6TynOcSj5F1bSU23B7z0p1iqK0PPHIU62xY1iNJD33WGA==", - "requires": { + "dependencies": { "@babel/runtime": "^7.3.1", "hyphenate-style-name": "^1.0.3", "jss": "10.7.1" } }, - "jss-plugin-compose": { + "node_modules/jss-plugin-compose": { "version": "10.7.1", "resolved": "https://registry.npmjs.org/jss-plugin-compose/-/jss-plugin-compose-10.7.1.tgz", "integrity": "sha512-UxHNCvPBWGBjVb/4BMC6nytFmTIz1mT7xHzaAVsX50Pj26Zv34zeZqqlKYLTOapr+5nJZRy6RkgK98gGuNa7WA==", - "requires": { + "dependencies": { "@babel/runtime": "^7.3.1", "jss": "10.7.1", "tiny-warning": "^1.0.2" } }, - "jss-plugin-default-unit": { + "node_modules/jss-plugin-default-unit": { "version": "10.7.1", "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.7.1.tgz", "integrity": "sha512-tW+dfYVNARBQb/ONzBwd8uyImigyzMiAEDai+AbH5rcHg5h3TtqhAkxx06iuZiT/dZUiFdSKlbe3q9jZGAPIwA==", - "requires": { + "dependencies": { "@babel/runtime": "^7.3.1", "jss": "10.7.1" } }, - "jss-plugin-expand": { + "node_modules/jss-plugin-expand": { "version": "10.7.1", "resolved": "https://registry.npmjs.org/jss-plugin-expand/-/jss-plugin-expand-10.7.1.tgz", "integrity": "sha512-A1E56iuK92fTygjBaxJ+/TlHkwz95gBygb6srYNeXWZ/gPXUIGmAnrVPETVd+arfhBT31pgVm1xM/73LHdp31Q==", - "requires": { + "dependencies": { "@babel/runtime": "^7.3.1", "jss": "10.7.1" } }, - "jss-plugin-extend": { + "node_modules/jss-plugin-extend": { "version": "10.7.1", "resolved": "https://registry.npmjs.org/jss-plugin-extend/-/jss-plugin-extend-10.7.1.tgz", "integrity": "sha512-MSDxhi8jvzKJpE3+IxWVIOjJKUtBnHRgkNDiTNjL/RrnQmVquHh8GOJlkfPeoejcbT9wGsOTMrIbSH6KKLs5Mw==", - "requires": { + "dependencies": { "@babel/runtime": "^7.3.1", "jss": "10.7.1", "tiny-warning": "^1.0.2" } }, - "jss-plugin-global": { + "node_modules/jss-plugin-global": { "version": "10.7.1", "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.7.1.tgz", "integrity": "sha512-FbxCnu44IkK/bw8X3CwZKmcAnJqjAb9LujlAc/aP0bMSdVa3/MugKQRyeQSu00uGL44feJJDoeXXiHOakBr/Zw==", - "requires": { + "dependencies": { "@babel/runtime": "^7.3.1", "jss": "10.7.1" } }, - "jss-plugin-nested": { + "node_modules/jss-plugin-nested": { "version": "10.7.1", "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.7.1.tgz", "integrity": "sha512-RNbICk7FlYKaJyv9tkMl7s6FFfeLA3ubNIFKvPqaWtADK0KUaPsPXVYBkAu4x1ItgsWx67xvReMrkcKA0jSXfA==", - "requires": { + "dependencies": { "@babel/runtime": "^7.3.1", "jss": "10.7.1", "tiny-warning": "^1.0.2" } }, - "jss-plugin-props-sort": { + "node_modules/jss-plugin-props-sort": { "version": "10.7.1", "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.7.1.tgz", "integrity": "sha512-eyd5FhA+J0QrpqXxO7YNF/HMSXXl4pB0EmUdY4vSJI4QG22F59vQ6AHtP6fSwhmBdQ98Qd9gjfO+RMxcE39P1A==", - "requires": { + "dependencies": { "@babel/runtime": "^7.3.1", "jss": "10.7.1" } }, - "jss-plugin-rule-value-function": { + "node_modules/jss-plugin-rule-value-function": { "version": "10.7.1", "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.7.1.tgz", "integrity": "sha512-fGAAImlbaHD3fXAHI3ooX6aRESOl5iBt3LjpVjxs9II5u9tzam7pqFUmgTcrip9VpRqYHn8J3gA7kCtm8xKwHg==", - "requires": { + "dependencies": { "@babel/runtime": "^7.3.1", "jss": "10.7.1", "tiny-warning": "^1.0.2" } }, - "jss-plugin-rule-value-observable": { + "node_modules/jss-plugin-rule-value-observable": { "version": "10.7.1", "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-observable/-/jss-plugin-rule-value-observable-10.7.1.tgz", "integrity": "sha512-uO2ZDIC5ANkCsnf4jgiq1I8w6pXX9UJDPOCShbjdwkN6cbpHhy9BfPmvniEoWmF2wtap87l4Fplpn7byzueGeQ==", - "requires": { + "dependencies": { "@babel/runtime": "^7.3.1", "jss": "10.7.1", "symbol-observable": "^1.2.0" } }, - "jss-plugin-template": { + "node_modules/jss-plugin-template": { "version": "10.7.1", "resolved": "https://registry.npmjs.org/jss-plugin-template/-/jss-plugin-template-10.7.1.tgz", "integrity": "sha512-FHQdbo5Yf13XOm9k7A+iJyUisY5yj6LGuLHOt3VR3yWRt6x/AzJ3q/znRKSNqZBaDFpNdxjIFZNAFFaVDd2cjQ==", - "requires": { + "dependencies": { "@babel/runtime": "^7.3.1", "jss": "10.7.1", "tiny-warning": "^1.0.2" } }, - "jss-plugin-vendor-prefixer": { + "node_modules/jss-plugin-vendor-prefixer": { "version": "10.7.1", "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.7.1.tgz", "integrity": "sha512-1UHFmBn7hZNsHXTkLLOL8abRl8vi+D1EVzWD4WmLFj55vawHZfnH1oEz6TUf5Y61XHv0smdHabdXds6BgOXe3A==", - "requires": { + "dependencies": { "@babel/runtime": "^7.3.1", "css-vendor": "^2.0.8", "jss": "10.7.1" } }, - "jss-preset-default": { + "node_modules/jss-preset-default": { "version": "10.7.1", "resolved": "https://registry.npmjs.org/jss-preset-default/-/jss-preset-default-10.7.1.tgz", "integrity": "sha512-dDvfgBIu8hVfzz6jRvRMPNDFR/Fb0zS3DrBC8aANZ1fVw2GfkdDo4dWUQwtTj8Mnrxt4hTcYBrCy1lOlNU6+Eg==", - "requires": { + "dependencies": { "@babel/runtime": "^7.3.1", "jss": "10.7.1", "jss-plugin-camel-case": "10.7.1", @@ -7735,1030 +6934,901 @@ "jss-plugin-vendor-prefixer": "10.7.1" } }, - "jsx-ast-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz", - "integrity": "sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==", - "dev": true, - "requires": { - "array-includes": "^3.1.2", - "object.assign": "^4.1.2" - } - }, - "keyv": { + "node_modules/keyv": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==", - "requires": { + "dependencies": { "json-buffer": "3.0.0" } }, - "kind-of": { + "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "leven": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", - "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", - "dev": true + "node_modules/load-json-file/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" + "node_modules/load-json-file/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" } }, - "loader-runner": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", - "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", - "dev": true + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } }, - "loader-utils": { + "node_modules/loader-utils": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", "dev": true, - "requires": { + "dependencies": { "big.js": "^5.2.2", "emojis-list": "^2.0.0", "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" } }, - "locate-path": { + "node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, - "requires": { + "dependencies": { "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" } }, - "lodash": { + "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "lodash.camelcase": { + "node_modules/lodash.camelcase": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" }, - "lodash.capitalize": { + "node_modules/lodash.capitalize": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz", - "integrity": "sha1-+CbJtOKoUR2E46yinbBeGk87cqk=", + "integrity": "sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw==", "dev": true }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true - }, - "lodash.escaperegexp": { + "node_modules/lodash.escaperegexp": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", - "integrity": "sha1-ZHYsSGGAglGKw99Mz11YhtriA0c=", + "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==", "dev": true }, - "lodash.ismatch": { + "node_modules/lodash.ismatch": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", - "integrity": "sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc=", + "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==", "dev": true }, - "lodash.isplainobject": { + "node_modules/lodash.isplainobject": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", "dev": true }, - "lodash.isstring": { + "node_modules/lodash.isstring": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=", - "dev": true - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", "dev": true }, - "lodash.sortby": { + "node_modules/lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", - "dev": true - }, - "lodash.toarray": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz", - "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=", - "dev": true - }, - "lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", "dev": true }, - "lodash.uniqby": { + "node_modules/lodash.uniqby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz", - "integrity": "sha1-2ZwHpmnp5tJOE2Lf4mbGdhavEwI=", + "integrity": "sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==", "dev": true }, - "log-symbols": { + "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, - "requires": { + "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "logalot": { + "node_modules/logalot": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/logalot/-/logalot-2.1.0.tgz", - "integrity": "sha1-X46MkNME7fElMJUaVVSruMXj9VI=", - "requires": { + "integrity": "sha512-Ah4CgdSRfeCJagxQhcVNMi9BfGYyEKLa6d7OA6xSbld/Hg3Cf2QiOa1mDpmG7Ve8LOH6DN3mdttzjQAvWTyVkw==", + "dependencies": { "figures": "^1.3.5", "squeak": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/logalot/node_modules/figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==", + "dependencies": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "longest": { + "node_modules/longest": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" + "integrity": "sha512-k+yt5n3l48JU4k8ftnKG6V7u32wyH2NfKzeMto9F/QRE0amxy/LayxwlvjjkZEIzqR+19IrtFO8p5kB9QaYUFg==", + "engines": { + "node": ">=0.10.0" + } }, - "loose-envify": { + "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { + "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" } }, - "loud-rejection": { + "node_modules/loud-rejection": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "requires": { + "integrity": "sha512-RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ==", + "dependencies": { "currently-unhandled": "^0.4.1", "signal-exit": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "lowercase-keys": { + "node_modules/lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "engines": { + "node": ">=0.10.0" + } }, - "lowlight": { + "node_modules/lowlight": { "version": "1.20.0", "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-1.20.0.tgz", "integrity": "sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==", - "requires": { + "dependencies": { "fault": "^1.0.0", "highlight.js": "~10.7.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "lpad-align": { + "node_modules/lpad-align": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/lpad-align/-/lpad-align-1.1.2.tgz", - "integrity": "sha1-IfYArBwwlcPG5JfuZyce4ISB/p4=", - "requires": { + "integrity": "sha512-MMIcFmmR9zlGZtBcFOows6c2COMekHCIFJz3ew/rRpKZ1wR4mXDPzvcVqLarux8M33X4TPSq2Jdw8WJj0q0KbQ==", + "dependencies": { "get-stdin": "^4.0.1", "indent-string": "^2.1.0", "longest": "^1.0.0", "meow": "^3.3.0" + }, + "bin": { + "lpad-align": "cli.js" + }, + "engines": { + "node": ">=0.10.0" } }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "node_modules/lpad-align/node_modules/camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==", + "engines": { + "node": ">=0.10.0" } }, - "magic-string": { - "version": "0.25.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", - "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", - "dev": true, - "requires": { - "sourcemap-codec": "^1.4.4" + "node_modules/lpad-align/node_modules/camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ==", + "dependencies": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "requires": { - "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } + "node_modules/lpad-align/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "engines": { + "node": ">=0.10.0" } }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true + "node_modules/lpad-align/node_modules/find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", + "dependencies": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" + "node_modules/lpad-align/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" }, - "marked": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/marked/-/marked-2.1.3.tgz", - "integrity": "sha512-/Q+7MGzaETqifOMWYEA7HVMaZb4XbcRfaOzcSsHZEith83KGlvaSG33u0SKu89Mj5h+T8V2hM+8O45Qc5XTgwA==", - "dev": true + "node_modules/lpad-align/node_modules/indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==", + "dependencies": { + "repeating": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } }, - "marked-terminal": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-4.1.1.tgz", - "integrity": "sha512-t7Mdf6T3PvOEyN01c3tYxDzhyKZ8xnkp8Rs6Fohno63L/0pFTJ5Qtwto2AQVuDtbQiWzD+4E5AAu1Z2iLc8miQ==", + "node_modules/lpad-align/node_modules/load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lpad-align/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lpad-align/node_modules/meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==", + "dependencies": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lpad-align/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/lpad-align/node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lpad-align/node_modules/path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "dependencies": { + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lpad-align/node_modules/path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "dependencies": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lpad-align/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lpad-align/node_modules/read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "dependencies": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lpad-align/node_modules/read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", + "dependencies": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lpad-align/node_modules/redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g==", + "dependencies": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lpad-align/node_modules/strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "dependencies": { + "is-utf8": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lpad-align/node_modules/strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==", + "dependencies": { + "get-stdin": "^4.0.1" + }, + "bin": { + "strip-indent": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lpad-align/node_modules/trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha512-Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/make-dir/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/marked": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/marked/-/marked-2.1.3.tgz", + "integrity": "sha512-/Q+7MGzaETqifOMWYEA7HVMaZb4XbcRfaOzcSsHZEith83KGlvaSG33u0SKu89Mj5h+T8V2hM+8O45Qc5XTgwA==", + "dev": true, + "bin": { + "marked": "bin/marked" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/marked-terminal": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-4.2.0.tgz", + "integrity": "sha512-DQfNRV9svZf0Dm9Cf5x5xaVJ1+XjxQW6XjFJ5HFkVyK52SDpj5PCBzS5X5r2w9nHr3mlB0T5201UMLue9fmhUw==", "dev": true, - "requires": { + "dependencies": { "ansi-escapes": "^4.3.1", "cardinal": "^2.1.1", "chalk": "^4.1.0", - "cli-table": "^0.3.1", + "cli-table3": "^0.6.0", "node-emoji": "^1.10.0", "supports-hyperlinks": "^2.1.0" }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "peerDependencies": { + "marked": "^1.0.0 || ^2.0.0" } }, - "md5.js": { + "node_modules/md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "dev": true, - "requires": { + "dependencies": { "hash-base": "^3.0.0", "inherits": "^2.0.1", "safe-buffer": "^5.1.2" } }, - "mdn-data": { + "node_modules/mdn-data": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" }, - "media-typer": { + "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "memoize-one": { + "node_modules/memoize-one": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-4.0.3.tgz", "integrity": "sha512-QmpUu4KqDmX0plH4u+tf0riMc1KHE1+lw95cMrLlXQAFOx/xnBtwhZ52XJxd9X2O6kwKBqX32kmhbhlobD0cuw==" }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" + "node_modules/meow": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", + "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", + "dev": true, + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "merge-descriptors": { + "node_modules/merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", "dev": true }, - "merge-source-map": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", - "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", - "dev": true, - "requires": { - "source-map": "^0.6.1" - } - }, - "merge-stream": { + "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, - "merge2": { + "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } }, - "methods": { + "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" } }, - "miller-rabin": { + "node_modules/miller-rabin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^4.0.0", "brorand": "^1.0.1" }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } + "bin": { + "miller-rabin": "bin/miller-rabin" } }, - "mime": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", - "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", "dev": true }, - "mime-db": { - "version": "1.48.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz", - "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==" + "node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } }, - "mime-types": { - "version": "2.1.31", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz", - "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==", - "requires": { - "mime-db": "1.48.0" + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" } }, - "mimic-fn": { + "node_modules/mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "mimic-response": { + "node_modules/mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "engines": { + "node": ">=4" + } }, - "min-indent": { + "node_modules/min-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==" + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "engines": { + "node": ">=4" + } }, - "minimalistic-assert": { + "node_modules/minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", "dev": true }, - "minimalistic-crypto-utils": { + "node_modules/minimalistic-crypto-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", "dev": true }, - "minimatch": { + "node_modules/minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, - "requires": { + "dependencies": { "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "minimist-options": { + "node_modules/minimist-options": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", "dev": true, - "requires": { + "dependencies": { "arrify": "^1.0.1", "is-plain-obj": "^1.1.0", "kind-of": "^6.0.3" }, - "dependencies": { - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - } + "engines": { + "node": ">= 6" } }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, - "requires": { - "minimist": "^1.2.5" + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" } }, - "mkdirp-classic": { + "node_modules/mkdirp-classic": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", "dev": true }, - "mocha": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.2.1.tgz", - "integrity": "sha512-cuLBVfyFfFqbNR0uUKbDGXKGk+UDFe6aR4os78XIrMQpZl/nv7JYHcvP5MFIAb374b2zFXsdgEGwmzMtP0Xg8w==", - "dev": true, - "requires": { - "@ungap/promise-all-settled": "1.1.2", - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.4.3", - "debug": "4.2.0", - "diff": "4.0.2", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.1.6", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "3.14.0", - "log-symbols": "4.0.0", - "minimatch": "3.0.4", - "ms": "2.1.2", - "nanoid": "3.1.12", - "serialize-javascript": "5.0.1", - "strip-json-comments": "3.1.1", - "supports-color": "7.2.0", - "which": "2.0.2", - "wide-align": "1.1.3", - "workerpool": "6.0.2", - "yargs": "13.3.2", - "yargs-parser": "13.1.2", - "yargs-unparser": "2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "chokidar": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", - "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", - "dev": true, - "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.1.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" - } - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "debug": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", - "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", - "dev": true, - "optional": true - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "log-symbols": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", - "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", - "dev": true, - "requires": { - "chalk": "^4.0.0" - } - }, - "nanoid": { - "version": "3.1.12", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.12.tgz", - "integrity": "sha512-1qstj9z5+x491jfiC4Nelk+f8XBad7LN20PmyWINJEMRSf3wcAjAWysw1qaA8z6NSKe2sjq1hRSDpBH5paCb6A==", - "dev": true - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "serialize-javascript": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", - "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - } - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - } - } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "modify-values": { + "node_modules/modify-values": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "mozjpeg": { + "node_modules/mozjpeg": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/mozjpeg/-/mozjpeg-7.1.1.tgz", "integrity": "sha512-iIDxWvzhWvLC9mcRJ1uSkiKaj4drF58oCqK2bITm5c2Jt6cJ8qQjSSru2PCaysG+hLIinryj8mgz5ZJzOYTv1A==", - "requires": { + "hasInstallScript": true, + "dependencies": { "bin-build": "^3.0.0", "bin-wrapper": "^4.0.0" + }, + "bin": { + "mozjpeg": "cli.js" + }, + "engines": { + "node": ">=10" } }, - "mrmime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.0.tgz", - "integrity": "sha512-a70zx7zFfVO7XpnQ2IX1Myh9yY4UYvfld/dikWRnsXxbyvMcfz+u6UfgNAtH+k2QqtJuzVpv6eLTx1G2+WKZbQ==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "multimap": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multimap/-/multimap-1.1.0.tgz", - "integrity": "sha512-0ZIR9PasPxGXmRsEF8jsDzndzHDj7tIav+JUmvIFB/WHswliFnquxECT/De7GR4yg99ky/NlRKJT82G1y271bw==", - "dev": true - }, - "multimatch": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", - "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", + "node_modules/mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", "dev": true, - "requires": { - "@types/minimatch": "^3.0.3", - "array-differ": "^3.0.0", - "array-union": "^2.1.0", - "arrify": "^2.0.1", - "minimatch": "^3.0.4" + "engines": { + "node": ">=10" } }, - "mute-stream": { + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/mute-stream": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, - "nanoid": { - "version": "3.1.23", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz", - "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==", - "dev": true + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } }, - "native-url": { + "node_modules/native-url": { "version": "0.3.4", "resolved": "https://registry.npmjs.org/native-url/-/native-url-0.3.4.tgz", "integrity": "sha512-6iM8R99ze45ivyH8vybJ7X0yekIcPf5GgLV5K0ENCbmRcaRIDoj37BC8iLEmaaBfqqb8enuZ5p0uhY+lVAbAcA==", "dev": true, - "requires": { + "dependencies": { "querystring": "^0.2.0" } }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "dev": true + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "neo-async": { + "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, - "nerf-dart": { + "node_modules/nerf-dart": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/nerf-dart/-/nerf-dart-1.0.0.tgz", - "integrity": "sha1-5tq3/r9a2Bbqgc9cYpxaDr3nLBo=", + "integrity": "sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==", "dev": true }, - "next": { + "node_modules/next": { "version": "11.0.1", "resolved": "https://registry.npmjs.org/next/-/next-11.0.1.tgz", "integrity": "sha512-yR7be7asNbvpVNpi6xxEg28wZ7Gqmj1nOt0sABH9qORmF3+pms2KZ7Cng33oK5nqPIzEEFJD0pp2PCe3/ueMIg==", "dev": true, - "requires": { + "dependencies": { "@babel/runtime": "7.12.5", "@hapi/accept": "5.0.2", "@next/env": "11.0.1", @@ -8810,133 +7880,186 @@ "vm-browserify": "1.1.2", "watchpack": "2.1.1" }, - "dependencies": { - "@babel/runtime": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", - "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "buffer": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", - "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "http-errors": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", - "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "jest-worker": { - "version": "27.0.0-next.5", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.0-next.5.tgz", - "integrity": "sha512-mk0umAQ5lT+CaOJ+Qp01N6kz48sJG2kr2n1rX0koqKf6FIygQV0qLOdN9SCYID4IVeSigDOcPeGLozdMLYfb5g==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - } - }, - "raw-body": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", - "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", - "dev": true, - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.3", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - } + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0", + "react": "^17.0.2", + "react-dom": "^17.0.2", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } + "node-sass": { + "optional": true }, - "watchpack": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.1.1.tgz", - "integrity": "sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw==", - "dev": true, - "requires": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - } + "sass": { + "optional": true } } }, - "nice-try": { + "node_modules/next/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/next/node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/next/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/next/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/next/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/next/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/next/node_modules/http-errors": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/next/node_modules/raw-body": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", + "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", + "dev": true, + "dependencies": { + "bytes": "3.1.0", + "http-errors": "1.7.3", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/next/node_modules/setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, + "node_modules/next/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/next/node_modules/toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" }, - "node-emoji": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz", - "integrity": "sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==", + "node_modules/node-emoji": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", + "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", "dev": true, - "requires": { - "lodash.toarray": "^4.4.0" + "dependencies": { + "lodash": "^4.17.21" } }, - "node-fetch": { + "node_modules/node-fetch": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", - "dev": true + "dev": true, + "engines": { + "node": "4.x || >=6.0.0" + } }, - "node-html-parser": { + "node_modules/node-html-parser": { "version": "1.4.9", "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-1.4.9.tgz", "integrity": "sha512-UVcirFD1Bn0O+TSmloHeHqZZCxHjvtIeGdVdGMhyZ8/PWlEiZaZ5iJzR189yKZr8p0FXN58BUeC7RHRkf/KYGw==", "dev": true, - "requires": { + "dependencies": { "he": "1.2.0" } }, - "node-libs-browser": { + "node_modules/node-libs-browser": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", "dev": true, - "requires": { + "dependencies": { "assert": "^1.1.1", "browserify-zlib": "^0.2.0", "buffer": "^4.3.0", @@ -8960,2668 +8083,3220 @@ "url": "^0.11.0", "util": "^0.11.0", "vm-browserify": "^1.0.1" - }, + } + }, + "node_modules/node-libs-browser/node_modules/assert": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.1.tgz", + "integrity": "sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==", + "dev": true, "dependencies": { - "assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "dev": true, - "requires": { - "object-assign": "^4.1.1", - "util": "0.10.3" - }, - "dependencies": { - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true - }, - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, - "requires": { - "inherits": "2.0.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } - } - } + "object.assign": "^4.1.4", + "util": "^0.10.4" + } + }, + "node_modules/node-libs-browser/node_modules/assert/node_modules/util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "dev": true, + "dependencies": { + "inherits": "2.0.3" + } + }, + "node_modules/node-libs-browser/node_modules/buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "node_modules/node-libs-browser/node_modules/domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true, + "engines": { + "node": ">=0.4", + "npm": ">=1.2" } }, - "node-releases": { - "version": "1.1.73", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz", - "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==", + "node_modules/node-libs-browser/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", "dev": true }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", + "node_modules/node-libs-browser/node_modules/path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "node_modules/node-libs-browser/node_modules/stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "dependencies": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "node_modules/node-libs-browser/node_modules/stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/node-libs-browser/node_modules/tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==", + "dev": true + }, + "node_modules/node-libs-browser/node_modules/util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "dependencies": { + "inherits": "2.0.3" + } + }, + "node_modules/node-releases": { + "version": "1.1.77", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", + "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==", + "dev": true + }, + "node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "normalize-path": { + "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "normalize-url": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", - "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", - "requires": { - "prepend-http": "^2.0.0", - "query-string": "^5.0.1", - "sort-keys": "^2.0.0" + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm": { + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/npm/-/npm-7.24.2.tgz", + "integrity": "sha512-120p116CE8VMMZ+hk8IAb1inCPk4Dj3VZw29/n2g6UI77urJKVYb7FZUDW8hY+EBnfsjI/2yrobBgFyzo7YpVQ==", + "bundleDependencies": [ + "@isaacs/string-locale-compare", + "@npmcli/arborist", + "@npmcli/ci-detect", + "@npmcli/config", + "@npmcli/map-workspaces", + "@npmcli/package-json", + "@npmcli/run-script", + "abbrev", + "ansicolors", + "ansistyles", + "archy", + "cacache", + "chalk", + "chownr", + "cli-columns", + "cli-table3", + "columnify", + "fastest-levenshtein", + "glob", + "graceful-fs", + "hosted-git-info", + "ini", + "init-package-json", + "is-cidr", + "json-parse-even-better-errors", + "libnpmaccess", + "libnpmdiff", + "libnpmexec", + "libnpmfund", + "libnpmhook", + "libnpmorg", + "libnpmpack", + "libnpmpublish", + "libnpmsearch", + "libnpmteam", + "libnpmversion", + "make-fetch-happen", + "minipass", + "minipass-pipeline", + "mkdirp", + "mkdirp-infer-owner", + "ms", + "node-gyp", + "nopt", + "npm-audit-report", + "npm-install-checks", + "npm-package-arg", + "npm-pick-manifest", + "npm-profile", + "npm-registry-fetch", + "npm-user-validate", + "npmlog", + "opener", + "pacote", + "parse-conflict-json", + "qrcode-terminal", + "read", + "read-package-json", + "read-package-json-fast", + "readdir-scoped-modules", + "rimraf", + "semver", + "ssri", + "tar", + "text-table", + "tiny-relative-date", + "treeverse", + "validate-npm-package-name", + "which", + "write-file-atomic" + ], + "dev": true, + "dependencies": { + "@isaacs/string-locale-compare": "*", + "@npmcli/arborist": "*", + "@npmcli/ci-detect": "*", + "@npmcli/config": "*", + "@npmcli/map-workspaces": "*", + "@npmcli/package-json": "*", + "@npmcli/run-script": "*", + "abbrev": "*", + "ansicolors": "*", + "ansistyles": "*", + "archy": "*", + "cacache": "*", + "chalk": "*", + "chownr": "*", + "cli-columns": "*", + "cli-table3": "*", + "columnify": "*", + "fastest-levenshtein": "*", + "glob": "*", + "graceful-fs": "*", + "hosted-git-info": "*", + "ini": "*", + "init-package-json": "*", + "is-cidr": "*", + "json-parse-even-better-errors": "*", + "libnpmaccess": "*", + "libnpmdiff": "*", + "libnpmexec": "*", + "libnpmfund": "*", + "libnpmhook": "*", + "libnpmorg": "*", + "libnpmpack": "*", + "libnpmpublish": "*", + "libnpmsearch": "*", + "libnpmteam": "*", + "libnpmversion": "*", + "make-fetch-happen": "*", + "minipass": "*", + "minipass-pipeline": "*", + "mkdirp": "*", + "mkdirp-infer-owner": "*", + "ms": "*", + "node-gyp": "*", + "nopt": "*", + "npm-audit-report": "*", + "npm-install-checks": "*", + "npm-package-arg": "*", + "npm-pick-manifest": "*", + "npm-profile": "*", + "npm-registry-fetch": "*", + "npm-user-validate": "*", + "npmlog": "*", + "opener": "*", + "pacote": "*", + "parse-conflict-json": "*", + "qrcode-terminal": "*", + "read": "*", + "read-package-json": "*", + "read-package-json-fast": "*", + "readdir-scoped-modules": "*", + "rimraf": "*", + "semver": "*", + "ssri": "*", + "tar": "*", + "text-table": "*", + "tiny-relative-date": "*", + "treeverse": "*", + "validate-npm-package-name": "*", + "which": "*", + "write-file-atomic": "*" + }, + "bin": { + "npm": "bin/npm-cli.js", + "npx": "bin/npx-cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "dependencies": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-conf/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", "dependencies": { - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" - }, - "sort-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", - "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", - "requires": { - "is-plain-obj": "^1.0.0" - } - } + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" } }, - "npm": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/npm/-/npm-7.20.1.tgz", - "integrity": "sha512-Fau808Ybtzja6SdOglKyUfEX1vC57Gq9zR20IfK2z+iwaLmYOHvHqf3zQoeXzNLDzT5bf+CnKns3EhHLFLguew==", + "node_modules/npm/node_modules/@gar/promisify": { + "version": "1.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/@isaacs/string-locale-compare": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/@npmcli/arborist": { + "version": "2.9.0", "dev": true, - "requires": { - "@npmcli/arborist": "^2.7.1", - "@npmcli/ci-detect": "^1.2.0", - "@npmcli/config": "^2.2.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@isaacs/string-locale-compare": "^1.0.1", + "@npmcli/installed-package-contents": "^1.0.7", + "@npmcli/map-workspaces": "^1.0.2", + "@npmcli/metavuln-calculator": "^1.1.0", + "@npmcli/move-file": "^1.1.0", + "@npmcli/name-from-folder": "^1.0.1", + "@npmcli/node-gyp": "^1.0.1", "@npmcli/package-json": "^1.0.1", - "@npmcli/run-script": "^1.8.5", - "abbrev": "~1.1.1", - "ansicolors": "~0.3.2", - "ansistyles": "~0.1.3", - "archy": "~1.0.0", - "byte-size": "^7.0.1", - "cacache": "^15.2.0", - "chalk": "^4.1.0", - "chownr": "^2.0.0", - "cli-columns": "^3.1.2", - "cli-table3": "^0.6.0", - "columnify": "~1.5.4", - "glob": "^7.1.7", - "graceful-fs": "^4.2.6", - "hosted-git-info": "^4.0.2", - "ini": "^2.0.0", - "init-package-json": "^2.0.3", - "is-cidr": "^4.0.2", + "@npmcli/run-script": "^1.8.2", + "bin-links": "^2.2.1", + "cacache": "^15.0.3", + "common-ancestor-path": "^1.0.1", "json-parse-even-better-errors": "^2.3.1", - "leven": "^3.1.0", - "libnpmaccess": "^4.0.2", - "libnpmdiff": "^2.0.4", - "libnpmexec": "^2.0.0", - "libnpmfund": "^1.1.0", - "libnpmhook": "^6.0.2", - "libnpmorg": "^2.0.2", - "libnpmpack": "^2.0.1", - "libnpmpublish": "^4.0.1", - "libnpmsearch": "^3.1.1", - "libnpmteam": "^2.0.3", - "libnpmversion": "^1.2.1", - "make-fetch-happen": "^9.0.4", - "minipass": "^3.1.3", - "minipass-pipeline": "^1.2.4", + "json-stringify-nice": "^1.1.4", "mkdirp": "^1.0.4", "mkdirp-infer-owner": "^2.0.0", - "ms": "^2.1.2", - "node-gyp": "^7.1.2", - "nopt": "^5.0.0", - "npm-audit-report": "^2.1.5", + "npm-install-checks": "^4.0.0", "npm-package-arg": "^8.1.5", - "npm-pick-manifest": "^6.1.1", - "npm-profile": "^5.0.3", + "npm-pick-manifest": "^6.1.0", "npm-registry-fetch": "^11.0.0", - "npm-user-validate": "^1.0.1", - "npmlog": "^5.0.0", - "opener": "^1.5.2", "pacote": "^11.3.5", "parse-conflict-json": "^1.1.1", - "qrcode-terminal": "^0.12.0", - "read": "~1.0.7", - "read-package-json": "^3.0.1", - "read-package-json-fast": "^2.0.3", + "proc-log": "^1.0.0", + "promise-all-reject-late": "^1.0.0", + "promise-call-limit": "^1.0.1", + "read-package-json-fast": "^2.0.2", "readdir-scoped-modules": "^1.1.0", "rimraf": "^3.0.2", "semver": "^7.3.5", "ssri": "^8.0.1", - "tar": "^6.1.0", - "text-table": "~0.2.0", - "tiny-relative-date": "^1.3.0", "treeverse": "^1.0.4", - "validate-npm-package-name": "~3.0.0", - "which": "^2.0.2", - "write-file-atomic": "^3.0.3" + "walk-up-path": "^1.0.0" }, + "bin": { + "arborist": "bin/index.js" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/npm/node_modules/@npmcli/ci-detect": { + "version": "1.3.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/@npmcli/config": { + "version": "2.3.0", + "dev": true, + "inBundle": true, + "license": "ISC", "dependencies": { - "@npmcli/arborist": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/@npmcli/arborist/-/arborist-2.7.1.tgz", - "integrity": "sha512-EGDHJs6dna/52BrStr/6aaRcMLrYxGbSjT4V3JzvoTBY9/w5i2+1KNepmsG80CAsGADdo6nuNnFwb7sDRm8ZAw==", - "dev": true, - "requires": { - "@npmcli/installed-package-contents": "^1.0.7", - "@npmcli/map-workspaces": "^1.0.2", - "@npmcli/metavuln-calculator": "^1.1.0", - "@npmcli/move-file": "^1.1.0", - "@npmcli/name-from-folder": "^1.0.1", - "@npmcli/node-gyp": "^1.0.1", - "@npmcli/package-json": "^1.0.1", - "@npmcli/run-script": "^1.8.2", - "bin-links": "^2.2.1", - "cacache": "^15.0.3", - "common-ancestor-path": "^1.0.1", - "json-parse-even-better-errors": "^2.3.1", - "json-stringify-nice": "^1.1.4", - "mkdirp": "^1.0.4", - "mkdirp-infer-owner": "^2.0.0", - "npm-install-checks": "^4.0.0", - "npm-package-arg": "^8.1.0", - "npm-pick-manifest": "^6.1.0", - "npm-registry-fetch": "^11.0.0", - "pacote": "^11.2.6", - "parse-conflict-json": "^1.1.1", - "proc-log": "^1.0.0", - "promise-all-reject-late": "^1.0.0", - "promise-call-limit": "^1.0.1", - "read-package-json-fast": "^2.0.2", - "readdir-scoped-modules": "^1.1.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "ssri": "^8.0.1", - "tar": "^6.1.0", - "treeverse": "^1.0.4", - "walk-up-path": "^1.0.0" - } - }, - "@npmcli/ci-detect": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@npmcli/ci-detect/-/ci-detect-1.3.0.tgz", - "integrity": "sha512-oN3y7FAROHhrAt7Rr7PnTSwrHrZVRTS2ZbyxeQwSSYD0ifwM3YNgQqbaRmjcWoPyq77MjchusjJDspbzMmip1Q==", - "dev": true - }, - "@npmcli/config": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@npmcli/config/-/config-2.2.0.tgz", - "integrity": "sha512-y0V3F7RCWXy8kBOvKvKSRUNKRobLB6vL/UNchy/6+IUNIqu+UyrY3Z7jvj1ZA/AkYc/0WkCUtppCo+bPhMU8Aw==", - "dev": true, - "requires": { - "ini": "^2.0.0", - "mkdirp-infer-owner": "^2.0.0", - "nopt": "^5.0.0", - "semver": "^7.3.4", - "walk-up-path": "^1.0.0" - } - }, - "@npmcli/disparity-colors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/disparity-colors/-/disparity-colors-1.0.1.tgz", - "integrity": "sha512-kQ1aCTTU45mPXN+pdAaRxlxr3OunkyztjbbxDY/aIcPS5CnCUrx+1+NvA6pTcYR7wmLZe37+Mi5v3nfbwPxq3A==", - "dev": true, - "requires": { - "ansi-styles": "^4.3.0" - } - }, - "@npmcli/git": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-2.1.0.tgz", - "integrity": "sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==", - "dev": true, - "requires": { - "@npmcli/promise-spawn": "^1.3.2", - "lru-cache": "^6.0.0", - "mkdirp": "^1.0.4", - "npm-pick-manifest": "^6.1.1", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.5", - "which": "^2.0.2" - } - }, - "@npmcli/installed-package-contents": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", - "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==", - "dev": true, - "requires": { - "npm-bundled": "^1.1.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, - "@npmcli/map-workspaces": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-1.0.3.tgz", - "integrity": "sha512-SdlRlOoQw4WKD4vtb/n5gUkobEABYBEOo8fRE4L8CtBkyWDSvIrReTfKvQ/Jc/LQqDaaZ5iv1iMSQzKCUr1n1A==", - "dev": true, - "requires": { - "@npmcli/name-from-folder": "^1.0.1", - "glob": "^7.1.6", - "minimatch": "^3.0.4", - "read-package-json-fast": "^2.0.1" - } - }, - "@npmcli/metavuln-calculator": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-1.1.1.tgz", - "integrity": "sha512-9xe+ZZ1iGVaUovBVFI9h3qW+UuECUzhvZPxK9RaEA2mjU26o5D0JloGYWwLYvQELJNmBdQB6rrpuN8jni6LwzQ==", - "dev": true, - "requires": { - "cacache": "^15.0.5", - "pacote": "^11.1.11", - "semver": "^7.3.2" - } - }, - "@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "dev": true, - "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - } - }, - "@npmcli/name-from-folder": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-1.0.1.tgz", - "integrity": "sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA==", - "dev": true - }, - "@npmcli/node-gyp": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.2.tgz", - "integrity": "sha512-yrJUe6reVMpktcvagumoqD9r08fH1iRo01gn1u0zoCApa9lnZGEigVKUd2hzsCId4gdtkZZIVscLhNxMECKgRg==", - "dev": true - }, - "@npmcli/package-json": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-1.0.1.tgz", - "integrity": "sha512-y6jnu76E9C23osz8gEMBayZmaZ69vFOIk8vR1FJL/wbEJ54+9aVG9rLTjQKSXfgYZEr50nw1txBBFfBZZe+bYg==", - "dev": true, - "requires": { - "json-parse-even-better-errors": "^2.3.1" - } - }, - "@npmcli/promise-spawn": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz", - "integrity": "sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==", - "dev": true, - "requires": { - "infer-owner": "^1.0.4" - } - }, - "@npmcli/run-script": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-1.8.5.tgz", - "integrity": "sha512-NQspusBCpTjNwNRFMtz2C5MxoxyzlbuJ4YEhxAKrIonTiirKDtatsZictx9RgamQIx6+QuHMNmPl0wQdoESs9A==", - "dev": true, - "requires": { - "@npmcli/node-gyp": "^1.0.2", - "@npmcli/promise-spawn": "^1.3.2", - "infer-owner": "^1.0.4", - "node-gyp": "^7.1.0", - "read-package-json-fast": "^2.0.1" - } - }, - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "requires": { - "debug": "4" - } - }, - "agentkeepalive": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.4.tgz", - "integrity": "sha512-+V/rGa3EuU74H6wR04plBb7Ks10FbtUQgRj/FQOG7uUIEuaINI+AiqJR1k6t3SVNs7o7ZjIdus6706qqzVq8jQ==", - "dev": true, - "requires": { - "debug": "^4.1.0", - "depd": "^1.1.2", - "humanize-ms": "^1.2.1" - } - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "ansicolors": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", - "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=", - "dev": true - }, - "ansistyles": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ansistyles/-/ansistyles-0.1.3.tgz", - "integrity": "sha1-XeYEFb2gcbs3EnhUyGT0GyMlRTk=", - "dev": true - }, - "aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "dev": true - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", - "dev": true - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "dev": true - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bin-links": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-2.2.1.tgz", - "integrity": "sha512-wFzVTqavpgCCYAh8SVBdnZdiQMxTkGR+T3b14CNpBXIBe2neJWaMGAZ55XWWHELJJ89dscuq0VCBqcVaIOgCMg==", - "dev": true, - "requires": { - "cmd-shim": "^4.0.1", - "mkdirp": "^1.0.3", - "npm-normalize-package-bin": "^1.0.0", - "read-cmd-shim": "^2.0.0", - "rimraf": "^3.0.0", - "write-file-atomic": "^3.0.3" - } - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", - "dev": true - }, - "byte-size": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-7.0.1.tgz", - "integrity": "sha512-crQdqyCwhokxwV1UyDzLZanhkugAgft7vt0qbbdt60C6Zf3CAiGmtUCylbtYwrU6loOUw3euGrNtW1J651ot1A==", - "dev": true - }, - "cacache": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.2.0.tgz", - "integrity": "sha512-uKoJSHmnrqXgthDFx/IU6ED/5xd+NNGe+Bb+kLZy7Ku4P+BaiWEUflAKPZ7eAzsYGcsAGASJZsybXp+quEcHTw==", - "dev": true, - "requires": { - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - } - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true - }, - "cidr-regex": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/cidr-regex/-/cidr-regex-3.1.1.tgz", - "integrity": "sha512-RBqYd32aDwbCMFJRL6wHOlDNYJsPNTt8vC82ErHF5vKt8QQzxm1FrkW8s/R5pVrXMf17sba09Uoy91PKiddAsw==", - "dev": true, - "requires": { - "ip-regex": "^4.1.0" - } - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, - "cli-columns": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/cli-columns/-/cli-columns-3.1.2.tgz", - "integrity": "sha1-ZzLZcpee/CrkRKHwjgj6E5yWoY4=", - "dev": true, - "requires": { - "string-width": "^2.0.0", - "strip-ansi": "^3.0.1" - } - }, - "cli-table3": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.0.tgz", - "integrity": "sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ==", - "dev": true, - "requires": { - "colors": "^1.1.2", - "object-assign": "^4.1.0", - "string-width": "^4.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true - }, - "cmd-shim": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-4.1.0.tgz", - "integrity": "sha512-lb9L7EM4I/ZRVuljLPEtUJOP+xiQVknZ4ZMpMgEp4JzNldPb27HU03hi6K1/6CoIuit/Zm/LQXySErFeXxDprw==", - "dev": true, - "requires": { - "mkdirp-infer-owner": "^2.0.0" - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true - }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true, - "optional": true - }, - "columnify": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz", - "integrity": "sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs=", - "dev": true, - "requires": { - "strip-ansi": "^3.0.0", - "wcwidth": "^1.0.0" - } - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "common-ancestor-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz", - "integrity": "sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "requires": { - "ms": "2.1.2" - }, - "dependencies": { - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "debuglog": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", - "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", - "dev": true - }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "dev": true, - "requires": { - "clone": "^1.0.2" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true - }, - "dezalgo": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", - "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", - "dev": true, - "requires": { - "asap": "^2.0.0", - "wrappy": "1" - } - }, - "diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, - "optional": true, - "requires": { - "iconv-lite": "^0.6.2" - } - }, - "env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true - }, - "err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "gauge": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.0.tgz", - "integrity": "sha512-VSxauaaCsLOTerAyzunAYGgK3iaWZvOL1BCvBvf/IhDWrczPAf1tUqn05DOCJOOe4k3vOdX6fHhJIvF2UtCMhw==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.2", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1 || ^2.0.0", - "strip-ansi": "^3.0.1 || ^4.0.0", - "wide-align": "^1.1.2" - } - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", - "dev": true - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "dev": true, - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true - }, - "hosted-git-info": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", - "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true - }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", - "dev": true, - "requires": { - "ms": "^2.0.0" - } - }, - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - }, - "ignore-walk": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", - "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", - "dev": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "dev": true - }, - "init-package-json": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-2.0.3.tgz", - "integrity": "sha512-tk/gAgbMMxR6fn1MgMaM1HpU1ryAmBWWitnxG5OhuNXeX0cbpbgV5jA4AIpQJVNoyOfOevTtO6WX+rPs+EFqaQ==", - "dev": true, - "requires": { - "glob": "^7.1.1", - "npm-package-arg": "^8.1.2", - "promzard": "^0.3.0", - "read": "~1.0.1", - "read-package-json": "^3.0.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4", - "validate-npm-package-name": "^3.0.0" - } - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true - }, - "ip-regex": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", - "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", - "dev": true - }, - "is-cidr": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/is-cidr/-/is-cidr-4.0.2.tgz", - "integrity": "sha512-z4a1ENUajDbEl/Q6/pVBpTR1nBjjEE1X7qb7bmWYanNnPoKAvUCPFKeXV6Fe4mgTkWKBqiHIcwsI3SndiO5FeA==", - "dev": true, - "requires": { - "cidr-regex": "^3.1.1" - } - }, - "is-core-module": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz", - "integrity": "sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", - "dev": true - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stringify-nice": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz", - "integrity": "sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", - "dev": true - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "just-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-3.1.1.tgz", - "integrity": "sha512-sdMWKjRq8qWZEjDcVA6llnUT8RDEBIfOiGpYFPYa9u+2c39JCsejktSP7mj5eRid5EIvTzIpQ2kDOCw1Nq9BjQ==", - "dev": true - }, - "just-diff-apply": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-3.0.0.tgz", - "integrity": "sha512-K2MLc+ZC2DVxX4V61bIKPeMUUfj1YYZ3h0myhchDXOW1cKoPZMnjIoNCqv9bF2n5Oob1PFxuR2gVJxkxz4e58w==", - "dev": true - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true - }, - "libnpmaccess": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-4.0.3.tgz", - "integrity": "sha512-sPeTSNImksm8O2b6/pf3ikv4N567ERYEpeKRPSmqlNt1dTZbvgpJIzg5vAhXHpw2ISBsELFRelk0jEahj1c6nQ==", - "dev": true, - "requires": { - "aproba": "^2.0.0", - "minipass": "^3.1.1", - "npm-package-arg": "^8.1.2", - "npm-registry-fetch": "^11.0.0" - } - }, - "libnpmdiff": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/libnpmdiff/-/libnpmdiff-2.0.4.tgz", - "integrity": "sha512-q3zWePOJLHwsLEUjZw3Kyu/MJMYfl4tWCg78Vl6QGSfm4aXBUSVzMzjJ6jGiyarsT4d+1NH4B1gxfs62/+y9iQ==", - "dev": true, - "requires": { - "@npmcli/disparity-colors": "^1.0.1", - "@npmcli/installed-package-contents": "^1.0.7", - "binary-extensions": "^2.2.0", - "diff": "^5.0.0", - "minimatch": "^3.0.4", - "npm-package-arg": "^8.1.1", - "pacote": "^11.3.0", - "tar": "^6.1.0" - } - }, - "libnpmexec": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/libnpmexec/-/libnpmexec-2.0.0.tgz", - "integrity": "sha512-9zHswx//Lp2ao+huWF2aL+6v4haMncyxNusk6Us2fbLNnPh3+rgSkv38LJ2v8gmKS2kAnkUmQf8pHjcZ+7Z3NA==", - "dev": true, - "requires": { - "@npmcli/arborist": "^2.3.0", - "@npmcli/ci-detect": "^1.3.0", - "@npmcli/run-script": "^1.8.4", - "chalk": "^4.1.0", - "mkdirp-infer-owner": "^2.0.0", - "npm-package-arg": "^8.1.2", - "pacote": "^11.3.1", - "proc-log": "^1.0.0", - "read": "^1.0.7", - "read-package-json-fast": "^2.0.2", - "walk-up-path": "^1.0.0" - } - }, - "libnpmfund": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/libnpmfund/-/libnpmfund-1.1.0.tgz", - "integrity": "sha512-Kfmh3pLS5/RGKG5WXEig8mjahPVOxkik6lsbH4iX0si1xxNi6eeUh/+nF1MD+2cgalsQif3O5qyr6mNz2ryJrQ==", - "dev": true, - "requires": { - "@npmcli/arborist": "^2.5.0" - } - }, - "libnpmhook": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/libnpmhook/-/libnpmhook-6.0.3.tgz", - "integrity": "sha512-3fmkZJibIybzmAvxJ65PeV3NzRc0m4xmYt6scui5msocThbEp4sKFT80FhgrCERYDjlUuFahU6zFNbJDHbQ++g==", - "dev": true, - "requires": { - "aproba": "^2.0.0", - "npm-registry-fetch": "^11.0.0" - } - }, - "libnpmorg": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/libnpmorg/-/libnpmorg-2.0.3.tgz", - "integrity": "sha512-JSGl3HFeiRFUZOUlGdiNcUZOsUqkSYrg6KMzvPZ1WVZ478i47OnKSS0vkPmX45Pai5mTKuwIqBMcGWG7O8HfdA==", - "dev": true, - "requires": { - "aproba": "^2.0.0", - "npm-registry-fetch": "^11.0.0" - } - }, - "libnpmpack": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/libnpmpack/-/libnpmpack-2.0.1.tgz", - "integrity": "sha512-He4/jxOwlaQ7YG7sIC1+yNeXeUDQt8RLBvpI68R3RzPMZPa4/VpxhlDo8GtBOBDYoU8eq6v1wKL38sq58u4ibQ==", - "dev": true, - "requires": { - "@npmcli/run-script": "^1.8.3", - "npm-package-arg": "^8.1.0", - "pacote": "^11.2.6" - } - }, - "libnpmpublish": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-4.0.2.tgz", - "integrity": "sha512-+AD7A2zbVeGRCFI2aO//oUmapCwy7GHqPXFJh3qpToSRNU+tXKJ2YFUgjt04LPPAf2dlEH95s6EhIHM1J7bmOw==", - "dev": true, - "requires": { - "normalize-package-data": "^3.0.2", - "npm-package-arg": "^8.1.2", - "npm-registry-fetch": "^11.0.0", - "semver": "^7.1.3", - "ssri": "^8.0.1" - } - }, - "libnpmsearch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/libnpmsearch/-/libnpmsearch-3.1.2.tgz", - "integrity": "sha512-BaQHBjMNnsPYk3Bl6AiOeVuFgp72jviShNBw5aHaHNKWqZxNi38iVNoXbo6bG/Ccc/m1To8s0GtMdtn6xZ1HAw==", - "dev": true, - "requires": { - "npm-registry-fetch": "^11.0.0" - } - }, - "libnpmteam": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/libnpmteam/-/libnpmteam-2.0.4.tgz", - "integrity": "sha512-FPrVJWv820FZFXaflAEVTLRWZrerCvfe7ZHSMzJ/62EBlho2KFlYKjyNEsPW3JiV7TLSXi3vo8u0gMwIkXSMTw==", - "dev": true, - "requires": { - "aproba": "^2.0.0", - "npm-registry-fetch": "^11.0.0" - } - }, - "libnpmversion": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/libnpmversion/-/libnpmversion-1.2.1.tgz", - "integrity": "sha512-AA7x5CFgBFN+L4/JWobnY5t4OAHjQuPbAwUYJ7/NtHuyLut5meb+ne/aj0n7PWNiTGCJcRw/W6Zd2LoLT7EZuQ==", - "dev": true, - "requires": { - "@npmcli/git": "^2.0.7", - "@npmcli/run-script": "^1.8.4", - "json-parse-even-better-errors": "^2.3.1", - "semver": "^7.3.5", - "stringify-package": "^1.0.1" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "make-fetch-happen": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.0.4.tgz", - "integrity": "sha512-sQWNKMYqSmbAGXqJg2jZ+PmHh5JAybvwu0xM8mZR/bsTjGiTASj3ldXJV7KFHy1k/IJIBkjxQFoWIVsv9+PQMg==", - "dev": true, - "requires": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^5.0.0", - "ssri": "^8.0.0" - } - }, - "mime-db": { - "version": "1.48.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz", - "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==", - "dev": true - }, - "mime-types": { - "version": "2.1.31", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz", - "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==", - "dev": true, - "requires": { - "mime-db": "1.48.0" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minipass": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", - "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-fetch": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.3.4.tgz", - "integrity": "sha512-TielGogIzbUEtd1LsjZFs47RWuHHfhl6TiCx1InVxApBAmQ8bL0dL5ilkLGcRvuyW/A9nE+Lvn855Ewz8S0PnQ==", - "dev": true, - "requires": { - "encoding": "^0.1.12", - "minipass": "^3.1.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" - } - }, - "minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-json-stream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", - "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", - "dev": true, - "requires": { - "jsonparse": "^1.3.1", - "minipass": "^3.0.0" - } - }, - "minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - }, - "mkdirp-infer-owner": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz", - "integrity": "sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==", - "dev": true, - "requires": { - "chownr": "^2.0.0", - "infer-owner": "^1.0.4", - "mkdirp": "^1.0.3" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "dev": true - }, - "node-gyp": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", - "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==", - "dev": true, - "requires": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.3", - "nopt": "^5.0.0", - "npmlog": "^4.1.2", - "request": "^2.88.2", - "rimraf": "^3.0.2", - "semver": "^7.3.2", - "tar": "^6.0.2", - "which": "^2.0.2" - }, - "dependencies": { - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, - "nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "dev": true, - "requires": { - "abbrev": "1" - } - }, - "normalize-package-data": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.2.tgz", - "integrity": "sha512-6CdZocmfGaKnIHPVFhJJZ3GuR8SsLKvDANFp47Jmy51aKIr8akjAWTSxtpI+MBgBFdSMRyo4hMpDlT6dTffgZg==", - "dev": true, - "requires": { - "hosted-git-info": "^4.0.1", - "resolve": "^1.20.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - } - }, - "npm-audit-report": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/npm-audit-report/-/npm-audit-report-2.1.5.tgz", - "integrity": "sha512-YB8qOoEmBhUH1UJgh1xFAv7Jg1d+xoNhsDYiFQlEFThEBui0W1vIz2ZK6FVg4WZjwEdl7uBQlm1jy3MUfyHeEw==", - "dev": true, - "requires": { - "chalk": "^4.0.0" - } - }, - "npm-bundled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", - "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", - "dev": true, - "requires": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npm-install-checks": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz", - "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==", - "dev": true, - "requires": { - "semver": "^7.1.1" - } - }, - "npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", - "dev": true - }, - "npm-package-arg": { - "version": "8.1.5", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", - "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", - "dev": true, - "requires": { - "hosted-git-info": "^4.0.1", - "semver": "^7.3.4", - "validate-npm-package-name": "^3.0.0" - } - }, - "npm-packlist": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.2.2.tgz", - "integrity": "sha512-Jt01acDvJRhJGthnUJVF/w6gumWOZxO7IkpY/lsX9//zqQgnF7OJaxgQXcerd4uQOLu7W5bkb4mChL9mdfm+Zg==", - "dev": true, - "requires": { - "glob": "^7.1.6", - "ignore-walk": "^3.0.3", - "npm-bundled": "^1.1.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npm-pick-manifest": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz", - "integrity": "sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==", - "dev": true, - "requires": { - "npm-install-checks": "^4.0.0", - "npm-normalize-package-bin": "^1.0.1", - "npm-package-arg": "^8.1.2", - "semver": "^7.3.4" - } - }, - "npm-profile": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/npm-profile/-/npm-profile-5.0.4.tgz", - "integrity": "sha512-OKtU7yoAEBOnc8zJ+/uo5E4ugPp09sopo+6y1njPp+W99P8DvQon3BJYmpvyK2Bf1+3YV5LN1bvgXRoZ1LUJBA==", - "dev": true, - "requires": { - "npm-registry-fetch": "^11.0.0" - } - }, - "npm-registry-fetch": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", - "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", - "dev": true, - "requires": { - "make-fetch-happen": "^9.0.1", - "minipass": "^3.1.3", - "minipass-fetch": "^1.3.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.0.0", - "npm-package-arg": "^8.0.0" - } - }, - "npm-user-validate": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-user-validate/-/npm-user-validate-1.0.1.tgz", - "integrity": "sha512-uQwcd/tY+h1jnEaze6cdX/LrhWhoBxfSknxentoqmIuStxUExxjWd3ULMLFPiFUrZKbOVMowH6Jq2FRWfmhcEw==", - "dev": true - }, - "npmlog": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.0.tgz", - "integrity": "sha512-ftpIiLjerL2tUg3dCqN8pOSoB90gqZlzv/gaZoxHaKjeLClrfJIEQ1Pdxi6qSzflz916Bljdy8dTWQ4J7hAFSQ==", - "dev": true, - "requires": { - "are-we-there-yet": "^1.1.5", - "console-control-strings": "^1.1.0", - "gauge": "^3.0.0", - "set-blocking": "^2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "opener": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", - "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", - "dev": true - }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "pacote": { - "version": "11.3.5", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-11.3.5.tgz", - "integrity": "sha512-fT375Yczn4zi+6Hkk2TBe1x1sP8FgFsEIZ2/iWaXY2r/NkhDJfxbcn5paz1+RTFCyNf+dPnaoBDJoAxXSU8Bkg==", - "dev": true, - "requires": { - "@npmcli/git": "^2.1.0", - "@npmcli/installed-package-contents": "^1.0.6", - "@npmcli/promise-spawn": "^1.2.0", - "@npmcli/run-script": "^1.8.2", - "cacache": "^15.0.5", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "infer-owner": "^1.0.4", - "minipass": "^3.1.3", - "mkdirp": "^1.0.3", - "npm-package-arg": "^8.0.1", - "npm-packlist": "^2.1.4", - "npm-pick-manifest": "^6.0.0", - "npm-registry-fetch": "^11.0.0", - "promise-retry": "^2.0.1", - "read-package-json-fast": "^2.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.1.0" - } - }, - "parse-conflict-json": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-1.1.1.tgz", - "integrity": "sha512-4gySviBiW5TRl7XHvp1agcS7SOe0KZOjC//71dzZVWJrY9hCrgtvl5v3SyIxCZ4fZF47TxD9nfzmxcx76xmbUw==", - "dev": true, - "requires": { - "json-parse-even-better-errors": "^2.3.0", - "just-diff": "^3.0.1", - "just-diff-apply": "^3.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "proc-log": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-1.0.0.tgz", - "integrity": "sha512-aCk8AO51s+4JyuYGg3Q/a6gnrlDO09NpVWePtjp7xwphcoQ04x5WAfCyugcsbLooWcMJ87CLkD4+604IckEdhg==", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "promise-all-reject-late": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz", - "integrity": "sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==", - "dev": true - }, - "promise-call-limit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-call-limit/-/promise-call-limit-1.0.1.tgz", - "integrity": "sha512-3+hgaa19jzCGLuSCbieeRsu5C2joKfYn8pY6JAuXFRVfF4IO+L7UPpFWNTeWT9pM7uhskvbPPd/oEOktCn317Q==", - "dev": true - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true - }, - "promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "dev": true, - "requires": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - } - }, - "promzard": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz", - "integrity": "sha1-JqXW7ox97kyxIggwWs+5O6OCqe4=", - "dev": true, - "requires": { - "read": "1" - } - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "qrcode-terminal": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz", - "integrity": "sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==", - "dev": true - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true - }, - "read": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", - "dev": true, - "requires": { - "mute-stream": "~0.0.4" - } - }, - "read-cmd-shim": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-2.0.0.tgz", - "integrity": "sha512-HJpV9bQpkl6KwjxlJcBoqu9Ba0PQg8TqSNIOrulGt54a0uup0HtevreFHzYzkm0lpnleRdNBzXznKrgxglEHQw==", - "dev": true - }, - "read-package-json": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-3.0.1.tgz", - "integrity": "sha512-aLcPqxovhJTVJcsnROuuzQvv6oziQx4zd3JvG0vGCL5MjTONUc4uJ90zCBC6R7W7oUKBNoR/F8pkyfVwlbxqng==", - "dev": true, - "requires": { - "glob": "^7.1.1", - "json-parse-even-better-errors": "^2.3.0", - "normalize-package-data": "^3.0.0", - "npm-normalize-package-bin": "^1.0.0" - } - }, - "read-package-json-fast": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz", - "integrity": "sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==", - "dev": true, - "requires": { - "json-parse-even-better-errors": "^2.3.0", - "npm-normalize-package-bin": "^1.0.1" - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "readdir-scoped-modules": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", - "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", - "dev": true, - "requires": { - "debuglog": "^1.0.1", - "dezalgo": "^1.0.0", - "graceful-fs": "^4.1.2", - "once": "^1.3.0" - } - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - } - } - }, - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true - }, - "smart-buffer": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", - "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", - "dev": true - }, - "socks": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz", - "integrity": "sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==", - "dev": true, - "requires": { - "ip": "^1.1.5", - "smart-buffer": "^4.1.0" - } - }, - "socks-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz", - "integrity": "sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA==", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4", - "socks": "^2.3.3" - } - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz", - "integrity": "sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==", - "dev": true - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", - "dev": true, - "requires": { - "minipass": "^3.1.1" - } - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "stringify-package": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stringify-package/-/stringify-package-1.0.1.tgz", - "integrity": "sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, + "ini": "^2.0.0", + "mkdirp-infer-owner": "^2.0.0", + "nopt": "^5.0.0", + "semver": "^7.3.4", + "walk-up-path": "^1.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/@npmcli/disparity-colors": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "ansi-styles": "^4.3.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/@npmcli/fs": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + } + }, + "node_modules/npm/node_modules/@npmcli/git": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/promise-spawn": "^1.3.2", + "lru-cache": "^6.0.0", + "mkdirp": "^1.0.4", + "npm-pick-manifest": "^6.1.1", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^2.0.2" + } + }, + "node_modules/npm/node_modules/@npmcli/installed-package-contents": { + "version": "1.0.7", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" + }, + "bin": { + "installed-package-contents": "index.js" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/npm/node_modules/@npmcli/map-workspaces": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/name-from-folder": "^1.0.1", + "glob": "^7.1.6", + "minimatch": "^3.0.4", + "read-package-json-fast": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/@npmcli/metavuln-calculator": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "cacache": "^15.0.5", + "pacote": "^11.1.11", + "semver": "^7.3.2" + } + }, + "node_modules/npm/node_modules/@npmcli/move-file": { + "version": "1.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/@npmcli/name-from-folder": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/@npmcli/node-gyp": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/@npmcli/package-json": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^2.3.1" + } + }, + "node_modules/npm/node_modules/@npmcli/promise-spawn": { + "version": "1.3.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "infer-owner": "^1.0.4" + } + }, + "node_modules/npm/node_modules/@npmcli/run-script": { + "version": "1.8.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/node-gyp": "^1.0.2", + "@npmcli/promise-spawn": "^1.3.2", + "node-gyp": "^7.1.0", + "read-package-json-fast": "^2.0.1" + } + }, + "node_modules/npm/node_modules/@tootallnate/once": { + "version": "1.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/npm/node_modules/abbrev": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/agent-base": { + "version": "6.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/npm/node_modules/agentkeepalive": { + "version": "4.1.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/npm/node_modules/aggregate-error": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/ajv": { + "version": "6.12.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/npm/node_modules/ansi-regex": { + "version": "2.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/npm/node_modules/ansicolors": { + "version": "0.3.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/ansistyles": { + "version": "0.1.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/aproba": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/archy": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/are-we-there-yet": { + "version": "1.1.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/asap": { + "version": "2.0.6", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/asn1": { + "version": "0.2.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/npm/node_modules/assert-plus": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/npm/node_modules/asynckit": { + "version": "0.4.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/aws-sign2": { + "version": "0.7.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/aws4": { + "version": "1.11.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/npm/node_modules/bin-links": { + "version": "2.2.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "cmd-shim": "^4.0.1", + "mkdirp": "^1.0.3", + "npm-normalize-package-bin": "^1.0.0", + "read-cmd-shim": "^2.0.0", + "rimraf": "^3.0.0", + "write-file-atomic": "^3.0.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/binary-extensions": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/npm/node_modules/builtins": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/cacache": { + "version": "15.3.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/npm/node_modules/caseless": { + "version": "0.12.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0" + }, + "node_modules/npm/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/npm/node_modules/chownr": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/cidr-regex": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "ip-regex": "^4.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/clean-stack": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/cli-columns": { + "version": "3.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "string-width": "^2.0.0", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm/node_modules/cli-table3": { + "version": "0.6.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "object-assign": "^4.1.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "colors": "^1.1.2" + } + }, + "node_modules/npm/node_modules/cli-table3/node_modules/ansi-regex": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/cli-table3/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/cli-table3/node_modules/string-width": { + "version": "4.2.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/cli-table3/node_modules/strip-ansi": { + "version": "6.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/clone": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/npm/node_modules/cmd-shim": { + "version": "4.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "mkdirp-infer-owner": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/code-point-at": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/npm/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/color-support": { + "version": "1.1.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/npm/node_modules/colors": { + "version": "1.4.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/npm/node_modules/columnify": { + "version": "1.5.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "strip-ansi": "^3.0.0", + "wcwidth": "^1.0.0" + } + }, + "node_modules/npm/node_modules/combined-stream": { + "version": "1.0.8", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/npm/node_modules/common-ancestor-path": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/console-control-strings": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/core-util-is": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/dashdash": { + "version": "1.14.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/npm/node_modules/debug": { + "version": "4.3.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "tar": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz", - "integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==", - "dev": true, - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "tiny-relative-date": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/tiny-relative-date/-/tiny-relative-date-1.3.0.tgz", - "integrity": "sha512-MOQHpzllWxDCHHaDno30hhLfbouoYlOI8YlMNtvKe1zXbjEVhbcEovQxvZrPvtiYW630GQDoMMarCnjfyfHA+A==", - "dev": true - }, - "treeverse": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/treeverse/-/treeverse-1.0.4.tgz", - "integrity": "sha512-whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g==", - "dev": true - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dev": true, - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", - "dev": true, - "requires": { - "builtins": "^1.0.3" - } - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "walk-up-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-1.0.0.tgz", - "integrity": "sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==", - "dev": true - }, - "wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "dev": true, - "requires": { - "defaults": "^1.0.3" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "optional": true + } + } + }, + "node_modules/npm/node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/debuglog": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/defaults": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/npm/node_modules/delayed-stream": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/npm/node_modules/delegates": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/depd": { + "version": "1.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/npm/node_modules/dezalgo": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/npm/node_modules/diff": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/npm/node_modules/ecc-jsbn": { + "version": "0.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/npm/node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/encoding": { + "version": "0.1.13", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/npm/node_modules/env-paths": { + "version": "2.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/err-code": { + "version": "2.0.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/extend": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/extsprintf": { + "version": "1.3.0", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/fast-deep-equal": { + "version": "3.1.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/fastest-levenshtein": { + "version": "1.0.12", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/forever-agent": { + "version": "0.6.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/fs-minipass": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/fs.realpath": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/function-bind": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/gauge": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1 || ^2.0.0", + "strip-ansi": "^3.0.1 || ^4.0.0", + "wide-align": "^1.1.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/getpass": { + "version": "0.1.7", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/npm/node_modules/glob": { + "version": "7.2.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/graceful-fs": { + "version": "4.2.8", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/har-schema": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/har-validator": { + "version": "5.1.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/has": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/npm/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/has-unicode": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/hosted-git-info": { + "version": "4.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/http-cache-semantics": { + "version": "4.1.0", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause" + }, + "node_modules/npm/node_modules/http-proxy-agent": { + "version": "4.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/npm/node_modules/http-signature": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/npm/node_modules/https-proxy-agent": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/npm/node_modules/humanize-ms": { + "version": "1.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/npm/node_modules/iconv-lite": { + "version": "0.6.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/ignore-walk": { + "version": "3.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minimatch": "^3.0.4" + } + }, + "node_modules/npm/node_modules/imurmurhash": { + "version": "0.1.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/npm/node_modules/indent-string": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/infer-owner": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/inflight": { + "version": "1.0.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/npm/node_modules/inherits": { + "version": "2.0.4", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/ini": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/init-package-json": { + "version": "2.0.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-package-arg": "^8.1.5", + "promzard": "^0.3.0", + "read": "~1.0.1", + "read-package-json": "^4.1.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/ip": { + "version": "1.1.5", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/ip-regex": { + "version": "4.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/is-cidr": { + "version": "4.0.2", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "cidr-regex": "^3.1.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/is-core-module": { + "version": "2.7.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/npm/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/is-lambda": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/is-typedarray": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/isstream": { + "version": "0.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/jsbn": { + "version": "0.1.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/json-schema": { + "version": "0.2.3", + "dev": true, + "inBundle": true + }, + "node_modules/npm/node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/json-stringify-nice": { + "version": "1.1.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/json-stringify-safe": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/jsonparse": { + "version": "1.3.1", + "dev": true, + "engines": [ + "node >= 0.2.0" + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/jsprim": { + "version": "1.4.1", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "inBundle": true, + "license": "MIT", + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "node_modules/npm/node_modules/just-diff": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/just-diff-apply": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/libnpmaccess": { + "version": "4.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "minipass": "^3.1.1", + "npm-package-arg": "^8.1.2", + "npm-registry-fetch": "^11.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/libnpmdiff": { + "version": "2.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/disparity-colors": "^1.0.1", + "@npmcli/installed-package-contents": "^1.0.7", + "binary-extensions": "^2.2.0", + "diff": "^5.0.0", + "minimatch": "^3.0.4", + "npm-package-arg": "^8.1.4", + "pacote": "^11.3.4", + "tar": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/libnpmexec": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^2.3.0", + "@npmcli/ci-detect": "^1.3.0", + "@npmcli/run-script": "^1.8.4", + "chalk": "^4.1.0", + "mkdirp-infer-owner": "^2.0.0", + "npm-package-arg": "^8.1.2", + "pacote": "^11.3.1", + "proc-log": "^1.0.0", + "read": "^1.0.7", + "read-package-json-fast": "^2.0.2", + "walk-up-path": "^1.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/libnpmfund": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^2.5.0" + } + }, + "node_modules/npm/node_modules/libnpmhook": { + "version": "6.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^11.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/libnpmorg": { + "version": "2.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^11.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/libnpmpack": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/run-script": "^1.8.3", + "npm-package-arg": "^8.1.0", + "pacote": "^11.2.6" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/libnpmpublish": { + "version": "4.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "normalize-package-data": "^3.0.2", + "npm-package-arg": "^8.1.2", + "npm-registry-fetch": "^11.0.0", + "semver": "^7.1.3", + "ssri": "^8.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/libnpmsearch": { + "version": "3.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-registry-fetch": "^11.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/libnpmteam": { + "version": "2.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^11.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/libnpmversion": { + "version": "1.2.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^2.0.7", + "@npmcli/run-script": "^1.8.4", + "json-parse-even-better-errors": "^2.3.1", + "semver": "^7.3.5", + "stringify-package": "^1.0.1" + } + }, + "node_modules/npm/node_modules/lru-cache": { + "version": "6.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/make-fetch-happen": { + "version": "9.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.2", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^6.0.0", + "ssri": "^8.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/npm/node_modules/mime-db": { + "version": "1.49.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/npm/node_modules/mime-types": { + "version": "2.1.32", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.49.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/npm/node_modules/minimatch": { + "version": "3.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/minipass": { + "version": "3.1.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-collect": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/minipass-fetch": { + "version": "1.4.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.1.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "optionalDependencies": { + "encoding": "^0.1.12" + } + }, + "node_modules/npm/node_modules/minipass-flush": { + "version": "1.0.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/minipass-json-stream": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } + }, + "node_modules/npm/node_modules/minipass-pipeline": { + "version": "1.2.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-sized": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minizlib": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/mkdirp": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/mkdirp-infer-owner": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "infer-owner": "^1.0.4", + "mkdirp": "^1.0.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/ms": { + "version": "2.1.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/mute-stream": { + "version": "0.0.8", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/negotiator": { + "version": "0.6.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/npm/node_modules/node-gyp": { + "version": "7.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.3", + "nopt": "^5.0.0", + "npmlog": "^4.1.2", + "request": "^2.88.2", + "rimraf": "^3.0.2", + "semver": "^7.3.2", + "tar": "^6.0.2", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": ">= 10.12.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/aproba": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/node-gyp/node_modules/gauge": { + "version": "2.7.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/npmlog": { + "version": "4.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/string-width": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/nopt": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/normalize-package-data": { + "version": "3.0.3", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/npm-audit-report": { + "version": "2.1.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "chalk": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/npm-bundled": { + "version": "1.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npm/node_modules/npm-install-checks": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/npm-normalize-package-bin": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/npm-package-arg": { + "version": "8.1.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "hosted-git-info": "^4.0.1", + "semver": "^7.3.4", + "validate-npm-package-name": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/npm-packlist": { + "version": "2.2.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.6", + "ignore-walk": "^3.0.3", + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" + }, + "bin": { + "npm-packlist": "bin/index.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/npm-pick-manifest": { + "version": "6.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-install-checks": "^4.0.0", + "npm-normalize-package-bin": "^1.0.1", + "npm-package-arg": "^8.1.2", + "semver": "^7.3.4" + } + }, + "node_modules/npm/node_modules/npm-profile": { + "version": "5.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-registry-fetch": "^11.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/npm-registry-fetch": { + "version": "11.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "make-fetch-happen": "^9.0.1", + "minipass": "^3.1.3", + "minipass-fetch": "^1.3.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.0.0", + "npm-package-arg": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/npm-user-validate": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause" + }, + "node_modules/npm/node_modules/npmlog": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, + "node_modules/npm/node_modules/npmlog/node_modules/are-we-there-yet": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/number-is-nan": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/oauth-sign": { + "version": "0.9.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/object-assign": { + "version": "4.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/once": { + "version": "1.4.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/npm/node_modules/opener": { + "version": "1.5.2", + "dev": true, + "inBundle": true, + "license": "(WTFPL OR MIT)", + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/npm/node_modules/p-map": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/pacote": { + "version": "11.3.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^2.1.0", + "@npmcli/installed-package-contents": "^1.0.6", + "@npmcli/promise-spawn": "^1.2.0", + "@npmcli/run-script": "^1.8.2", + "cacache": "^15.0.5", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "infer-owner": "^1.0.4", + "minipass": "^3.1.3", + "mkdirp": "^1.0.3", + "npm-package-arg": "^8.0.1", + "npm-packlist": "^2.1.4", + "npm-pick-manifest": "^6.0.0", + "npm-registry-fetch": "^11.0.0", + "promise-retry": "^2.0.1", + "read-package-json-fast": "^2.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.1.0" + }, + "bin": { + "pacote": "lib/bin.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/parse-conflict-json": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^2.3.0", + "just-diff": "^3.0.1", + "just-diff-apply": "^3.0.0" + } + }, + "node_modules/npm/node_modules/path-is-absolute": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/performance-now": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/proc-log": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/promise-all-reject-late": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/promise-call-limit": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/promise-inflight": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/promise-retry": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/promzard": { + "version": "0.3.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "read": "1" + } + }, + "node_modules/npm/node_modules/psl": { + "version": "1.8.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/punycode": { + "version": "2.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/qrcode-terminal": { + "version": "0.12.0", + "dev": true, + "inBundle": true, + "bin": { + "qrcode-terminal": "bin/qrcode-terminal.js" + } + }, + "node_modules/npm/node_modules/qs": { + "version": "6.5.2", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/npm/node_modules/read": { + "version": "1.0.7", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "mute-stream": "~0.0.4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/npm/node_modules/read-cmd-shim": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/read-package-json": { + "version": "4.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.1", + "json-parse-even-better-errors": "^2.3.0", + "normalize-package-data": "^3.0.0", + "npm-normalize-package-bin": "^1.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/read-package-json-fast": { + "version": "2.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^2.3.0", + "npm-normalize-package-bin": "^1.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/readable-stream": { + "version": "3.6.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/npm/node_modules/readdir-scoped-modules": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, + "node_modules/npm/node_modules/request": { + "version": "2.88.2", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/npm/node_modules/request/node_modules/form-data": { + "version": "2.3.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/npm/node_modules/request/node_modules/tough-cookie": { + "version": "2.5.0", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/npm/node_modules/retry": { + "version": "0.12.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm/node_modules/rimraf": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/safe-buffer": { + "version": "5.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } + { + "type": "patreon", + "url": "https://www.patreon.com/feross" }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + { + "type": "consulting", + "url": "https://feross.org/support" } + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/safer-buffer": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/semver": { + "version": "7.3.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/set-blocking": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/signal-exit": { + "version": "3.0.3", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/smart-buffer": { + "version": "4.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/npm/node_modules/socks": { + "version": "2.6.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ip": "^1.1.5", + "smart-buffer": "^4.1.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/npm/node_modules/socks-proxy-agent": { + "version": "6.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.1", + "socks": "^2.6.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/npm/node_modules/spdx-correct": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-exceptions": { + "version": "2.3.0", + "dev": true, + "inBundle": true, + "license": "CC-BY-3.0" + }, + "node_modules/npm/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-license-ids": { + "version": "3.0.10", + "dev": true, + "inBundle": true, + "license": "CC0-1.0" + }, + "node_modules/npm/node_modules/sshpk": { + "version": "1.16.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/ssri": { + "version": "8.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/string_decoder": { + "version": "1.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/npm/node_modules/string-width": { + "version": "2.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/string-width/node_modules/ansi-regex": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/string-width/node_modules/strip-ansi": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/stringify-package": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/strip-ansi": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/tar": { + "version": "6.1.11", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/npm/node_modules/text-table": { + "version": "0.2.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/tiny-relative-date": { + "version": "1.3.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/treeverse": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/tunnel-agent": { + "version": "0.6.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/tweetnacl": { + "version": "0.14.5", + "dev": true, + "inBundle": true, + "license": "Unlicense" + }, + "node_modules/npm/node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/npm/node_modules/unique-filename": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/npm/node_modules/unique-slug": { + "version": "2.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/npm/node_modules/uri-js": { + "version": "4.4.1", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/npm/node_modules/util-deprecate": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/uuid": { + "version": "3.4.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/npm/node_modules/validate-npm-package-license": { + "version": "3.0.4", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/npm/node_modules/validate-npm-package-name": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "builtins": "^1.0.3" } }, - "npm-conf": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", - "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", - "requires": { - "config-chain": "^1.1.11", - "pify": "^3.0.0" - }, + "node_modules/npm/node_modules/verror": { + "version": "1.10.0", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "inBundle": true, + "license": "MIT", "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" } }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "requires": { - "path-key": "^2.0.0" + "node_modules/npm/node_modules/walk-up-path": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/wcwidth": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" } }, - "nth-check": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", - "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", - "requires": { - "boolbase": "^1.0.0" + "node_modules/npm/node_modules/which": { + "version": "2.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" } }, - "nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" + "node_modules/npm/node_modules/wide-align": { + "version": "1.1.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "string-width": "^1.0.2 || 2" + } }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + "node_modules/npm/node_modules/wrappy": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "ISC" }, - "object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", - "dev": true + "node_modules/npm/node_modules/write-file-atomic": { + "version": "3.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } }, - "object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "node_modules/npm/node_modules/yallist": { + "version": "4.0.0", "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "inBundle": true, + "license": "ISC" + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true + "node_modules/nwsapi": { + "version": "2.2.13", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.13.tgz", + "integrity": "sha512-cTGB9ptp9dY9A5VbMSe7fQBcl/tt22Vcqdq8+eN93rblOuE0aCFu4aZ2vMwct/2t+lFnosm8RkQW1I0Omb1UtQ==" }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", + "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "object.entries": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.4.tgz", - "integrity": "sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA==", + "node_modules/object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "object.fromentries": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.4.tgz", - "integrity": "sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ==", + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", - "has": "^1.0.3" + "engines": { + "node": ">= 0.4" } }, - "object.values": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", - "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.2" + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "on-finished": { + "node_modules/on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", "dev": true, - "requires": { + "dependencies": { "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" } }, - "once": { + "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { "wrappy": "1" } }, - "onetime": { + "node_modules/onetime": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, - "requires": { + "dependencies": { "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "opener": { + "node_modules/opener": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", - "dev": true + "dev": true, + "bin": { + "opener": "bin/opener-bin.js" + } }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "ora": { + "node_modules/ora": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", "dev": true, - "requires": { + "dependencies": { "bl": "^4.1.0", "chalk": "^4.1.0", "cli-cursor": "^3.1.0", @@ -11632,809 +11307,814 @@ "strip-ansi": "^6.0.0", "wcwidth": "^1.0.1" }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "os-browserify": { + "node_modules/os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", "dev": true }, - "os-filter-obj": { + "node_modules/os-filter-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/os-filter-obj/-/os-filter-obj-2.0.0.tgz", "integrity": "sha512-uksVLsqG3pVdzzPvmAHpBK0wKxYItuzZr7SziusRPoz67tGV8rL1szZ6IdeUrbqLjGDwApBtN29eEE3IqGHOjg==", - "requires": { + "dependencies": { "arch": "^2.1.0" + }, + "engines": { + "node": ">=4" } }, - "os-tmpdir": { + "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "p-cancelable": { + "node_modules/p-cancelable": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", - "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==" + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", + "engines": { + "node": ">=4" + } }, - "p-each-series": { + "node_modules/p-each-series": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "p-event": { + "node_modules/p-event": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-event/-/p-event-1.3.0.tgz", - "integrity": "sha1-jmtPT2XHK8W2/ii3XtqHT5akoIU=", - "requires": { + "integrity": "sha512-hV1zbA7gwqPVFcapfeATaNjQ3J0NuzorHPyG8GPL9g/Y/TplWVBVoCKCXL6Ej2zscrCEv195QNWJXuBH6XZuzA==", + "dependencies": { "p-timeout": "^1.1.1" + }, + "engines": { + "node": ">=4" } }, - "p-filter": { + "node_modules/p-filter": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz", "integrity": "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==", "dev": true, - "requires": { + "dependencies": { "p-map": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, - "p-finally": { + "node_modules/p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "engines": { + "node": ">=4" + } }, - "p-is-promise": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", - "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=" + "node_modules/p-is-promise": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", + "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "p-limit": { + "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, - "requires": { + "dependencies": { "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "p-locate": { + "node_modules/p-locate": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, - "requires": { + "dependencies": { "p-limit": "^2.2.0" }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, "dependencies": { - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - } + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "p-map": { + "node_modules/p-map": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "p-map-series": { + "node_modules/p-map-series": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-map-series/-/p-map-series-1.0.0.tgz", - "integrity": "sha1-v5j+V1cFZYqeE1G++4WuTB8Hvco=", - "requires": { + "integrity": "sha512-4k9LlvY6Bo/1FcIdV33wqZQES0Py+iKISU9Uc8p8AjWoZPnFKMpVIVD3s0EYn4jzLh1I+WeUZkJ0Yoa4Qfw3Kg==", + "dependencies": { "p-reduce": "^1.0.0" + }, + "engines": { + "node": ">=4" } }, - "p-queue": { + "node_modules/p-queue": { "version": "6.6.2", "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", - "requires": { + "dependencies": { "eventemitter3": "^4.0.4", "p-timeout": "^3.2.0" }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-queue/node_modules/p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", "dependencies": { - "p-timeout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", - "requires": { - "p-finally": "^1.0.0" - } - } + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=8" } }, - "p-reduce": { + "node_modules/p-reduce": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", - "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=" + "integrity": "sha512-3Tx1T3oM1xO/Y8Gj0sWyE78EIJZ+t+aEmXUdvQgvGmSMri7aPTHoovbXEreWKkL5j21Er60XAWLTzKbAKYOujQ==", + "engines": { + "node": ">=4" + } }, - "p-retry": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz", - "integrity": "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==", + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", "dev": true, - "requires": { - "@types/retry": "^0.12.0", + "dependencies": { + "@types/retry": "0.12.0", "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" } }, - "p-timeout": { + "node_modules/p-timeout": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", - "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", - "requires": { + "integrity": "sha512-gb0ryzr+K2qFqFv6qi3khoeqMZF/+ajxQipEF6NteZVnvz9tzdsfAVj3lYtn1gAXvH5lfLwfxEII799gt/mRIA==", + "dependencies": { "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=4" } }, - "p-try": { + "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "pako": { + "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", "dev": true }, - "parent-module": { + "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, - "requires": { + "dependencies": { "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "node_modules/parse-asn1": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.7.tgz", + "integrity": "sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==", "dev": true, - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" + "dependencies": { + "asn1.js": "^4.10.1", + "browserify-aes": "^1.2.0", + "evp_bytestokey": "^1.0.3", + "hash-base": "~3.0", + "pbkdf2": "^3.1.2", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" } }, - "parse-entities": { + "node_modules/parse-entities": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", - "requires": { + "dependencies": { "character-entities": "^1.0.0", "character-entities-legacy": "^1.0.0", "character-reference-invalid": "^1.0.0", "is-alphanumerical": "^1.0.0", "is-decimal": "^1.0.0", "is-hexadecimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "requires": { - "error-ex": "^1.2.0" + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + "node_modules/parse5": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", + "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", + "dependencies": { + "entities": "^4.5.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } }, - "parseurl": { + "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "path-browserify": { + "node_modules/path-browserify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", "dev": true }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "requires": { - "pinkie-promise": "^2.0.0" + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" } }, - "path-is-absolute": { + "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "path-key": { + "node_modules/path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "engines": { + "node": ">=4" + } }, - "path-parse": { + "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, - "path-to-regexp": { + "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", "dev": true }, - "path-type": { + "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } }, - "pbkdf2": { + "node_modules/pbkdf2": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", "dev": true, - "requires": { + "dependencies": { "create-hash": "^1.1.2", "create-hmac": "^1.1.4", "ripemd160": "^2.0.1", "safe-buffer": "^5.0.1", "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" } }, - "pend": { + "node_modules/pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" }, - "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "engines": { + "node": ">=6" + } }, - "pinkie": { + "node_modules/pinkie": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "engines": { + "node": ">=0.10.0" + } }, - "pinkie-promise": { + "node_modules/pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "requires": { + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dependencies": { "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "pkg-conf": { + "node_modules/pkg-conf": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", - "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", + "integrity": "sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g==", "dev": true, - "requires": { + "dependencies": { "find-up": "^2.0.0", "load-json-file": "^4.0.0" }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-conf/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - } + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-conf/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-conf/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-conf/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-conf/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-conf/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "engines": { + "node": ">=4" } }, - "pkg-dir": { + "node_modules/pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, - "requires": { + "dependencies": { "find-up": "^4.0.0" }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - } + "engines": { + "node": ">=8" } }, - "platform": { + "node_modules/platform": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz", "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==", "dev": true }, - "please-upgrade-node": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", - "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", - "dev": true, - "requires": { - "semver-compare": "^1.0.0" - } - }, - "pluralize": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", - "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", - "dev": true - }, - "pngquant-bin": { + "node_modules/pngquant-bin": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/pngquant-bin/-/pngquant-bin-5.0.2.tgz", "integrity": "sha512-OLdT+4JZx5BqE1CFJkrvomYV0aSsv6x2Bba+aWaVc0PMfWlE+ZByNKYAdKeIqsM4uvW1HOSEHnf8KcOnykPNxA==", - "requires": { + "hasInstallScript": true, + "dependencies": { "bin-build": "^3.0.0", "bin-wrapper": "^4.0.1", "execa": "^0.10.0", "logalot": "^2.0.0" }, + "bin": { + "pngquant": "cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pngquant-bin/node_modules/cross-spawn": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz", + "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/pngquant-bin/node_modules/execa": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", + "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", - "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - } + "cross-spawn": "^6.0.0", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=4" } }, - "pnp-webpack-plugin": { + "node_modules/pngquant-bin/node_modules/get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/pnp-webpack-plugin": { "version": "1.6.4", "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz", "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==", "dev": true, - "requires": { + "dependencies": { "ts-pnp": "^1.1.6" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "engines": { + "node": ">= 0.4" } }, - "postcss": { + "node_modules/postcss": { "version": "8.2.13", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.13.tgz", "integrity": "sha512-FCE5xLH+hjbzRdpbRb1IMCvPv9yZx2QnDarBEYSN0N0HYk+TcXsEhwdFcFb+SRWOKzKGErhIEbBK2ogyLdTtfQ==", "dev": true, - "requires": { + "dependencies": { "colorette": "^1.2.2", "nanoid": "^3.1.22", "source-map": "^0.6.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" } }, - "postcss-modules": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/postcss-modules/-/postcss-modules-4.2.2.tgz", - "integrity": "sha512-/H08MGEmaalv/OU8j6bUKi/kZr2kqGF6huAW8m9UAgOLWtpFdhA14+gPBoymtqyv+D4MLsmqaF2zvIegdCxJXg==", - "dev": true, - "requires": { - "generic-names": "^2.0.1", - "icss-replace-symbols": "^1.1.0", - "lodash.camelcase": "^4.3.0", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.0", - "postcss-modules-scope": "^3.0.0", - "postcss-modules-values": "^4.0.0", - "string-hash": "^1.1.1" - } - }, - "postcss-modules-extract-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "dev": true - }, - "postcss-modules-local-by-default": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", - "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", - "dev": true, - "requires": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-modules-scope": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", - "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.4" - } - }, - "postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "dev": true, - "requires": { - "icss-utils": "^5.0.0" - } - }, - "postcss-selector-parser": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", - "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", - "dev": true - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" - }, - "prepend-http": { + "node_modules/prepend-http": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + "integrity": "sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==", + "engines": { + "node": ">=0.10.0" + } }, - "pretty-format": { + "node_modules/pretty-format": { "version": "27.4.2", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.2.tgz", "integrity": "sha512-p0wNtJ9oLuvgOQDEIZ9zQjZffK7KtyR6Si0jnXULIDwrlNF8Cuir3AZP0hHv0jmKuNN/edOnbMjnzd4uTcmWiw==", - "requires": { + "dependencies": { "@jest/types": "^27.4.2", "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", "react-is": "^17.0.1" }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" - } + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "prismjs": { - "version": "1.25.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.25.0.tgz", - "integrity": "sha512-WCjJHl1KEWbnkQom1+SzftbtXMKQoezOCYs5rECqMN+jP+apI7ftoflyqigqzopSO3hMhTEb0mFClA8lkolgEg==" + "node_modules/prismjs": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", + "engines": { + "node": ">=6" + } }, - "process": { + "node_modules/process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } }, - "process-nextick-args": { + "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, - "processenv": { + "node_modules/processenv": { "version": "3.0.9", "resolved": "https://registry.npmjs.org/processenv/-/processenv-3.0.9.tgz", "integrity": "sha512-k3SP1G2ZB1tunIcWyIAl6SgbB4lkmqookJHO2nlxwbztJJximdCGg5nPHqJ6rBtI3gYW4H0iLwdy5VSN9NlVsg==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", "dev": true }, - "progress": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.1.tgz", - "integrity": "sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==", - "dev": true + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } }, - "prop-types": { + "node_modules/prop-types": { "version": "15.7.2", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "requires": { + "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", "react-is": "^16.8.1" - }, - "dependencies": { - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - } } }, - "property-information": { + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/property-information": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", - "requires": { + "dependencies": { "xtend": "^4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "proto-list": { + "node_modules/proto-list": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=" + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==" }, - "proxy-addr": { + "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "dev": true, - "requires": { + "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" } }, - "proxy-from-env": { + "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", "dev": true }, - "pseudomap": { + "node_modules/pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==" }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + "node_modules/psl": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.13.0.tgz", + "integrity": "sha512-BFwmFXiJoFqlUpZ5Qssolv15DMyc84gTBds1BjsV1BfXEo1UyyD7GsmN67n7J77uRhoSNW1AXtXKPLcBFQn9Aw==", + "dependencies": { + "punycode": "^2.3.1" + } + }, + "node_modules/psl/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } }, - "public-encrypt": { + "node_modules/public-encrypt": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^4.1.0", "browserify-rsa": "^4.0.0", "create-hash": "^1.1.0", "parse-asn1": "^5.0.0", "randombytes": "^2.0.1", "safe-buffer": "^5.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } } }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + "node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true }, - "puppeteer": { + "node_modules/puppeteer": { "version": "13.0.0", "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-13.0.0.tgz", "integrity": "sha512-kZfGAieIVSo4bFqYuvY2KvhgP9txzmPbbnpZIzLlfdt8nEu9evXEwsbBt1BHocVQM4fJmCiS+FRyw7c8aWadNg==", + "deprecated": "< 22.8.2 is no longer supported", "dev": true, - "requires": { + "hasInstallScript": true, + "dependencies": { "debug": "4.3.2", "devtools-protocol": "0.0.937139", "extract-zip": "2.0.1", @@ -12448,241 +12128,309 @@ "unbzip2-stream": "1.4.3", "ws": "8.2.3" }, + "engines": { + "node": ">=10.18.1" + } + }, + "node_modules/puppeteer/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, "dependencies": { - "node-fetch": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.5.tgz", - "integrity": "sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==", - "dev": true, - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", - "dev": true - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", - "dev": true - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dev": true, - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/puppeteer/node_modules/https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/puppeteer/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/puppeteer/node_modules/node-fetch": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.5.tgz", + "integrity": "sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + } + }, + "node_modules/puppeteer/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/puppeteer/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/puppeteer/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/puppeteer/node_modules/ws": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true }, - "ws": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", - "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", - "dev": true + "utf-8-validate": { + "optional": true } } }, - "q": { + "node_modules/q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)", + "dev": true, + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } }, - "qs": { + "node_modules/qs": { "version": "6.9.6", "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==", - "dev": true - }, - "query-ast": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/query-ast/-/query-ast-1.0.4.tgz", - "integrity": "sha512-KFJFSvODCBjIH5HbHvITj9EEZKYUU6VX0T5CuB1ayvjUoUaZkKMi6eeby5Tf8DMukyZHlJQOE1+f3vevKUe6eg==", "dev": true, - "requires": { - "invariant": "2.2.4" + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "query-string": { + "node_modules/query-string": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "requires": { + "dependencies": { "decode-uri-component": "^0.2.0", "object-assign": "^4.1.0", "strict-uri-encode": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "querystring": { + "node_modules/querystring": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz", "integrity": "sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==", - "dev": true + "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "dev": true, + "engines": { + "node": ">=0.4.x" + } }, - "querystring-es3": { + "node_modules/querystring-es3": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true + "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" }, - "queue": { + "node_modules/queue": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", "dev": true, - "requires": { + "dependencies": { "inherits": "~2.0.3" } }, - "queue-microtask": { + "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "quick-lru": { + "node_modules/quick-lru": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "dev": true - }, - "ramda": { - "version": "0.27.1", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz", - "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "randombytes": { + "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, - "requires": { + "dependencies": { "safe-buffer": "^5.1.0" } }, - "randomfill": { + "node_modules/randomfill": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", "dev": true, - "requires": { + "dependencies": { "randombytes": "^2.0.5", "safe-buffer": "^5.1.0" } }, - "range-parser": { + "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "raw-body": { + "node_modules/raw-body": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", "dev": true, - "requires": { + "dependencies": { "bytes": "3.1.1", "http-errors": "1.8.1", "iconv-lite": "0.4.24", "unpipe": "1.0.0" }, - "dependencies": { - "bytes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", - "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", - "dev": true - } + "engines": { + "node": ">= 0.8" } }, - "rc": { + "node_modules/rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, - "requires": { + "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" }, - "dependencies": { - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - } + "bin": { + "rc": "cli.js" } }, - "react": { + "node_modules/react": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", - "dev": true, - "requires": { + "dependencies": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "react-display-name": { + "node_modules/react-display-name": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/react-display-name/-/react-display-name-0.2.5.tgz", "integrity": "sha512-I+vcaK9t4+kypiSgaiVWAipqHRXYmZIuAiS8vzFvXHHXVigg/sMKwlRgLy6LH2i3rmP+0Vzfl5lFsFRwF1r3pg==" }, - "react-dom": { + "node_modules/react-dom": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", - "dev": true, - "requires": { + "dependencies": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", "scheduler": "^0.20.2" + }, + "peerDependencies": { + "react": "17.0.2" } }, - "react-highlight-words": { + "node_modules/react-highlight-words": { "version": "0.17.0", "resolved": "https://registry.npmjs.org/react-highlight-words/-/react-highlight-words-0.17.0.tgz", "integrity": "sha512-uX1Qh5IGjnLuJT0Zok234QDwRC8h4hcVMnB99Cb7aquB1NlPPDiWKm0XpSZOTdSactvnClCk8LOmVlP+75dgHA==", - "requires": { + "dependencies": { "highlight-words-core": "^1.2.0", "memoize-one": "^4.0.0", "prop-types": "^15.5.8" + }, + "peerDependencies": { + "react": "^0.14.0 || ^15.0.0 || ^16.0.0-0 || ^17.0.0-0" } }, - "react-is": { + "node_modules/react-is": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, - "react-jss": { + "node_modules/react-jss": { "version": "10.7.1", "resolved": "https://registry.npmjs.org/react-jss/-/react-jss-10.7.1.tgz", "integrity": "sha512-Zkq53nRyM8COT9OE0Jtirwxu76dkytcA3qXrjGxak6Z5yol+i4LSAZzWSoI59h0oTaMTiKxr6ZMT3BEpPxauBA==", - "requires": { + "dependencies": { "@babel/runtime": "^7.3.1", "@emotion/is-prop-valid": "^0.7.3", "css-jss": "10.7.1", @@ -12694,73 +12442,123 @@ "shallow-equal": "^1.2.0", "theming": "^3.3.0", "tiny-warning": "^1.0.2" + }, + "peerDependencies": { + "react": ">=16.8.6" } }, - "react-refresh": { + "node_modules/react-refresh": { "version": "0.8.3", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz", "integrity": "sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "react-syntax-highlighter": { + "node_modules/react-syntax-highlighter": { "version": "15.4.5", "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-15.4.5.tgz", "integrity": "sha512-RC90KQTxZ/b7+9iE6s9nmiFLFjWswUcfULi4GwVzdFVKVMQySkJWBuOmJFfjwjMVCo0IUUuJrWebNKyviKpwLQ==", - "requires": { + "dependencies": { "@babel/runtime": "^7.3.1", "highlight.js": "^10.4.1", "lowlight": "^1.17.0", "prismjs": "^1.25.0", "refractor": "^3.2.0" + }, + "peerDependencies": { + "react": ">= 0.14.0" } }, - "react-transition-group": { + "node_modules/react-transition-group": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz", "integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==", - "requires": { + "dependencies": { "@babel/runtime": "^7.5.5", "dom-helpers": "^5.0.1", "loose-envify": "^1.4.0", "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" } }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" + "node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, "dependencies": { - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - } + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" + "node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" } }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", @@ -12768,626 +12566,405 @@ "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" - }, + } + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/readable-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } + "safe-buffer": "~5.1.0" } }, - "readdirp": { + "node_modules/readdirp": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", "dev": true, - "requires": { + "dependencies": { "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" } }, - "rechoir": { + "node_modules/rechoir": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", "dev": true, - "requires": { + "dependencies": { "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" } }, - "recursive-readdir": { + "node_modules/recursive-readdir": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", "dev": true, - "requires": { + "dependencies": { "minimatch": "3.0.4" + }, + "engines": { + "node": ">=0.10.0" } }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, "dependencies": { - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "requires": { - "get-stdin": "^4.0.1" - } - } + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "redeyed": { + "node_modules/redeyed": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", - "integrity": "sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs=", + "integrity": "sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==", "dev": true, - "requires": { + "dependencies": { "esprima": "~4.0.0" } }, - "reduce-flatten": { + "node_modules/reduce-flatten": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", - "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==" + "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", + "engines": { + "node": ">=6" + } }, - "refractor": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/refractor/-/refractor-3.5.0.tgz", - "integrity": "sha512-QwPJd3ferTZ4cSPPjdP5bsYHMytwWYnAN5EEnLtGvkqp/FCCnGsBgxrm9EuIDnjUC3Uc/kETtvVi7fSIVC74Dg==", - "requires": { + "node_modules/refractor": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/refractor/-/refractor-3.6.0.tgz", + "integrity": "sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==", + "dependencies": { "hastscript": "^6.0.0", "parse-entities": "^2.0.0", - "prismjs": "~1.25.0" + "prismjs": "~1.27.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" - }, - "regexp-tree": { - "version": "0.1.23", - "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.23.tgz", - "integrity": "sha512-+7HWfb4Bvu8Rs2eQTUIpX9I/PlQkYOuTNbRpKLJlQpSgwSkzFYh+pUj0gtvglnOZLKB6YgnIgRuJ2/IlpL48qw==", - "dev": true - }, - "regexp.prototype.flags": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", - "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "node_modules/refractor/node_modules/prismjs": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz", + "integrity": "sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==", + "engines": { + "node": ">=6" } }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, - "registry-auth-token": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", - "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", + "node_modules/registry-auth-token": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz", + "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==", "dev": true, - "requires": { - "rc": "^1.2.8" + "dependencies": { + "rc": "1.2.8" + }, + "engines": { + "node": ">=6.0.0" } }, - "repeating": { + "node_modules/repeating": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "requires": { + "integrity": "sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==", + "dependencies": { "is-finite": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "require-dir": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/require-dir/-/require-dir-1.2.0.tgz", - "integrity": "sha512-LY85DTSu+heYgDqq/mK+7zFHWkttVNRXC9NKcKGyuGLdlsfbjEPrIEYdCVrx6hqnJb+xSu3Lzaoo8VnmOhhjNA==", - "dev": true - }, - "require-directory": { + "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "require-from-string": { + "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "require-package-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/require-package-name/-/require-package-name-2.0.1.tgz", - "integrity": "sha1-wR6XJ2tluOKSP3Xav1+y7ww4Qbk=", - "dev": true + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "engines": { + "node": ">=0.10.0" + } }, - "reserved-words": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/reserved-words/-/reserved-words-0.1.2.tgz", - "integrity": "sha1-AKCUD5jNUBrqqsMWQR2a3FKzGrE=", - "dev": true + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" }, - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "responselike": { + "node_modules/responselike": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "requires": { + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dependencies": { "lowercase-keys": "^1.0.0" } }, - "restore-cursor": { + "node_modules/restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, - "requires": { + "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" } }, - "retry": { + "node_modules/retry": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "dev": true - }, - "retry-ignore-abort": { - "version": "2.2.27", - "resolved": "https://registry.npmjs.org/retry-ignore-abort/-/retry-ignore-abort-2.2.27.tgz", - "integrity": "sha512-KvSJ64qPaM3INvD4vB+H9IRSpjUmlj9hjrTRs0oJ0UT3+w9RKPCf2Zzu6Ig0QyXzkoY/QTXR7irVI8zDQRkn3Q==", "dev": true, - "requires": { - "defekt": "7.3.3" - }, - "dependencies": { - "defekt": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/defekt/-/defekt-7.3.3.tgz", - "integrity": "sha512-IVSwlS50EZosgrtIXruq9blDFzB9MsFvbl8Ty1L33va8a2tgRVWJYDWUhvWZpBPwr5VKGDCiZR+o2/PbuuITOQ==", - "dev": true - } + "engines": { + "node": ">= 4" } }, - "reusify": { + "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } }, - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, - "requires": { + "dependencies": { "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "ripemd160": { + "node_modules/ripemd160": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "dev": true, - "requires": { + "dependencies": { "hash-base": "^3.0.0", "inherits": "^2.0.1" } }, - "roboter": { - "version": "11.7.8", - "resolved": "https://registry.npmjs.org/roboter/-/roboter-11.7.8.tgz", - "integrity": "sha512-dwm3QpiWeArsH/56VFgoRN6tndaOkFAORe6+86Ue9t04TSTccZd0hlZ5prPVYXzQmPvYEKbvMsWmRIwAh/ud3Q==", - "dev": true, - "requires": { - "@types/mocha": "8.2.2", - "async-af": "7.0.39", - "axios": "0.21.1", - "buntstift": "4.0.25", - "command-line-args": "5.1.1", - "command-line-commands": "3.0.2", - "command-line-usage": "6.1.1", - "common-tags": "1.8.0", - "defekt": "7.2.0", - "depcheck": "1.4.1", - "dotenv": "10.0.0", - "eslint": "7.27.0", - "eslint-config-es": "3.28.30", - "findsuggestions": "1.0.0", - "globby": "11.0.3", - "is-typescript": "4.0.5", - "mocha": "8.2.1", - "processenv": "3.0.8", - "require-dir": "1.2.0", - "semver": "7.3.5", - "shelljs": "0.8.4", - "strip-ansi": "6.0.0", - "ts-node": "10.0.0", - "tsconfig-paths": "3.9.0", - "typescript": "4.3.2" - }, - "dependencies": { - "@types/inquirer": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-7.3.1.tgz", - "integrity": "sha512-osD38QVIfcdgsPCT0V3lD7eH0OFurX71Jft18bZrsVQWVRt6TuxRzlr0GJLrxoHZR2V5ph7/qP8se/dcnI7o0g==", - "dev": true, - "requires": { - "@types/through": "*", - "rxjs": "^6.4.0" - } - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "axios": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", - "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", - "dev": true, - "requires": { - "follow-redirects": "^1.10.0" - } - }, - "bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "buntstift": { - "version": "4.0.25", - "resolved": "https://registry.npmjs.org/buntstift/-/buntstift-4.0.25.tgz", - "integrity": "sha512-hcbGIMn8tp2RGRiAhjx8JmRpJOX5mOXtGsd3gxJpCbNPG+nxbjUuppJQNvGMysgRwa65h5aqDf7lYl4RLJcQyg==", - "dev": true, - "requires": { - "@types/inquirer": "7.3.1", - "chalk": "4.1.1", - "humanize-string": "2.1.0", - "inquirer": "8.1.0", - "ora": "5.4.0" - } - }, - "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "command-line-args": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.1.1.tgz", - "integrity": "sha512-hL/eG8lrll1Qy1ezvkant+trihbGnaKaeEjj6Scyr3DN+RC7iQ5Rz84IeLERfAWDGo0HBSNAakczwgCilDXnWg==", - "dev": true, - "requires": { - "array-back": "^3.0.1", - "find-replace": "^3.0.0", - "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" - } - }, - "common-tags": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", - "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==", - "dev": true - }, - "defekt": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/defekt/-/defekt-7.2.0.tgz", - "integrity": "sha512-a2ZUzS9sxl7h3cKh1ZnQWlOdYXlrf+udIPqyaLSTWXfTNogmir8pVrOVa8swx90y+QrUa4PGGQXLk0TF44s5JQ==", - "dev": true - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "globby": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz", - "integrity": "sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "inquirer": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.1.0.tgz", - "integrity": "sha512-1nKYPoalt1vMBfCMtpomsUc32wmOoWXAoq3kM/5iTfxyQ2f/BxjixQpC+mbZ7BI0JUXHED4/XPXekDVtJNpXYw==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.21", - "mute-stream": "0.0.8", - "ora": "^5.3.0", - "run-async": "^2.4.0", - "rxjs": "^6.6.6", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "ora": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.0.tgz", - "integrity": "sha512-1StwyXQGoU6gdjYkyVcqOLnVlbKj+6yPNNOxJVgpt9t4eksKjiriiHuxktLYkgllwk+D6MbC4ihH84L1udRXPg==", - "dev": true, - "requires": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - } - }, - "processenv": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/processenv/-/processenv-3.0.8.tgz", - "integrity": "sha512-UILZemDB2400fWJeKAYfad85EL3weckTv1eVd1sfZsE5q+E9gn4SgWMzRM3v9EArxE/tDiGRp+LSv6Qnc6en7A==", - "dev": true - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "run-async": { + "node_modules/run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.12.0" + } }, - "run-parallel": { + "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "requires": { + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { "queue-microtask": "^1.2.2" } }, - "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dev": true, - "requires": { - "tslib": "^1.9.0" + "dependencies": { + "tslib": "^2.1.0" } }, - "safe-buffer": { + "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "safe-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz", - "integrity": "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==", - "dev": true, - "requires": { - "regexp-tree": "~0.1.1" - } + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "safer-buffer": { + "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, - "sass": { - "version": "1.35.2", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.35.2.tgz", - "integrity": "sha512-jhO5KAR+AMxCEwIH3v+4zbB2WB0z67V1X0jbapfVwQQdjHZUGUyukpnoM6+iCMfsIUC016w9OPKQ5jrNOS9uXw==", - "dev": true, - "requires": { - "chokidar": ">=3.0.0 <4.0.0" - } - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + "node_modules/sax": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==" }, - "saxes": { + "node_modules/saxes": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "requires": { + "dependencies": { "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" } }, - "scheduler": { + "node_modules/scheduler": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", - "dev": true, - "requires": { + "dependencies": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1" } }, - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, - "requires": { + "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", "ajv-keywords": "^3.5.2" }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/schema-utils/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - } + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "scss-parser": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/scss-parser/-/scss-parser-1.0.5.tgz", - "integrity": "sha512-RZOtvCmCnwkDo7kdcYBi807Y5EoTIxJ34AgEgJNDmOH1jl0/xG0FyYZFbH6Ga3Iwu7q8LSdxJ4C5UkzNXjQxKQ==", + "node_modules/schema-utils/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, - "requires": { - "invariant": "2.2.4" + "peerDependencies": { + "ajv": "^6.9.1" } }, - "seek-bzip": { + "node_modules/schema-utils/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/seek-bzip": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz", "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==", - "requires": { + "dependencies": { "commander": "^2.8.1" + }, + "bin": { + "seek-bunzip": "bin/seek-bunzip", + "seek-table": "bin/seek-bzip-table" } }, - "semantic-release": { + "node_modules/semantic-release": { "version": "17.4.4", "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-17.4.4.tgz", "integrity": "sha512-fQIA0lw2Sy/9+TcoM/BxyzKCSwdUd8EPRwGoOuBLgxKigPCY6kaKs8TOsgUVy6QrlTYwni2yzbMb5Q2107P9eA==", "dev": true, - "requires": { + "dependencies": { "@semantic-release/commit-analyzer": "^8.0.0", "@semantic-release/error": "^2.2.0", "@semantic-release/github": "^7.0.0", @@ -13417,286 +12994,277 @@ "signale": "^1.2.1", "yargs": "^16.2.0" }, + "bin": { + "semantic-release": "bin/semantic-release.js" + }, + "engines": { + "node": ">=10.18" + } + }, + "node_modules/semantic-release-configuration": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/semantic-release-configuration/-/semantic-release-configuration-2.0.5.tgz", + "integrity": "sha512-jyrdxVaDDAN9C5aQiMKWd+QnrHOS7/v/sC0OYt9k0NFyrnGrkNy9gEfCbLbdx5cFCvum4W/yhUkEnAKnHw570g==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "dependencies": { + "@semantic-release/changelog": "5.0.1", + "@semantic-release/git": "9.0.0", + "semantic-release": "17.4.4" + } + }, + "node_modules/semantic-release/node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/semantic-release/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/semantic-release/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/semantic-release/node_modules/find-versions": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-4.0.0.tgz", + "integrity": "sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==", + "dev": true, + "dependencies": { + "semver-regex": "^3.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/semantic-release/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/semantic-release/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/semantic-release/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/semantic-release/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/semantic-release/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semantic-release/node_modules/p-reduce": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz", + "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/semantic-release/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/semantic-release/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semantic-release/node_modules/semver-regex": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.4.tgz", + "integrity": "sha512-6IiqeZNgq01qGf0TId0t3NvKzSvUsjcpdEO3AQNeIjR6A2+ckTnQlDpl4qu1bjRv0RzN3FP9hzFmws3lKqRWkA==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/semantic-release/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, "dependencies": { - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "find-versions": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-4.0.0.tgz", - "integrity": "sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==", - "dev": true, - "requires": { - "semver-regex": "^3.1.2" - } - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "hosted-git-info": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", - "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "p-reduce": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz", - "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==", - "dev": true - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "semver-regex": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.2.tgz", - "integrity": "sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "semantic-release-configuration": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/semantic-release-configuration/-/semantic-release-configuration-2.0.5.tgz", - "integrity": "sha512-jyrdxVaDDAN9C5aQiMKWd+QnrHOS7/v/sC0OYt9k0NFyrnGrkNy9gEfCbLbdx5cFCvum4W/yhUkEnAKnHw570g==", + "node_modules/semantic-release/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, - "requires": { - "@semantic-release/changelog": "5.0.1", - "@semantic-release/git": "9.0.0", - "semantic-release": "17.4.4" + "engines": { + "node": ">=8" } }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "node_modules/semantic-release/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } }, - "semver-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", - "dev": true + "node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "bin": { + "semver": "bin/semver" + } }, - "semver-diff": { + "node_modules/semver-diff": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", "dev": true, - "requires": { + "dependencies": { "semver": "^6.3.0" }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "engines": { + "node": ">=8" + } + }, + "node_modules/semver-diff/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" } }, - "semver-regex": { + "node_modules/semver-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz", - "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==" + "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==", + "engines": { + "node": ">=6" + } }, - "semver-truncate": { + "node_modules/semver-truncate": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/semver-truncate/-/semver-truncate-1.1.2.tgz", - "integrity": "sha1-V/Qd5pcHpicJp+AQS6IRcQnqR+g=", - "requires": { + "integrity": "sha512-V1fGg9i4CL3qesB6U0L6XAm4xOJiHmt4QAacazumuasc03BvtFGIMCduv01JWQ69Nv+JST9TqhSCiJoxoY031w==", + "dependencies": { "semver": "^5.3.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "send": { + "node_modules/send": { "version": "0.17.2", "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", "dev": true, - "requires": { + "dependencies": { "debug": "2.6.9", "depd": "~1.1.2", "destroy": "~1.0.4", @@ -13711,629 +13279,699 @@ "range-parser": "~1.2.1", "statuses": "~1.5.0" }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - } + "engines": { + "node": ">= 0.8.0" } }, - "serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "node_modules/send/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, - "requires": { + "dependencies": { "randombytes": "^2.1.0" } }, - "serve-static": { + "node_modules/serve-static": { "version": "1.14.2", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", "dev": true, - "requires": { + "dependencies": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "parseurl": "~1.3.3", "send": "0.17.2" + }, + "engines": { + "node": ">= 0.8.0" } }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } }, - "setimmediate": { + "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", "dev": true }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", "dev": true }, - "sha.js": { + "node_modules/sha.js": { "version": "2.4.11", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" } }, - "shallow-equal": { + "node_modules/shallow-equal": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz", "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==" }, - "shebang-command": { + "node_modules/shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "requires": { + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dependencies": { "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "shebang-regex": { + "node_modules/shebang-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "engines": { + "node": ">=0.10.0" + } }, - "shell-quote": { + "node_modules/shell-quote": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==", "dev": true }, - "shelljs": { + "node_modules/shelljs": { "version": "0.8.4", "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", "dev": true, - "requires": { + "dependencies": { "glob": "^7.0.0", "interpret": "^1.0.0", "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" } }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dev": true, - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, - "signale": { + "node_modules/signale": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/signale/-/signale-1.4.0.tgz", "integrity": "sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==", "dev": true, - "requires": { + "dependencies": { "chalk": "^2.3.2", "figures": "^2.0.0", "pkg-conf": "^2.1.0" }, + "engines": { + "node": ">=6" + } + }, + "node_modules/signale/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/signale/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, "dependencies": { - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - } + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/signale/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/signale/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/signale/node_modules/figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/signale/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/signale/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "simple-swizzle": { + "node_modules/simple-swizzle": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "requires": { + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "dependencies": { "is-arrayish": "^0.3.1" } }, - "sirv": { + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + }, + "node_modules/sirv": { "version": "1.0.19", "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.19.tgz", "integrity": "sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==", "dev": true, - "requires": { + "dependencies": { "@polka/url": "^1.0.0-next.20", "mrmime": "^1.0.0", "totalist": "^1.0.0" + }, + "engines": { + "node": ">= 10" } }, - "slash": { + "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - } + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" } }, - "sort-keys": { + "node_modules/sort-keys": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "requires": { + "integrity": "sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==", + "dependencies": { "is-plain-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "sort-keys-length": { + "node_modules/sort-keys-length": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz", - "integrity": "sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg=", - "requires": { + "integrity": "sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw==", + "dependencies": { "sort-keys": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "dev": true - }, - "source-map": { + "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, - "requires": { + "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, - "sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true - }, - "space-separated-tokens": { + "node_modules/space-separated-tokens": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", - "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==" + "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } }, - "spawn-error-forwarder": { + "node_modules/spawn-error-forwarder": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz", - "integrity": "sha1-Gv2Uc46ZmwNG17n8NzvlXgdXcCk=", + "integrity": "sha512-gRjMgK5uFjbCvdibeGJuy3I5OYz6VLoVdsOJdA6wV0WlfQVLFueoqMxwwYD9RODdgb6oUIvlRlsyFSiQkMKu0g==", "dev": true }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "requires": { + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dependencies": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" } }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==" }, - "spdx-expression-parse": { + "node_modules/spdx-expression-parse": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "requires": { + "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, - "spdx-license-ids": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz", - "integrity": "sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==" + "node_modules/spdx-license-ids": { + "version": "3.0.20", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz", + "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==" }, - "split": { + "node_modules/split": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", "dev": true, - "requires": { + "dependencies": { "through": "2" + }, + "engines": { + "node": "*" } }, - "split2": { + "node_modules/split2": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", "dev": true, - "requires": { - "readable-stream": "^3.0.0" - }, "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } + "readable-stream": "^3.0.0" } }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true + "node_modules/split2/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } }, - "squeak": { + "node_modules/squeak": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/squeak/-/squeak-1.3.0.tgz", - "integrity": "sha1-MwRQN7ZDiLVnZ0uEMiplIQc5FsM=", - "requires": { + "integrity": "sha512-YQL1ulInM+ev8nXX7vfXsCsDh6IqXlrremc1hzi77776BtpWgYJUMto3UM05GSAaGzJgWekszjoKDrVNB5XG+A==", + "dependencies": { "chalk": "^1.0.0", "console-stream": "^0.1.1", "lpad-align": "^1.0.1" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/squeak/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/squeak/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/squeak/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/squeak/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/squeak/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "engines": { + "node": ">=0.8.0" } }, - "stable": { + "node_modules/stable": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility" }, - "stacktrace-parser": { + "node_modules/stacktrace-parser": { "version": "0.1.10", "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", "dev": true, - "requires": { + "dependencies": { "type-fest": "^0.7.1" }, - "dependencies": { - "type-fest": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", - "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", - "dev": true - } + "engines": { + "node": ">=6" + } + }, + "node_modules/stacktrace-parser/node_modules/type-fest": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", + "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", + "dev": true, + "engines": { + "node": ">=8" } }, - "statuses": { + "node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "stream-browserify": { + "node_modules/stream-browserify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", "dev": true, - "requires": { + "dependencies": { "inherits": "~2.0.4", "readable-stream": "^3.5.0" - }, + } + }, + "node_modules/stream-browserify/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, - "stream-combiner2": { + "node_modules/stream-combiner2": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", - "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", + "integrity": "sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==", "dev": true, - "requires": { + "dependencies": { "duplexer2": "~0.1.0", "readable-stream": "^2.0.2" } }, - "stream-http": { + "node_modules/stream-http": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.1.1.tgz", "integrity": "sha512-S7OqaYu0EkFpgeGFb/NPOoPLxFko7TPqtEeFg5DXPB4v/KETHG0Ln6fRFrNezoelpaDKmycEmmZ81cC9DAwgYg==", "dev": true, - "requires": { + "dependencies": { "builtin-status-codes": "^3.0.0", "inherits": "^2.0.4", "readable-stream": "^3.6.0", "xtend": "^4.0.2" - }, + } + }, + "node_modules/stream-http/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, - "stream-parser": { + "node_modules/stream-parser": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz", - "integrity": "sha1-FhhUhpRCACGhGC/wrxkRwSl2F3M=", + "integrity": "sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ==", "dev": true, - "requires": { - "debug": "2" - }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "debug": "2" } }, - "strict-uri-encode": { + "node_modules/strict-uri-encode": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" + "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } }, - "string-hash": { + "node_modules/string-hash": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", - "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=", + "integrity": "sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==", "dev": true }, - "string-similarity": { + "node_modules/string-similarity": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/string-similarity/-/string-similarity-4.0.4.tgz", - "integrity": "sha512-/q/8Q4Bl4ZKAPjj8WerIBJWALKkaPRfrvhfF8k/B23i4nzrlRj2/go1m90In7nG/3XDSbOo0+pu6RvCTM9RGMQ==" + "integrity": "sha512-/q/8Q4Bl4ZKAPjj8WerIBJWALKkaPRfrvhfF8k/B23i4nzrlRj2/go1m90In7nG/3XDSbOo0+pu6RvCTM9RGMQ==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info." }, - "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, - "requires": { + "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1" }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "string.prototype.matchall": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.5.tgz", - "integrity": "sha512-Z5ZaXO0svs0M2xd/6By3qpeKpLKd9mO4v4q3oMEQrk8Ck4xOD5d5XeBOOjGrmVZZ/AHB1S0CgG4N5r1G9N3E2Q==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.2", - "get-intrinsic": "^1.1.1", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.3.1", - "side-channel": "^1.0.4" - } - }, - "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "engines": { + "node": ">=8" } }, - "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - }, "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "requires": { - "is-utf8": "^0.2.0" + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" } }, - "strip-dirs": { + "node_modules/strip-dirs": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", - "requires": { + "dependencies": { "is-natural-number": "^4.0.1" } }, - "strip-eof": { + "node_modules/strip-eof": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "engines": { + "node": ">=0.10.0" + } }, - "strip-final-newline": { + "node_modules/strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "strip-indent": { + "node_modules/strip-indent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "requires": { + "dependencies": { "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" } }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "strip-outer": { + "node_modules/strip-outer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", - "requires": { + "dependencies": { "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "styled-jsx": { + "node_modules/styled-jsx": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-3.3.2.tgz", "integrity": "sha512-daAkGd5mqhbBhLd6jYAjYBa9LpxYCzsgo/f6qzPdFxVB8yoGbhxvzQgkC0pfmCVvW3JuAEBn0UzFLBfkHVZG1g==", "dev": true, - "requires": { + "dependencies": { "@babel/types": "7.8.3", "babel-plugin-syntax-jsx": "6.18.0", "convert-source-map": "1.7.0", @@ -14343,67 +13981,74 @@ "stylis": "3.5.4", "stylis-rule-sheet": "0.0.10" }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } + "peerDependencies": { + "react": "15.x.x || 16.x.x || 17.x.x" } }, - "stylis": { + "node_modules/styled-jsx/node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/stylis": { "version": "3.5.4", "resolved": "https://registry.npmjs.org/stylis/-/stylis-3.5.4.tgz", "integrity": "sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q==", "dev": true }, - "stylis-rule-sheet": { + "node_modules/stylis-rule-sheet": { "version": "0.0.10", "resolved": "https://registry.npmjs.org/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz", "integrity": "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==", - "dev": true + "dev": true, + "peerDependencies": { + "stylis": "^3.5.0" + } }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", "dev": true, - "requires": { + "dependencies": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "svgo": { + "node_modules/svgo": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", - "requires": { + "dependencies": { "@trysound/sax": "0.2.0", "commander": "^7.2.0", "css-select": "^4.1.3", @@ -14412,138 +14057,120 @@ "picocolors": "^1.0.0", "stable": "^0.1.8" }, - "dependencies": { - "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" - } + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" } }, - "symbol-observable": { + "node_modules/symbol-observable": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "engines": { + "node": ">=0.10.0" + } }, - "symbol-tree": { + "node_modules/symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" }, - "table": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", - "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", - "dev": true, - "requires": { - "ajv": "^8.0.1", - "lodash.clonedeep": "^4.5.0", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "table-layout": { + "node_modules/table-layout": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", - "requires": { + "dependencies": { "array-back": "^4.0.1", "deep-extend": "~0.6.0", "typical": "^5.2.0", "wordwrapjs": "^4.0.0" }, - "dependencies": { - "array-back": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", - "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==" - }, - "typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==" - } + "engines": { + "node": ">=8.0.0" } }, - "tapable": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", - "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==", - "dev": true + "node_modules/table-layout/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/table-layout/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } }, - "tar-fs": { + "node_modules/tar-fs": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", "dev": true, - "requires": { + "dependencies": { "chownr": "^1.1.1", "mkdirp-classic": "^0.5.2", "pump": "^3.0.0", "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-fs/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/tar-fs/node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, "dependencies": { - "bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "requires": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - } - } + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" } }, - "tar-stream": { + "node_modules/tar-stream": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", - "requires": { + "dependencies": { "bl": "^1.0.0", "buffer-alloc": "^1.2.0", "end-of-stream": "^1.0.0", @@ -14551,511 +14178,688 @@ "readable-stream": "^2.3.0", "to-buffer": "^1.1.1", "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/tar-stream/node_modules/bl": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", + "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", + "dependencies": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" } }, - "temp": { + "node_modules/temp": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/temp/-/temp-0.9.4.tgz", "integrity": "sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==", "dev": true, - "requires": { + "dependencies": { "mkdirp": "^0.5.1", "rimraf": "~2.6.2" + }, + "engines": { + "node": ">=6.0.0" } }, - "temp-dir": { + "node_modules/temp-dir": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", - "integrity": "sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0=" + "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/temp/node_modules/rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } }, - "tempfile": { + "node_modules/tempfile": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-2.0.0.tgz", - "integrity": "sha1-awRGhWqbERTRhW/8vlCczLCXcmU=", - "requires": { + "integrity": "sha512-ZOn6nJUgvgC09+doCEF3oB+r3ag7kUvlsXEGX069QRD60p+P3uP7XG9N2/at+EyIRGSN//ZY3LyEotA1YpmjuA==", + "dependencies": { "temp-dir": "^1.0.0", "uuid": "^3.0.1" }, - "dependencies": { - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - } + "engines": { + "node": ">=4" + } + }, + "node_modules/tempfile/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "bin": { + "uuid": "bin/uuid" } }, - "tempy": { + "node_modules/tempy": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/tempy/-/tempy-1.0.1.tgz", "integrity": "sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w==", "dev": true, - "requires": { + "dependencies": { "del": "^6.0.0", "is-stream": "^2.0.0", "temp-dir": "^2.0.0", "type-fest": "^0.16.0", "unique-string": "^2.0.0" }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/tempy/node_modules/type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.36.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.36.0.tgz", + "integrity": "sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "dev": true, "dependencies": { - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true }, - "temp-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", - "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", - "dev": true + "esbuild": { + "optional": true }, - "type-fest": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", - "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", - "dev": true + "uglify-js": { + "optional": true } } }, - "terser": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.1.tgz", - "integrity": "sha512-b3e+d5JbHAe/JSjwsC3Zn55wsBIM7AsHLjKxT31kGCldgbpFePaFo+PiddtO6uwRZWRw7sPXmAN8dTW61xmnSg==", + "node_modules/terser-webpack-plugin/node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, - "requires": { - "commander": "^2.20.0", - "source-map": "~0.7.2", - "source-map-support": "~0.5.19" - }, "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" } }, - "terser-webpack-plugin": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.4.tgz", - "integrity": "sha512-C2WkFwstHDhVEmsmlCxrXUtVklS+Ir1A7twrYzrDrQQOIMOaVAYykaoo/Aq1K0QRkMoY2hhvDQY1cm4jnIMFwA==", + "node_modules/terser-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, - "requires": { - "jest-worker": "^27.0.2", - "p-limit": "^3.1.0", - "schema-utils": "^3.0.0", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1", - "terser": "^5.7.0" + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "text-extensions": { + "node_modules/text-extensions": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", - "dev": true - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10" + } }, - "theming": { + "node_modules/theming": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/theming/-/theming-3.3.0.tgz", "integrity": "sha512-u6l4qTJRDaWZsqa8JugaNt7Xd8PPl9+gonZaIe28vAhqgHMIG/DOyFPqiKN/gQLQYj05tHv+YQdNILL4zoiAVA==", - "requires": { + "dependencies": { "hoist-non-react-statics": "^3.3.0", "prop-types": "^15.5.8", "react-display-name": "^0.2.4", "tiny-warning": "^1.0.2" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "react": ">=16.3" } }, - "through": { + "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, - "through2": { + "node_modules/through2": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", "dev": true, - "requires": { + "dependencies": { "readable-stream": "3" - }, + } + }, + "node_modules/through2/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, - "timed-out": { + "node_modules/timed-out": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" + "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==", + "engines": { + "node": ">=0.10.0" + } }, - "timers-browserify": { + "node_modules/timers-browserify": { "version": "2.0.12", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", "dev": true, - "requires": { + "dependencies": { "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" } }, - "tiny-warning": { + "node_modules/tiny-warning": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" }, - "tmp": { + "node_modules/tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, - "requires": { + "dependencies": { "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" } }, - "to-arraybuffer": { + "node_modules/to-arraybuffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==", "dev": true }, - "to-buffer": { + "node_modules/to-buffer": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==" }, - "to-fast-properties": { + "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } }, - "to-regex-range": { + "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "requires": { + "dependencies": { "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" } }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "dev": true + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } }, - "totalist": { + "node_modules/totalist": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", - "requires": { + "node_modules/tough-cookie": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "dependencies": { "psl": "^1.1.33", "punycode": "^2.1.1", - "universalify": "^0.1.2" + "universalify": "^0.2.0", + "url-parse": "^1.5.3" }, - "dependencies": { - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - } + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" } }, - "tr46": { + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tr46": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", - "requires": { + "dependencies": { "punycode": "^2.1.1" + }, + "engines": { + "node": ">=12" } }, - "traverse": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", - "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=", - "dev": true + "node_modules/tr46/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=" + "node_modules/traverse": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.8.tgz", + "integrity": "sha512-aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "trim-off-newlines": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz", - "integrity": "sha1-n5up2e+odkw4dpi8v+sshI8RrbM=", - "dev": true + "node_modules/trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "trim-repeated": { + "node_modules/trim-repeated": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", - "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=", - "requires": { + "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", + "dependencies": { "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "ts-node": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.0.0.tgz", - "integrity": "sha512-ROWeOIUvfFbPZkoDis0L/55Fk+6gFQNZwwKPLinacRl6tsxstTF1DbAcLKkovwnpKMVvOMHP1TIbnwXwtLg1gg==", - "dev": true, - "requires": { - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.17", - "yn": "3.1.1" - } - }, - "ts-pnp": { + "node_modules/ts-pnp": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==", - "dev": true - }, - "tsconfig-paths": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", - "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", "dev": true, - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.0", - "strip-bom": "^3.0.0" + "engines": { + "node": ">=6" }, - "dependencies": { - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true + "peerDependenciesMeta": { + "typescript": { + "optional": true } } }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "dev": true }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - }, - "tty-browserify": { + "node_modules/tty-browserify": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", "dev": true }, - "tunnel-agent": { + "node_modules/tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dependencies": { "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" } }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "type-fest": { + "node_modules/type-fest": { "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "type-is": { + "node_modules/type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, - "requires": { + "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" } }, - "typedescriptor": { + "node_modules/typedescriptor": { "version": "4.0.12", "resolved": "https://registry.npmjs.org/typedescriptor/-/typedescriptor-4.0.12.tgz", "integrity": "sha512-ChXjToFhcp5kBs5B1vkq9UBEtBQgQbO9tGFVgfXTtct50pL8gtsWU5cqgVDzNxHN9xUOxzwhz75zA0qiDzkDPQ==", - "requires": { + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dependencies": { "defekt": "7.3.2" } }, - "typescript": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.2.tgz", - "integrity": "sha512-zZ4hShnmnoVnAHpVHWpTcxdv7dWP60S2FsydQLV8V5PbS3FifjWFFRiHSWpDJahly88PRyV5teTSLoq4eG7mKw==", - "dev": true + "node_modules/typedescriptor/node_modules/defekt": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/defekt/-/defekt-7.3.2.tgz", + "integrity": "sha512-4spUugjxcZTlQaHuKQWVtI+DJx1Pp+zjCD+/0vpMPjNnliowHCEYsVm4sbyzgspuB7Y8djKN/J6V+7phrCVXUQ==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info." + }, + "node_modules/typescript": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", + "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } }, - "typical": { + "node_modules/typical": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==" - }, - "uglify-js": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.0.tgz", - "integrity": "sha512-R/tiGB1ZXp2BC+TkRGLwj8xUZgdfT2f4UZEgX6aVjJ5uttPrr4fYmwTWDGqVnBCLbOXRMY6nr/BTbwCtVfps0g==", - "dev": true, - "optional": true + "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", + "engines": { + "node": ">=8" + } }, - "unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "node_modules/uglify-js": { + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" } }, - "unbzip2-stream": { + "node_modules/unbzip2-stream": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", - "requires": { + "dependencies": { "buffer": "^5.2.1", "through": "^2.3.8" } }, - "unique-string": { + "node_modules/unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", "dev": true, - "requires": { + "dependencies": { "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, - "universal-user-agent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", + "node_modules/universal-user-agent": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz", + "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==", "dev": true }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "engines": { + "node": ">= 10.0.0" + } }, - "unpipe": { + "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "untildify": { + "node_modules/untildify": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", - "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==" + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "engines": { + "node": ">=8" + } }, - "uri-js": { + "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "requires": { + "dependencies": { "punycode": "^2.1.0" } }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "node_modules/uri-js/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/url": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.4.tgz", + "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==", "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - } + "punycode": "^1.4.1", + "qs": "^6.12.3" + }, + "engines": { + "node": ">= 0.4" } }, - "url-join": { + "node_modules/url-join": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", "dev": true }, - "url-parse-lax": { + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/url-parse-lax": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "requires": { + "integrity": "sha512-BVA4lR5PIviy2PMseNd2jbFQ+jwSwQGdJejf5ctd1rEXt0Ypd7yanUK9+lYechVlN5VaTJGsu2U/3MDDu6KgBA==", + "dependencies": { "prepend-http": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "url-to-options": { + "node_modules/url-to-options": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", - "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" + "integrity": "sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A==", + "engines": { + "node": ">= 4" + } }, - "use-subscription": { + "node_modules/url/node_modules/qs": { + "version": "6.13.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.1.tgz", + "integrity": "sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/use-subscription": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/use-subscription/-/use-subscription-1.5.1.tgz", "integrity": "sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA==", "dev": true, - "requires": { + "dependencies": { "object-assign": "^4.1.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0" } }, - "util": { + "node_modules/util": { "version": "0.12.3", "resolved": "https://registry.npmjs.org/util/-/util-0.12.3.tgz", "integrity": "sha512-I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAog==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.3", "is-arguments": "^1.0.4", "is-generator-function": "^1.0.7", @@ -15064,162 +14868,167 @@ "which-typed-array": "^1.1.2" } }, - "util-deprecate": { + "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, - "utils-merge": { + "node_modules/utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } }, - "uuid": { + "node_modules/uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - }, - "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } }, - "validate-npm-package-license": { + "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "requires": { + "dependencies": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" } }, - "validate-value": { + "node_modules/validate-value": { "version": "9.1.7", "resolved": "https://registry.npmjs.org/validate-value/-/validate-value-9.1.7.tgz", "integrity": "sha512-mO38W6DgxJ0xTPbKh7Cm/C9OKALdWfiK5xYxQ3Pyao6MlTiLCff5Sb+oNqFHhC+yUGoVKeWlyOchTBVi7eqiqg==", - "requires": { + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dependencies": { "ajv": "8.8.2", "ajv-formats": "2.1.1", "defekt": "8.0.0", "json-schema": "0.4.0", "typedescriptor": "4.0.12" - }, - "dependencies": { - "ajv": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", - "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "defekt": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/defekt/-/defekt-8.0.0.tgz", - "integrity": "sha512-z/eZ+HW+LmE1bg6sk0OmuynS7EoJBgqUaDBNYiOqKgxqB6kl2blpTPXb6K578SpWbbg1SusBrxSruRer6de/Pw==" - } } }, - "varname": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/varname/-/varname-2.0.2.tgz", - "integrity": "sha1-33lplSuIL20BH4UCnhOyyD5yEVg=", - "dev": true - }, - "vary": { + "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "vm-browserify": { + "node_modules/vm-browserify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", "dev": true }, - "w3c-hr-time": { + "node_modules/w3c-hr-time": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "requires": { + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", + "dependencies": { "browser-process-hrtime": "^1.0.0" } }, - "w3c-xmlserializer": { + "node_modules/w3c-xmlserializer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz", "integrity": "sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==", - "requires": { + "dependencies": { "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=12" } }, - "watchpack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.2.0.tgz", - "integrity": "sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA==", + "node_modules/watchpack": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.1.1.tgz", + "integrity": "sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw==", "dev": true, - "requires": { + "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" } }, - "wcwidth": { + "node_modules/wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", "dev": true, - "requires": { + "dependencies": { "defaults": "^1.0.3" } }, - "webidl-conversions": { + "node_modules/webidl-conversions": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==" - }, - "webpack": { - "version": "5.46.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.46.0.tgz", - "integrity": "sha512-qxD0t/KTedJbpcXUmvMxY5PUvXDbF8LsThCzqomeGaDlCA6k998D8yYVwZMvO8sSM3BTEOaD4uzFniwpHaTIJw==", - "dev": true, - "requires": { - "@types/eslint-scope": "^3.7.0", - "@types/estree": "^0.0.50", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.4.1", - "browserslist": "^4.14.5", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "engines": { + "node": ">=12" + } + }, + "node_modules/webpack": { + "version": "5.96.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.96.1.tgz", + "integrity": "sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.6", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.1", + "acorn": "^8.14.0", + "browserslist": "^4.24.0", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.8.0", - "es-module-lexer": "^0.7.1", + "enhanced-resolve": "^5.17.1", + "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.4", - "json-parse-better-errors": "^1.0.2", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", + "schema-utils": "^3.2.0", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.2.0", - "webpack-sources": "^2.3.1" + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } } }, - "webpack-bundle-analyzer": { + "node_modules/webpack-bundle-analyzer": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.3.0.tgz", "integrity": "sha512-J3TPm54bPARx6QG8z4cKBszahnUglcv70+N+8gUqv2I5KOFHJbzBiLx+pAp606so0X004fxM7hqRu10MLjJifA==", "dev": true, - "requires": { + "dependencies": { "acorn": "^8.0.4", "acorn-walk": "^8.0.0", "chalk": "^4.1.0", @@ -15230,320 +15039,361 @@ "sirv": "^1.0.7", "ws": "^7.3.1" }, + "bin": { + "webpack-bundle-analyzer": "lib/bin/analyzer.js" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "dev": true, "dependencies": { - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/browserslist": { + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" }, - "commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", - "dev": true + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.1" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/webpack/node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "dev": true + }, + "node_modules/webpack/node_modules/update-browserslist-db": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } + { + "type": "github", + "url": "https://github.com/sponsors/ai" } + ], + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" } }, - "webpack-sources": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz", - "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==", + "node_modules/webpack/node_modules/watchpack": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", "dev": true, - "requires": { - "source-list-map": "^2.0.1", - "source-map": "^0.6.1" + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" } }, - "whatwg-encoding": { + "node_modules/whatwg-encoding": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", - "requires": { + "dependencies": { "iconv-lite": "0.6.3" }, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dependencies": { - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "whatwg-mimetype": { + "node_modules/whatwg-mimetype": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", - "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==" + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "engines": { + "node": ">=12" + } }, - "whatwg-url": { + "node_modules/whatwg-url": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-10.0.0.tgz", "integrity": "sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==", - "requires": { + "dependencies": { "tr46": "^3.0.0", "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" } }, - "which": { + "node_modules/which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { + "dependencies": { "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" } }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "which-typed-array": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz", - "integrity": "sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.2", - "call-bind": "^1.0.0", - "es-abstract": "^1.18.0-next.1", - "foreach": "^2.0.5", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.1", - "is-typed-array": "^1.1.3" - } - }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", "dev": true, - "requires": { - "string-width": "^1.0.2 || 2" - }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" - }, - "wordwrap": { + "node_modules/wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", "dev": true }, - "wordwrapjs": { + "node_modules/wordwrapjs": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", - "requires": { + "dependencies": { "reduce-flatten": "^2.0.0", "typical": "^5.2.0" }, - "dependencies": { - "typical": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", - "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==" - } + "engines": { + "node": ">=8.0.0" } }, - "workerpool": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.0.2.tgz", - "integrity": "sha512-DSNyvOpFKrNusaaUwk+ej6cBj1bmhLcBfj80elGk+ZIo5JSkq+unB1dLKEOcNfJDZgjGICfhQ0Q5TbP0PvF4+Q==", - "dev": true + "node_modules/wordwrapjs/node_modules/typical": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", + "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "engines": { + "node": ">=8" + } }, - "wrap-ansi": { + "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, - "requires": { + "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "wrappy": { + "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, - "ws": { - "version": "7.5.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz", - "integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==", - "dev": true + "node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } }, - "xml-name-validator": { + "node_modules/xml-name-validator": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", - "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==" + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "engines": { + "node": ">=12" + } }, - "xml2js": { + "node_modules/xml2js": { "version": "0.4.23", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "requires": { + "dependencies": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" } }, - "xmlbuilder": { + "node_modules/xmlbuilder": { "version": "11.0.1", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "engines": { + "node": ">=4.0" + } }, - "xmlchars": { + "node_modules/xmlchars": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" }, - "xregexp": { + "node_modules/xregexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.0.0.tgz", "integrity": "sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==", "dev": true }, - "xtend": { + "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } }, - "y18n": { + "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true + "dev": true, + "engines": { + "node": ">=10" + } }, - "yallist": { + "node_modules/yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==" }, - "yaml": { + "node_modules/yaml": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 6" + } }, - "yargs": { + "node_modules/yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, - "requires": { + "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", @@ -15551,66 +15401,40 @@ "string-width": "^4.2.0", "y18n": "^5.0.5", "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" } }, - "yargs-parser": { + "node_modules/yargs-parser": { "version": "20.2.9", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true - }, - "yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", "dev": true, - "requires": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "dependencies": { - "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "dev": true - }, - "decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "dev": true - }, - "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true - } + "engines": { + "node": ">=10" } }, - "yauzl": { + "node_modules/yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "requires": { + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" } }, - "yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true - }, - "yocto-queue": { + "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } } } diff --git a/package.json b/package.json index 9142eaf4..17655474 100644 --- a/package.json +++ b/package.json @@ -87,10 +87,9 @@ "puppeteer": "13.0.0", "react": "17.0.2", "react-dom": "17.0.2", - "retry-ignore-abort": "2.2.27", - "roboter": "11.7.8", "semantic-release-configuration": "2.0.5", - "shelljs": "0.8.4" + "shelljs": "0.8.4", + "typescript": "5.7.2" }, "peerDependencies": { "react": "^17.0.2",