From f381eba694a225ef31304a5ba074e4161e030b5a Mon Sep 17 00:00:00 2001 From: Brandon Lee Kitajchuk Date: Thu, 22 Sep 2022 08:38:21 -0700 Subject: [PATCH] jambonz webapp refresh (#64) initial scaffold switch to preact/compat add feather icons dep jambonz-ui, index.html stub auth and store readme tweaks alias preact in vite config more readme tweaks Update README.md lots of things login flow... add notes on apis by route lots of work... readmes constants Update login.tsx Update index.ts Update index.ts Update create-password.tsx Update actions.ts Update index.tsx Update index.tsx Update actions.ts Update index.ts react version for eslint some refactor and cleanup Update api.ts Update create-password.tsx fetch transport wrapper api util toast time -- oops msg constants img path for docs/readmes global dispatch, generic actions etc... unreachable and stuff properly wrap require-auth routes support promise chain and async/await for api fetch transport initial responsive navi menu Update navi-data.ts Update navi.tsx Update styles.scss Rename navi-data.ts to navi-items.ts Update navi.tsx Update index.ts Update layout.tsx Update index.ts Update layout.tsx Update index.tsx Update index.tsx Update actions.ts Update index.tsx Update index.tsx Update create-password.tsx Update login.tsx Update create-password.tsx move things around access control interface Update index.tsx acl component etc working on settings form.. more settings, forms, HOCs service providers workflow button up modals and toasts mobile navi and toast timeout Update index.tsx Update index.ts Update and rename index.ts to index.tsx Update create-password.tsx Update create-password.tsx Update Dockerfile Update entrypoint.sh Update Dockerfile Update navi.tsx Update auth.tsx Update auth.tsx Update layout.tsx Update layout.tsx Update login.tsx Update login.tsx Update settings.tsx Update index.tsx Update index.ts better lint-staged fix sp undefined toast dispatch helpers sass vars -- no magic numbers Update index.ts Update create-password.tsx Update login.tsx Update index.ts Update settings.tsx Update accounts.tsx working on settings... Update index.ts Update settings.tsx Update index.tsx more settings view... get rid of most any usage Update index.tsx better api hook get strong with types obscured text component HOC for dispatch type-safety tweak api types github icon on login layout responsive grid -- api keys better fetch transport with resolve/reject fix generic action/dispatch typings prefer interface for GlobalDispatch Update index.ts Update auth.tsx Update auth.tsx Update create-password.tsx checkzones wrap up checkzones move styles around... alias src stub internal views stub not found container contrib readme and codeowners Update README.md Update and rename setup.md to environment.md Update environment.md Update environment.md Update contrib.md Update contrib.md Update contrib.md Update and rename contrib.md to contributors.md Update contributors.md Update index.ts use api data hook accounts stub, generic apikeys container account edit form Update edit.tsx Update edit.tsx add/edit for account form lots of good refactors check current sp on settings grid stuff Update index.scss Update styles.scss Update contributors.md Update constants.ts stubbing accounts as card view Update types.ts Update types.ts Update auth.tsx Update create-password.tsx Update index.ts Update index.tsx fix enum status codes component cleanup delete account flow Update types.ts Update delete.tsx Update use-mobile-media.ts acl hoc Update types.ts Update index.ts Update types.ts fix generic useapidata Update types.ts Update types.ts Update types.ts Create index.tsx Create types.ts Update types.ts Create types.ts Update index.tsx button up acl, feature flags and docs subspace initial feature stub fix some things wrap up subspace feature tooltip Update subspace.tsx Delete styles.scss Update types.ts Update auth.tsx Update index.ts some more type stuff add react/jsx-key error for missing shorthand frag keys basic spinner... no accounts data files for regions and speech vendor selector logic tighten up vendor stuff bit more cleanup Update types.ts Update index.tsx Update index.tsx Update subspace.tsx fix some type things stub mock dev server implementation add parity for account siprec_hook_sid latest jambonz-ui update cleanup package.json fix docker stuff docker notes in readme adding github actions package lock version remove unused jest deps update jambonz-ui new new jambonz-ui list view vs cards view fix no accounts list view fix prettier config some house cleaning file upload component update pr-checks wildcard wrappers for fetch transport -- any method (#78) Refresh tweaks (#80) * add alerts to mock api dev server add webhook methods types fix focus for file upload update contrib readme blob fetching rest props spread for file-upload * multi element fieldset structure, unique basic auth field names for accounts form * Fix and simplify webhook state setting * some ad-hoc cleanup for temp work Adding generic account filter component (#82) adding focused styles for account-filter more robust account-filter props updates to contrib readme fix add service provider form a la new styles required form field UI and labeling Application page for refresh (#79) * Adding barely working Application page (#70) * resolve conflict and update, still barely working * perfectly working application page * Fix the duplicated name logic * strip some comments * changes to sync * delete more condition * some more changes for parity * revert changes * applying b1a9a77 * changes requested * changes suggested * changes suggested * sync changes organize some styles a bit more refactor generic small selector styles use portals for modals and toasts add new classNames to applications form handle applications view without accounts condition sweep through with some cleanup type-safety for :POST and :PUT api methods Speech service page for refresh (#84) * initial commit * more update, probably one more * properly rebase * check box works okay * properly rebase**2 * initial cleanup and ux-flow evaluation * obscure secrets on frontend for local state * refine ui for credential status checks * ignore error set on unmount for CredentialStatus * fix obscure field type crash bug * Update utils.ts * Update utils.ts * Update constants.ts * wrap up the speech credentials flow Co-authored-by: kitajchuk tweaks to ui elements etc tweak some typings and minor ui styles better not tested messaging for TTS/STT better placeholder feature flag for dev Adding some conditional utilities (#87) Microsoft Tenant page for refresh (#86) * initial commit * fix backend error with adding * changes suggested * changes requested * use all accounts for ms teams tenants * ui tweaks, add last ditch redirect back to form Co-authored-by: kitajchuk Phone number page for refresh (#85) * initial commit so I can hop back * working properly * carrier related change and mass edit * mvoing around * UI for mass edit * unset selected for mass edit * some minor ui cleanup * fix empty/bad classNames on edit action icon Co-authored-by: kitajchuk Update .dockerignore cleanup and port some helpers fix applications index useEffect group synthesis fields and recognizer fields for application form tweak contrib readme just run tsc in pre-commit update contrib readme Carrier page for refresh (#89) * initial commit * working form but no put/post for gateways yet * put/post for sip/smpp * crud app done * all the functionalities are here, unless it isnt * changes suggested and delete sip/smpp when delete carrier * Some initial UI cleanup etc... * More UI cleanup and what not... * No need for the 'Status' text here * Remove the Grid component -- not reused * Remove as much explicit null type as possible * Use webhook methods constant in account form * Some API constants and fix inbound/outbound smpp gateways delete with filter logic * Tab handling logic for carrier form (#91) * similar validation logic of sip for smpp * Tech prefix tab validation * revert to working sip gateway validation * More validation cleanup * Update index.ts * Update index.ts * More cleanup and form clarity for if/when required fields * Fix some logic and reset gateways to delete when deleted * use api data hooks for index partials * smpp gateway validation and fqdn validations * default application selector * Fix up the SMPP dilemma... * Typo and remove console log * Tab switch for all validations * Move empty SIP check to validation getter * Render gateway validation messages near the invalid fields * Explicit return on first active tab condition for browser constraints * Use IP pattern for outbound smpp gateway since fqdn is disallowed here * Add fqdn example to ip placeholders * sticky tabs * Tweak info text * Gateway refetch code change * delete gateways on demand * move shared api fetching down into forms -- seems better actually * Fix re-render glitch for gateways UI Co-authored-by: kitajchuk Tweaks and minor cleanups Few more minor tweaks prettier package.json -- duh Functional recent-calls dev server api switch from moment to dayjs Functional alerts dev server api Dev server notes in readme Fix applications bug which fixes current SP switch Create hooks for vendor async data No lazy load for routes (#97) better speech hook match dev mock paged response to api server paged response Generic AccountSelect component Generic useRedirect hook Recent call page for refresh (#93) * initial commit * changes requested but yet to pcap * pcap? * Initial cleanup on RecentCalls * Normalize set page number and fix status for mock dev server * Listt item styles and details/pcap fix * Refactor recent calls subcomponents * Tighter section padding and smaller page titles * Update _lists.scss * Recent calls cleanup and some other tweaks Co-authored-by: kitajchuk Implement proper Checkzone initial checked for carrier form Add handleSelect prop to SelectFilter component and fix perPageFilter changes for recent calls Alert view page for refresh (#99) * initial commit * changes suggested * changes requested * Style alerts UI Co-authored-by: kitajchuk Refresh enhancement pagination logic (#101) * initial commit * Sort of secret props... Co-authored-by: kitajchuk Quick small screen mobile sweep -- add logout button to mobile navi Update index.tsx Tweak some styles and restyle navi SP selector Add key prop to ApiKeys on Settings so SP switch refetches data fix checkbox margin now that grid-gap is used Style tweaks Update types.ts Update delete.tsx Update delete.tsx Move some variable declarations around Generic application select for forms Fix issue #105 for carrier form applications Use memo for filtered carriers on list view Refactor generic application filter component Update application-filter.tsx Update types.ts Update index.tsx Update index.tsx Update index.tsx Update index.tsx Cleanup some stuff -- add locked prop for Passwd Fix unauthorized logout scenarios -- no react state errors :) Normalize React types usage Fuzzy search filter for collection lists (#106) * Fuzzy search filter for collection lists * Tweak some things for responsiveness * Carrier preset label and fix All accounts filter for carriers list Set text overflow on search filter PR checklist items Match 'No ...' text for speech services Return rawCollection if hasLength check is false Responsive styling for list item--action rows Fix defaultOption for AccountSelector Refresh: Add API limits for issue #109 (#111) * Add API limits for issue #109 * Tighten up initial field renders Cleanup for issue #104 (#108) Co-authored-by: kitajchuk Tweak local limits Generic local limits component No default local limits -- move to forms components Safe set values for limits -- maintain controlled inputs Ref support for local limits form component Handle empty data for local limits effect Implement DELETE for limits Singular nomenclature for post limit(s) --- .dockerignore | 17 + .env | 4 +- .eslintrc | 13 - .github/workflows/docker-publish.yml | 3 +- .github/workflows/pr-checks.yml | 33 + .gitignore | 42 +- .husky/pre-commit | 14 + .prettierignore | 27 + .prettierrc.json | 1 + .vscode/extensions.json | 7 + .vscode/settings.json | 9 + CODEOWNERS | 4 + Dockerfile | 5 +- LICENSE | 2 +- README.md | 75 +- docs/contributors.md | 194 + .../environment.md | 50 +- entrypoint.sh | 18 +- index.html | 57 + package-lock.json | 27245 +++------------- package.json | 138 +- public/favicon.ico | Bin 1150 -> 1891 bytes public/favicon.svg | 14 + public/icon.png | Bin 0 -> 13587 bytes public/icon1024.png | Bin 0 -> 24472 bytes public/icon192.png | Bin 0 -> 5933 bytes public/icon384.png | Bin 0 -> 12720 bytes public/icon512.png | Bin 0 -> 17377 bytes public/index.html | 14 - public/manifest.json | 36 + public/robots.txt | 2 +- public/svg/jambonz--light.svg | 15 + public/svg/jambonz.svg | 15 + server/dev.server.ts | 235 + server/sample-sip-rtp-traffic.pcap | Bin 0 -> 111077 bytes src/App.js | 111 - src/api/constants.ts | 141 + src/api/index.ts | 587 + src/api/types.ts | 329 + src/components/access-control.tsx | 20 + src/components/account-filter.tsx | 74 + src/components/application-filter.tsx | 60 + src/components/blocks/AntdTable.js | 89 - src/components/blocks/Breadcrumbs.js | 27 - src/components/blocks/FormError.js | 45 - src/components/blocks/Loader.js | 37 - src/components/blocks/Modal.js | 129 - src/components/blocks/Nav.js | 251 - src/components/blocks/Notification.js | 128 - .../blocks/ProgressVisualization.js | 113 - src/components/blocks/Sbcs.js | 94 - src/components/blocks/SideMenu.js | 122 - src/components/blocks/TableContent.js | 463 - src/components/blocks/TableMenu.js | 104 - src/components/blocks/ToggleText.js | 60 - src/components/clipboard/index.tsx | 51 + src/components/elements/AddButton.js | 87 - src/components/elements/AddModalButton.js | 84 - src/components/elements/Button.js | 272 - src/components/elements/Checkbox.js | 138 - src/components/elements/Code.js | 14 - src/components/elements/CopyableText.js | 62 - src/components/elements/FileUpload.js | 97 - src/components/elements/Form.js | 30 - src/components/elements/H1.js | 9 - src/components/elements/Input.js | 112 - src/components/elements/InputGroup.js | 18 - src/components/elements/Label.js | 16 - src/components/elements/Link.js | 72 - src/components/elements/PasswordInput.js | 35 - src/components/elements/Radio.js | 119 - src/components/elements/Select.js | 33 - src/components/elements/Span.js | 16 - src/components/elements/Table.js | 103 - src/components/elements/Tooltip.js | 122 - src/components/elements/TrashButton.js | 55 - src/components/forms/AccountForm.js | 1093 - src/components/forms/ApplicationForm.js | 977 - src/components/forms/CarrierForm.js | 1868 -- src/components/forms/MsTeamsTenantForm.js | 389 - src/components/forms/PhoneNumberForm.js | 457 - src/components/forms/SettingsForm.js | 370 - src/components/forms/SpeechForm.js | 710 - src/components/forms/account-select.tsx | 69 + src/components/forms/application-select.tsx | 75 + src/components/forms/checkzone/index.tsx | 72 + src/components/forms/checkzone/styles.scss | 57 + src/components/forms/file-upload/index.tsx | 79 + src/components/forms/file-upload/styles.scss | 45 + src/components/forms/index.ts | 20 + src/components/forms/local-limits.tsx | 87 + src/components/forms/message/index.tsx | 20 + src/components/forms/message/styles.scss | 33 + src/components/forms/passwd/index.tsx | 60 + src/components/forms/passwd/styles.scss | 32 + src/components/forms/selector/index.tsx | 59 + src/components/forms/selector/styles.scss | 75 + src/components/icons.ts | 87 + src/components/index.ts | 35 + src/components/modal/index.tsx | 106 + src/components/modal/styles.scss | 41 + src/components/obscure/index.tsx | 28 + src/components/obscure/styles.scss | 28 + src/components/pages/InvalidRoute.js | 38 - src/components/pages/Login.js | 228 - .../pages/internal/AccountsAddEdit.js | 230 - src/components/pages/internal/AccountsList.js | 235 - src/components/pages/internal/AlertsList.js | 259 - .../pages/internal/ApplicationsAddEdit.js | 29 - .../pages/internal/ApplicationsList.js | 294 - .../pages/internal/CarriersAddEdit.js | 30 - src/components/pages/internal/CarriersList.js | 282 - .../pages/internal/MsTeamsTenantsAddEdit.js | 29 - .../pages/internal/MsTeamsTenantsList.js | 168 - .../pages/internal/PhoneNumbersAddEdit.js | 29 - .../pages/internal/PhoneNumbersList.js | 259 - .../pages/internal/RecentCallsList.js | 494 - src/components/pages/internal/Settings.js | 225 - .../pages/internal/SpeechServicesAddEdit.js | 29 - .../pages/internal/SpeechServicesList.js | 309 - .../pages/setup/ConfigureAccount.js | 22 - .../pages/setup/ConfigureSipTrunk.js | 24 - .../pages/setup/CreateApplication.js | 22 - src/components/pages/setup/CreatePassword.js | 339 - src/components/pages/setup/SetupComplete.js | 43 - src/components/pagination/index.tsx | 119 + src/components/pagination/styles.scss | 24 + src/components/require-auth.tsx | 29 + src/components/search-filter/index.tsx | 70 + src/components/search-filter/styles.scss | 68 + src/components/section/index.tsx | 24 + src/components/section/styles.scss | 23 + src/components/select-filter.tsx | 62 + src/components/spinner/index.tsx | 24 + src/components/spinner/styles.scss | 53 + src/components/templates/InternalTemplate.js | 80 - src/components/templates/SetupTemplate.js | 63 - src/components/toast/index.tsx | 28 + src/components/toast/styles.scss | 63 + src/components/tooltip/index.tsx | 22 + src/components/tooltip/styles.scss | 44 + src/constants.js | 2 - src/constants/index.tsx | 36 + src/containers/internal/api-keys/index.tsx | 115 + src/containers/internal/api-keys/styles.scss | 101 + src/containers/internal/index.ts | 3 + src/containers/internal/layout.tsx | 63 + src/containers/internal/navi/index.tsx | 233 + src/containers/internal/navi/items.ts | 74 + src/containers/internal/navi/styles.scss | 139 + src/containers/internal/styles.scss | 59 + .../internal/views/accounts/add.tsx | 15 + .../internal/views/accounts/delete.tsx | 169 + .../internal/views/accounts/edit.tsx | 46 + .../internal/views/accounts/form.tsx | 468 + .../internal/views/accounts/index.tsx | 117 + .../internal/views/alerts/index.tsx | 127 + .../internal/views/applications/add.tsx | 15 + .../internal/views/applications/delete.tsx | 132 + .../internal/views/applications/edit.tsx | 31 + .../internal/views/applications/form.tsx | 528 + .../internal/views/applications/index.tsx | 191 + .../internal/views/carriers/add.tsx | 15 + .../internal/views/carriers/delete.tsx | 74 + .../internal/views/carriers/edit.tsx | 47 + .../internal/views/carriers/form.tsx | 1247 + .../internal/views/carriers/gateways.tsx | 59 + .../internal/views/carriers/index.tsx | 191 + .../internal/views/ms-teams-tenants/add.tsx | 15 + .../views/ms-teams-tenants/delete.tsx | 29 + .../internal/views/ms-teams-tenants/edit.tsx | 31 + .../internal/views/ms-teams-tenants/form.tsx | 167 + .../internal/views/ms-teams-tenants/index.tsx | 196 + .../internal/views/phone-numbers/add.tsx | 15 + .../internal/views/phone-numbers/delete.tsx | 31 + .../internal/views/phone-numbers/edit.tsx | 31 + .../internal/views/phone-numbers/form.tsx | 219 + .../internal/views/phone-numbers/index.tsx | 342 + .../internal/views/recent-calls/details.tsx | 74 + .../internal/views/recent-calls/index.tsx | 138 + .../internal/views/recent-calls/pcap.tsx | 51 + .../internal/views/settings/index.tsx | 213 + .../internal/views/speech-services/add.tsx | 15 + .../internal/views/speech-services/delete.tsx | 29 + .../internal/views/speech-services/edit.tsx | 31 + .../internal/views/speech-services/form.tsx | 371 + .../internal/views/speech-services/index.tsx | 189 + .../internal/views/speech-services/status.tsx | 88 + .../internal/views/speech-services/utils.ts | 97 + src/containers/login/create-password.tsx | 109 + src/containers/login/index.ts | 5 + src/containers/login/layout.tsx | 35 + src/containers/login/login.tsx | 87 + src/containers/login/styles.scss | 78 + src/containers/notfound.tsx | 27 + src/contexts/ModalContext.js | 18 - src/contexts/NotificationContext.js | 40 - src/contexts/ServiceProviderContext.js | 16 - src/contexts/ShowMsTeamsContext.js | 47 - src/data/AwsRegions.js | 92 - src/data/MicrosoftAzureRegions.js | 124 - src/data/SpeechRecognizerLanguageAws.js | 12 - src/data/SpeechRecognizerLanguageGoogle.js | 132 - src/data/SpeechRecognizerLanguageMicrosoft.js | 492 - src/data/SpeechSynthesisLanguageAws.js | 239 - src/data/SpeechSynthesisLanguageGoogle.js | 413 - src/data/SpeechSynthesisLanguageMicrosoft.js | 4451 --- src/data/SpeechSynthesisLanguageWellSaid.js | 41 - src/fonts/WorkSans-Medium.ttf | Bin 235168 -> 0 bytes src/fonts/WorkSans-Regular.ttf | Bin 234664 -> 0 bytes src/fonts/WorkSans-SemiBold.ttf | Bin 235120 -> 0 bytes src/helpers/handleErrors.js | 41 - src/helpers/phoneNumberFormat.js | 11 - src/helpers/sortSipGateways.js | 13 - src/helpers/timeFormat.js | 12 - src/images/AccountsIcon.svg | 8 - src/images/AlertsIcon.svg | 3 - src/images/ApplicationsIcon.svg | 7 - src/images/CarriersIcon.svg | 5 - src/images/CheckGreen.svg | 4 - src/images/Chevron.svg | 3 - src/images/ErrorIcon.svg | 4 - src/images/HidePassword.svg | 5 - src/images/LogoJambong.svg | 12 - src/images/MenuDots.svg | 3 - src/images/MsTeamsIcon.svg | 6 - src/images/PhoneNumbersIcon.svg | 3 - src/images/RecentCallsIcon.svg | 10 - src/images/SettingsIcon.svg | 3 - src/images/SpeechIcon.svg | 6 - src/images/TrashIcon.svg | 5 - src/images/ViewPassword.svg | 4 - src/index.css | 130 - src/index.js | 23 - src/main.tsx | 27 + src/reducers/NotificationReducer.js | 20 - src/router/auth.tsx | 128 + src/router/index.tsx | 131 + src/router/routes.ts | 11 + src/store/actions.ts | 74 + src/store/index.tsx | 152 + src/store/types.ts | 58 + src/styles/_cards.scss | 74 + src/styles/_forms.scss | 227 + src/styles/_inpbtn.scss | 44 + src/styles/_lists.scss | 105 + src/styles/_mixins.scss | 51 + src/styles/_smsel.scss | 117 + src/styles/_vars.scss | 25 + src/styles/index.scss | 203 + src/utils/index.ts | 130 + src/utils/use-filtered-results.ts | 40 + src/utils/use-mobile-media.ts | 26 + src/utils/use-redirect.ts | 22 + src/utils/with-access-control.tsx | 40 + src/utils/with-select-state.tsx | 23 + src/utils/with-suspense.tsx | 16 + src/vendor/index.tsx | 113 + src/vendor/regions/aws-regions.ts | 94 + src/vendor/regions/ms-azure-regions.ts | 126 + .../aws-speech-recognizer-lang.ts | 14 + .../google-speech-recognizer-lang.ts | 134 + .../ms-speech-recognizer-lang.ts | 494 + .../aws-speech-synthesis-lang.ts | 217 + .../google-speech-synthesis-lang.ts | 412 + .../ms-speech-synthesis-lang.ts | 30 + .../ms-speech-synthesis-raw.ts | 4404 +++ .../wellsaid-speech-synthesis-lang.ts | 43 + src/vendor/types.ts | 74 + src/vite-env.d.ts | 1 + tsconfig.json | 27 + tsconfig.node.json | 10 + vite.config.ts | 21 + 273 files changed, 23033 insertions(+), 42576 deletions(-) create mode 100644 .dockerignore delete mode 100644 .eslintrc create mode 100644 .github/workflows/pr-checks.yml create mode 100755 .husky/pre-commit create mode 100644 .prettierignore create mode 100644 .prettierrc.json create mode 100644 .vscode/extensions.json create mode 100644 .vscode/settings.json create mode 100644 CODEOWNERS create mode 100644 docs/contributors.md rename howto-setup-test-environment.md => docs/environment.md (58%) create mode 100644 index.html create mode 100644 public/favicon.svg create mode 100644 public/icon.png create mode 100644 public/icon1024.png create mode 100644 public/icon192.png create mode 100644 public/icon384.png create mode 100644 public/icon512.png delete mode 100644 public/index.html create mode 100644 public/manifest.json create mode 100644 public/svg/jambonz--light.svg create mode 100644 public/svg/jambonz.svg create mode 100644 server/dev.server.ts create mode 100644 server/sample-sip-rtp-traffic.pcap delete mode 100644 src/App.js create mode 100644 src/api/constants.ts create mode 100644 src/api/index.ts create mode 100644 src/api/types.ts create mode 100644 src/components/access-control.tsx create mode 100644 src/components/account-filter.tsx create mode 100644 src/components/application-filter.tsx delete mode 100644 src/components/blocks/AntdTable.js delete mode 100644 src/components/blocks/Breadcrumbs.js delete mode 100644 src/components/blocks/FormError.js delete mode 100644 src/components/blocks/Loader.js delete mode 100644 src/components/blocks/Modal.js delete mode 100644 src/components/blocks/Nav.js delete mode 100644 src/components/blocks/Notification.js delete mode 100644 src/components/blocks/ProgressVisualization.js delete mode 100644 src/components/blocks/Sbcs.js delete mode 100644 src/components/blocks/SideMenu.js delete mode 100644 src/components/blocks/TableContent.js delete mode 100644 src/components/blocks/TableMenu.js delete mode 100644 src/components/blocks/ToggleText.js create mode 100644 src/components/clipboard/index.tsx delete mode 100644 src/components/elements/AddButton.js delete mode 100644 src/components/elements/AddModalButton.js delete mode 100644 src/components/elements/Button.js delete mode 100644 src/components/elements/Checkbox.js delete mode 100644 src/components/elements/Code.js delete mode 100644 src/components/elements/CopyableText.js delete mode 100644 src/components/elements/FileUpload.js delete mode 100644 src/components/elements/Form.js delete mode 100644 src/components/elements/H1.js delete mode 100644 src/components/elements/Input.js delete mode 100644 src/components/elements/InputGroup.js delete mode 100644 src/components/elements/Label.js delete mode 100644 src/components/elements/Link.js delete mode 100644 src/components/elements/PasswordInput.js delete mode 100644 src/components/elements/Radio.js delete mode 100644 src/components/elements/Select.js delete mode 100644 src/components/elements/Span.js delete mode 100644 src/components/elements/Table.js delete mode 100644 src/components/elements/Tooltip.js delete mode 100644 src/components/elements/TrashButton.js delete mode 100644 src/components/forms/AccountForm.js delete mode 100644 src/components/forms/ApplicationForm.js delete mode 100644 src/components/forms/CarrierForm.js delete mode 100644 src/components/forms/MsTeamsTenantForm.js delete mode 100644 src/components/forms/PhoneNumberForm.js delete mode 100644 src/components/forms/SettingsForm.js delete mode 100644 src/components/forms/SpeechForm.js create mode 100644 src/components/forms/account-select.tsx create mode 100644 src/components/forms/application-select.tsx create mode 100644 src/components/forms/checkzone/index.tsx create mode 100644 src/components/forms/checkzone/styles.scss create mode 100644 src/components/forms/file-upload/index.tsx create mode 100644 src/components/forms/file-upload/styles.scss create mode 100644 src/components/forms/index.ts create mode 100644 src/components/forms/local-limits.tsx create mode 100644 src/components/forms/message/index.tsx create mode 100644 src/components/forms/message/styles.scss create mode 100644 src/components/forms/passwd/index.tsx create mode 100644 src/components/forms/passwd/styles.scss create mode 100644 src/components/forms/selector/index.tsx create mode 100644 src/components/forms/selector/styles.scss create mode 100644 src/components/icons.ts create mode 100644 src/components/index.ts create mode 100644 src/components/modal/index.tsx create mode 100644 src/components/modal/styles.scss create mode 100644 src/components/obscure/index.tsx create mode 100644 src/components/obscure/styles.scss delete mode 100644 src/components/pages/InvalidRoute.js delete mode 100644 src/components/pages/Login.js delete mode 100644 src/components/pages/internal/AccountsAddEdit.js delete mode 100644 src/components/pages/internal/AccountsList.js delete mode 100644 src/components/pages/internal/AlertsList.js delete mode 100644 src/components/pages/internal/ApplicationsAddEdit.js delete mode 100644 src/components/pages/internal/ApplicationsList.js delete mode 100644 src/components/pages/internal/CarriersAddEdit.js delete mode 100644 src/components/pages/internal/CarriersList.js delete mode 100644 src/components/pages/internal/MsTeamsTenantsAddEdit.js delete mode 100644 src/components/pages/internal/MsTeamsTenantsList.js delete mode 100644 src/components/pages/internal/PhoneNumbersAddEdit.js delete mode 100644 src/components/pages/internal/PhoneNumbersList.js delete mode 100644 src/components/pages/internal/RecentCallsList.js delete mode 100644 src/components/pages/internal/Settings.js delete mode 100644 src/components/pages/internal/SpeechServicesAddEdit.js delete mode 100644 src/components/pages/internal/SpeechServicesList.js delete mode 100644 src/components/pages/setup/ConfigureAccount.js delete mode 100644 src/components/pages/setup/ConfigureSipTrunk.js delete mode 100644 src/components/pages/setup/CreateApplication.js delete mode 100644 src/components/pages/setup/CreatePassword.js delete mode 100644 src/components/pages/setup/SetupComplete.js create mode 100644 src/components/pagination/index.tsx create mode 100644 src/components/pagination/styles.scss create mode 100644 src/components/require-auth.tsx create mode 100644 src/components/search-filter/index.tsx create mode 100644 src/components/search-filter/styles.scss create mode 100644 src/components/section/index.tsx create mode 100644 src/components/section/styles.scss create mode 100644 src/components/select-filter.tsx create mode 100644 src/components/spinner/index.tsx create mode 100644 src/components/spinner/styles.scss delete mode 100644 src/components/templates/InternalTemplate.js delete mode 100644 src/components/templates/SetupTemplate.js create mode 100644 src/components/toast/index.tsx create mode 100644 src/components/toast/styles.scss create mode 100644 src/components/tooltip/index.tsx create mode 100644 src/components/tooltip/styles.scss delete mode 100644 src/constants.js create mode 100644 src/constants/index.tsx create mode 100644 src/containers/internal/api-keys/index.tsx create mode 100644 src/containers/internal/api-keys/styles.scss create mode 100644 src/containers/internal/index.ts create mode 100644 src/containers/internal/layout.tsx create mode 100644 src/containers/internal/navi/index.tsx create mode 100644 src/containers/internal/navi/items.ts create mode 100644 src/containers/internal/navi/styles.scss create mode 100644 src/containers/internal/styles.scss create mode 100644 src/containers/internal/views/accounts/add.tsx create mode 100644 src/containers/internal/views/accounts/delete.tsx create mode 100644 src/containers/internal/views/accounts/edit.tsx create mode 100644 src/containers/internal/views/accounts/form.tsx create mode 100644 src/containers/internal/views/accounts/index.tsx create mode 100644 src/containers/internal/views/alerts/index.tsx create mode 100644 src/containers/internal/views/applications/add.tsx create mode 100644 src/containers/internal/views/applications/delete.tsx create mode 100644 src/containers/internal/views/applications/edit.tsx create mode 100644 src/containers/internal/views/applications/form.tsx create mode 100644 src/containers/internal/views/applications/index.tsx create mode 100644 src/containers/internal/views/carriers/add.tsx create mode 100644 src/containers/internal/views/carriers/delete.tsx create mode 100644 src/containers/internal/views/carriers/edit.tsx create mode 100644 src/containers/internal/views/carriers/form.tsx create mode 100644 src/containers/internal/views/carriers/gateways.tsx create mode 100644 src/containers/internal/views/carriers/index.tsx create mode 100644 src/containers/internal/views/ms-teams-tenants/add.tsx create mode 100644 src/containers/internal/views/ms-teams-tenants/delete.tsx create mode 100644 src/containers/internal/views/ms-teams-tenants/edit.tsx create mode 100644 src/containers/internal/views/ms-teams-tenants/form.tsx create mode 100644 src/containers/internal/views/ms-teams-tenants/index.tsx create mode 100644 src/containers/internal/views/phone-numbers/add.tsx create mode 100644 src/containers/internal/views/phone-numbers/delete.tsx create mode 100644 src/containers/internal/views/phone-numbers/edit.tsx create mode 100644 src/containers/internal/views/phone-numbers/form.tsx create mode 100644 src/containers/internal/views/phone-numbers/index.tsx create mode 100644 src/containers/internal/views/recent-calls/details.tsx create mode 100644 src/containers/internal/views/recent-calls/index.tsx create mode 100644 src/containers/internal/views/recent-calls/pcap.tsx create mode 100644 src/containers/internal/views/settings/index.tsx create mode 100644 src/containers/internal/views/speech-services/add.tsx create mode 100644 src/containers/internal/views/speech-services/delete.tsx create mode 100644 src/containers/internal/views/speech-services/edit.tsx create mode 100644 src/containers/internal/views/speech-services/form.tsx create mode 100644 src/containers/internal/views/speech-services/index.tsx create mode 100644 src/containers/internal/views/speech-services/status.tsx create mode 100644 src/containers/internal/views/speech-services/utils.ts create mode 100644 src/containers/login/create-password.tsx create mode 100644 src/containers/login/index.ts create mode 100644 src/containers/login/layout.tsx create mode 100644 src/containers/login/login.tsx create mode 100644 src/containers/login/styles.scss create mode 100644 src/containers/notfound.tsx delete mode 100644 src/contexts/ModalContext.js delete mode 100644 src/contexts/NotificationContext.js delete mode 100644 src/contexts/ServiceProviderContext.js delete mode 100644 src/contexts/ShowMsTeamsContext.js delete mode 100644 src/data/AwsRegions.js delete mode 100644 src/data/MicrosoftAzureRegions.js delete mode 100644 src/data/SpeechRecognizerLanguageAws.js delete mode 100644 src/data/SpeechRecognizerLanguageGoogle.js delete mode 100644 src/data/SpeechRecognizerLanguageMicrosoft.js delete mode 100644 src/data/SpeechSynthesisLanguageAws.js delete mode 100644 src/data/SpeechSynthesisLanguageGoogle.js delete mode 100644 src/data/SpeechSynthesisLanguageMicrosoft.js delete mode 100644 src/data/SpeechSynthesisLanguageWellSaid.js delete mode 100644 src/fonts/WorkSans-Medium.ttf delete mode 100644 src/fonts/WorkSans-Regular.ttf delete mode 100644 src/fonts/WorkSans-SemiBold.ttf delete mode 100644 src/helpers/handleErrors.js delete mode 100644 src/helpers/phoneNumberFormat.js delete mode 100644 src/helpers/sortSipGateways.js delete mode 100644 src/helpers/timeFormat.js delete mode 100644 src/images/AccountsIcon.svg delete mode 100644 src/images/AlertsIcon.svg delete mode 100644 src/images/ApplicationsIcon.svg delete mode 100644 src/images/CarriersIcon.svg delete mode 100644 src/images/CheckGreen.svg delete mode 100644 src/images/Chevron.svg delete mode 100644 src/images/ErrorIcon.svg delete mode 100644 src/images/HidePassword.svg delete mode 100644 src/images/LogoJambong.svg delete mode 100644 src/images/MenuDots.svg delete mode 100644 src/images/MsTeamsIcon.svg delete mode 100644 src/images/PhoneNumbersIcon.svg delete mode 100644 src/images/RecentCallsIcon.svg delete mode 100644 src/images/SettingsIcon.svg delete mode 100644 src/images/SpeechIcon.svg delete mode 100644 src/images/TrashIcon.svg delete mode 100644 src/images/ViewPassword.svg delete mode 100644 src/index.css delete mode 100644 src/index.js create mode 100644 src/main.tsx delete mode 100644 src/reducers/NotificationReducer.js create mode 100644 src/router/auth.tsx create mode 100644 src/router/index.tsx create mode 100644 src/router/routes.ts create mode 100644 src/store/actions.ts create mode 100644 src/store/index.tsx create mode 100644 src/store/types.ts create mode 100644 src/styles/_cards.scss create mode 100644 src/styles/_forms.scss create mode 100644 src/styles/_inpbtn.scss create mode 100644 src/styles/_lists.scss create mode 100644 src/styles/_mixins.scss create mode 100644 src/styles/_smsel.scss create mode 100644 src/styles/_vars.scss create mode 100644 src/styles/index.scss create mode 100644 src/utils/index.ts create mode 100644 src/utils/use-filtered-results.ts create mode 100644 src/utils/use-mobile-media.ts create mode 100644 src/utils/use-redirect.ts create mode 100644 src/utils/with-access-control.tsx create mode 100644 src/utils/with-select-state.tsx create mode 100644 src/utils/with-suspense.tsx create mode 100644 src/vendor/index.tsx create mode 100644 src/vendor/regions/aws-regions.ts create mode 100644 src/vendor/regions/ms-azure-regions.ts create mode 100644 src/vendor/speech-recognizer/aws-speech-recognizer-lang.ts create mode 100644 src/vendor/speech-recognizer/google-speech-recognizer-lang.ts create mode 100644 src/vendor/speech-recognizer/ms-speech-recognizer-lang.ts create mode 100644 src/vendor/speech-synthesis/aws-speech-synthesis-lang.ts create mode 100644 src/vendor/speech-synthesis/google-speech-synthesis-lang.ts create mode 100644 src/vendor/speech-synthesis/ms-speech-synthesis-lang.ts create mode 100644 src/vendor/speech-synthesis/ms-speech-synthesis-raw.ts create mode 100644 src/vendor/speech-synthesis/wellsaid-speech-synthesis-lang.ts create mode 100644 src/vendor/types.ts create mode 100644 src/vite-env.d.ts create mode 100644 tsconfig.json create mode 100644 tsconfig.node.json create mode 100644 vite.config.ts diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..c67b301 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,17 @@ +# Node / env / dist +node_modules +dist +dist-ssr + +# Jambonz +.dockerignore +.git* +.husky +.vscode +docs +/public/fonts +server +CODEOWNERS +Dockerfile +LICENSE +README.md diff --git a/.env b/.env index 9e38faf..b165595 100644 --- a/.env +++ b/.env @@ -1,2 +1,2 @@ -REACT_APP_API_BASE_URL=http://127.0.0.1:3002/v1 -GENERATE_SOURCEMAP=false \ No newline at end of file +VITE_API_BASE_URL=http://127.0.0.1:3000/v1 +VITE_DEV_BASE_URL=http://127.0.0.1:3002/api \ No newline at end of file diff --git a/.eslintrc b/.eslintrc deleted file mode 100644 index 8665ebb..0000000 --- a/.eslintrc +++ /dev/null @@ -1,13 +0,0 @@ -{ - "extends": "react-app", - "rules": { - "linebreak-style": [ - "error", - "unix" - ], - "semi": [ - "error", - "always" - ] - } -} \ No newline at end of file diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index d11cd46..862661a 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -15,7 +15,6 @@ env: jobs: push: - runs-on: ubuntu-latest if: github.event_name == 'push' @@ -48,4 +47,4 @@ jobs: echo VERSION=$VERSION docker tag $IMAGE_NAME $IMAGE_ID:$VERSION - docker push $IMAGE_ID:$VERSION \ No newline at end of file + docker push $IMAGE_ID:$VERSION diff --git a/.github/workflows/pr-checks.yml b/.github/workflows/pr-checks.yml new file mode 100644 index 0000000..4614293 --- /dev/null +++ b/.github/workflows/pr-checks.yml @@ -0,0 +1,33 @@ +name: PR Checks + +on: + push: + branches: + - main + pull_request: + branches: + - "**" + +jobs: + pr-checks: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - name: Cache node_modules + id: node-cache + uses: actions/cache@v2 + with: + path: node_modules + key: node-modules-${{ hashFiles('package-lock.json') }} + + - name: Install node_modules + if: steps.node-cache.outputs.cache-hit != 'true' + run: npm install + + - name: Run checks + run: | + npm run format + npm run lint + npm run test + npm run build diff --git a/.gitignore b/.gitignore index 0c43a1c..92f8250 100644 --- a/.gitignore +++ b/.gitignore @@ -1,21 +1,27 @@ -# dependencies -/node_modules -/.pnp -.pnp.js - -# testing -/coverage - -# production -/build - -# misc -.DS_Store -.env.local -.env.development.local -.env.test.local -.env.production.local - +# Logs +logs +*.log npm-debug.log* yarn-debug.log* yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +# Node / env / dist +node_modules +dist +dist-ssr +*.local +yarn.lock + +# Editor directories and files +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +# Jambonz +/public/fonts \ No newline at end of file diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 0000000..c7bdee1 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,14 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +# lint, prettier etc... +npx lint-staged + +# run tests +npm run test + +# run build -- tsc +# npm run build + +# run tsc +npx tsc diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..92f8250 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,27 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +# Node / env / dist +node_modules +dist +dist-ssr +*.local +yarn.lock + +# Editor directories and files +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +# Jambonz +/public/fonts \ No newline at end of file diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1 @@ +{} diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..82a944c --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,7 @@ +{ + "recommendations": [ + "dbaeumer.vscode-eslint", + "esbenp.prettier-vscode", + "ms-vscode.vscode-typescript-next" + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..3501f16 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,9 @@ +{ + "editor.tabSize": 2, + "editor.detectIndentation": false, + "editor.formatOnSave": true, + "editor.defaultFormatter": "esbenp.prettier-vscode", + "prettier.configPath": ".prettierrc.json", + "files.trimTrailingWhitespace": true, + "typescript.preferences.quoteStyle": "double" +} diff --git a/CODEOWNERS b/CODEOWNERS new file mode 100644 index 0000000..cee37e5 --- /dev/null +++ b/CODEOWNERS @@ -0,0 +1,4 @@ +# see https://bit.ly/3t2LLMR for CODEOWNERS syntax + +# all files owned by: +* @davehorton @kitajchuk \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 74a40f3..07b5007 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,6 @@ FROM node:18.8.0-alpine as builder RUN apk update && apk add --no-cache python3 make g++ COPY . /opt/app WORKDIR /opt/app/ -COPY package.json ./ RUN npm install RUN npm run build RUN npm prune @@ -12,7 +11,7 @@ RUN apk add curl WORKDIR /opt/app COPY . /opt/app COPY --from=builder /opt/app/node_modules ./node_modules -COPY --from=builder /opt/app/build ./build +COPY --from=builder /opt/app/dist ./dist COPY ./entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh -ENTRYPOINT ["/entrypoint.sh"] \ No newline at end of file +ENTRYPOINT ["/entrypoint.sh"] diff --git a/LICENSE b/LICENSE index 23369fa..0f11736 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2021 Drachtio Communications Services, LLC +Copyright (c) 2022 Drachtio Communications Services, LLC Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index c7258a2..dadca18 100644 --- a/README.md +++ b/README.md @@ -1,37 +1,66 @@ -# Jambonz Web Application +

+ + +

jambonz

+ +

-## Deploy to Production +

+ + + +

- 1. Install `pm2` globally on the server hosting this application. - 2. Copy `.env` to `.env.local` - 3. In `.env.local`, replace `[ip]:[port]` with the API's IP and port - 4. Run `npm run deploy` - 5. Access the web app via port 3001 +> A simple provisioning webapp for jambonz -NOTE: Here is what `npm run deploy` does: +## OSS Developers - - Install all dependencies (`npm i`) - - Build the production React application (`npm run build`) - - Launch the app with pm2 (`pm2 start npm --name "jambonz-webapp" -- run serve`) +If you're here to contribute to the jambonz web app source code +you can view our [contributor readme](./docs/contributors.md). + +## Webapp deployment + +### Deploy to production + +1. Install `pm2` globally on the server hosting this application. +2. Copy `.env` to `.env.local` +3. In `.env.local`, replace `[ip]:[port]` with the API's IP and port +4. Run `npm run deploy` +5. Access the web app via port 3001 + +_NOTE: Here is what `npm run deploy` does:_ + +- Install all dependencies (`npm i`) +- Build the production React application (`npm run build`) +- Launch the app with pm2 (`pm2 start npm --name "jambonz-webapp" -- run serve`) Alternatively, you can serve the app manually (without pm2) with `npm run serve`. -## Updates +### Update production If there is an update to this code base, you can update the code without re-deploying. - 1. run `git pull` - 2. run `npm run build` +1. run `git pull origin main --rebase` +2. run `npm i` +3. run `npm run build` -## Development +### With docker -### Local server -See [howto-setup-test-environment](./howto-setup-test-environment.md) for details on how to set up a complete local test environment on your laptop. +You can pull the public docker image for the web app: -### Remote server -If you want to test against a remote server, you must specify the IP:port of the Jambonz API you will be hitting. +```sh +docker pull ghcr.io/jambonz/webapp:latest +``` - 1. Copy `.env` to `.env.local` - 2. In `.env.local`, replace `[ip]:[port]` with the API's IP and port - 3. `npm start` - 4. Access the web app via http://localhost:3001 +You can run the docker image for the webapp and expose the serve port to the host: + +```sh +docker run --publish=3001:3001 ghcr.io/jambonz/webapp:latest +``` + +You can build and run the docker image from the source, for example: + +```sh +docker build . --tag jambonz-webapp:local +docker run --publish=3001:3001 jambonz-webapp:local +``` diff --git a/docs/contributors.md b/docs/contributors.md new file mode 100644 index 0000000..53d2530 --- /dev/null +++ b/docs/contributors.md @@ -0,0 +1,194 @@ +

+ + +

jambonz

+ +

+ +

+ + + +

+ +> Contributing to the web app source code + +## :rocket: Getting started + +In order to run the web app you'll need your local environment setup which you can do +following instructions in our [environment readme](./environment.md). + +Once your environment is setup you can fork or clone this repo. To start the web app +just run `npm install` and then `npm start`. + +## :pancakes: Dev stack + +We're using [vite](https://vitejs.dev/) for development and +the main application is [react](https://reactjs.org/docs/getting-started.html) +with [typescript](https://www.typescriptlang.org/), +[prettier](https://prettier.io/), [eslint](https://eslint.org/), +[husky](https://typicode.github.io/husky/#/) +and [lint-staged](https://www.npmjs.com/package/lint-staged). + +## :lock: Auth middleware + +We have auth middleware that was initially based on this [useAuth](https://usehooks.com/useAuth/) +example but has been typed and modified to include a `RequireAuth` component for wrapping internal Routes. +The main hook you'll use here is `useAuth`. This hook provides the `AuthStateContext` which has the +following: + +- `token` +- `signin(user, pass)` +- `signout()` +- `authorized` + +### A note on our ACL implementation + +We have some simple ACL utilities for managing access to UI/routes based on conditions. +There is a basic `AccessControl` component and a handy `withAccessControl` +HOC for route containers with redirect. There is also a `useAccessControl` hook for +use at the component-level. + +## :joystick: Application state + +`ui = fn(state)` + +The state for the application has two parts: the local state and the remote server state. +The server state is the source of truth. We keep only the minimal amount of local state +necessary: the current logged in user, the list of service providers and the actively selected +current service provider. We also use local state for a basic permissions matrix and for the +global toast notifications. That's it! Local state is easy. + +Because of this limited scope for local state we're **not using a third-party state manager**. +We have a custom store implementation using vanilla React `useReducer` and context to provide +the state to our application. There are many useful functions and hooks for working with state +which include the following: + +- `useStateContext()`: returns the entire state object +- `useSelectState(key)`: returns just the piece of state desired +- `useDispatch()`: returns global dispatch method +- `useAccessControl(acl)`: returns true/false for select ACL permissions +- `useFeatureFlag(flag)`: returns true/false for available feature flags +- `withSelectState([...keys])(Component)`: like redux connect it maps state to props +- `toastError(msg)`: helper for dispatching error toasts +- `toastSuccess(msg)`: helper for dispatching success toasts + +## :wales: API implementation + +We have a centralized API implementation that uses our normalized `fetchTransport` method +under the hood. We have `use` hooks for general `GET` fetching that return the `data` fetched, +a `refetcher` function that, when called, will update the data in the hook and therefore your +component will render the new data, and a possible `error` if the fetch failed. The general +consensus on when to use the hooks vs using a `getFetch` directly are dictated by whether the +API response data needs to be refetched locally based on some user action, such as deleting +an item from a list. In that case use the hooks, otherwise a `getFetch` pattern should work. + +The hooks are: + +- `useApiData(path)`: returns `[data, refetcher, error]` +- `useServiceProviderData(path)`: returns `[data, refetcher, error]` + +All API requests are piped through the `fetchTransport` method which receives a generic type +and returns it as the type of response data resolved. Any `POST`, `PUT` or `DELETE` calls should +have a wrapper method that calls our more generic methods under the hood, which are: + +- `getFetch(url)` +- `postFetch(url, payload)` +- `putFetch(url, payload)` +- `deleteFetch(url)` +- `getBlob(url)` + +Example of wrapper API methods to `:POST` and `:PUT` for the `Account` type: + +```ts +export const postAccount = (payload: Partial) => { + return postFetch>(API_ACCOUNTS, payload); +}; + +export const putAccount = (sid: string, payload: Partial) => { + return putFetch>( + `${API_ACCOUNTS}/${sid}`, + payload + ); +}; +``` + +### Local dev mock API server + +There are two views that rely on call detail records (CDRs) that don't exist in the local +developer db when running the docker stack. For these views we have a local node express +server that replicates functional parity of the backend APIs in question so you can work +on the UI. The views are `Recent Calls` and `Alerts`. They are simple table views with +filter and pagination functionalities. You can view the implementation at `server/dev.server.ts`. +The approach is to replicate the pattern of how test data is seeded for the API server and +add the filtering on top of it with simple JavaScript functions. To run the dev server: + +```shell +npm run dev:server +``` + +## :file_folder: Vendor data modules + +Large data modules are used for menu options on the Applications and Speech Services +forms. These modules are loaded lazily and set to local state in the context in which +they are used. You can find the data modules and their type definitions in the `src/vendor` +directory. + +## :sunrise: Component composition + +All components that are used as Route elements are considered `containers`. +Containers are organized by `login` and `internal`, the latter of which requires +the user to be authorized via our auth middleware layer. Reusable components are +small with specific pieces of functionality and their own local state. We have +plenty of examples including `toast`, `modal` and so forth. You should review some +of each category of component to get an idea of how the patterns are put into practice. + +## :art: UI and styling + +We have a UI design system called [jambonz-ui](https://github.com/jambonz/jambonz-ui). +It's public on `npm` and is being used for this project. It's still small and simple +but provides the foundational package content for building jambonz UIs. You can view +the storybook for it [here](https://jambonz-ui.vercel.app/) as well as view the docs +for it [here](https://www.jambonz.org/docs/jambonz-ui/). + +### A note on styles + +While we use [sass](https://sass-lang.com/) with `scss` syntax it should be stated that the +primary objective is to simply write generally pure `css`. We take advantage of a few nice +features of `sass` like nesting for [BEM](http://getbem.com/naming/) module style etc. We +also take advantage of loading the source `sass` from the UI library. Here's an example of +the `BEM` style we use: + +```scss +.example { + // This is the block + + &--modifier { + // This is a modifier of the block + } + + &__item { + // This is an element + + &--modifer { + // This a modifer of the element + } + } +} +``` + +## :heart: Contributing + +If you would like to contribute to this project please follow these simple guidelines: + +- Be excellent to each other! +- Follow the best practices and coding standards outlined here. +- Clone or fork this repo, write code and open a PR :+1: +- All code must pass the `pr-checks` and be reviewed by a code owner. + +That's it! + +## :beetle: Bugs? + +If you find a bug please file an issue on this repository with as much information as +possible regarding replication etc :pray:. diff --git a/howto-setup-test-environment.md b/docs/environment.md similarity index 58% rename from howto-setup-test-environment.md rename to docs/environment.md index c52ed25..3755dc2 100644 --- a/howto-setup-test-environment.md +++ b/docs/environment.md @@ -1,19 +1,40 @@ -# Setting up a local test environment -This document describes how to set up a local development and test environment on your laptop. Testing the jambonz-webapp requires a back-end system to run against, and we use docker-compose to run these back-end components, allowing you to develop and test the react UI locally. +

+ + +

jambonz

+ +

+ +

+ + + +

+ +> Setting up a local test environment + +This document describes how to set up a local development and test environment on your laptop. +Testing the jambonz-webapp requires a back-end system to run against, and we use docker-compose +to run these back-end components, allowing you to develop and test the web app UI locally. ## Prerequisites + - You will need to have docker and docker-compose installed on your laptop. - You need to have cloned the [jambonz-api-server](https://github.com/jambonz/jambonz-api-server) repo to a folder on your laptop. ## Running the back-end services -Make sure the docker daemon is running on your laptop. Open a terminal window and cd into the project folder for jambonz-api-server, then run the following command to start the back-end processes. + +Make sure the docker daemon is running on your laptop. Open a terminal window and cd into the +project folder for jambonz-api-server, then run the following command to start the back-end processes. ```bash cd jambonz-api-server npm run integration-test ``` -This will take a few minutes to start, but eventually a successfull startup will eventually look something like this: +This will take a few minutes to start, but eventually a successfull startup will eventually +look something like this: + ```bash $ npm run integration-test @@ -38,6 +59,7 @@ ready for testing! ``` This starts the a docker-compose network running the following containers: + - mysql - redis - influxdb @@ -45,15 +67,29 @@ This starts the a docker-compose network running the following containers: - drachtio - homer-webapp -Leaving the jambonz-api-server process running, open another terminal window, cd into the folder where you have checked out this project, and start it as shown below: +Leaving the jambonz-api-server process running, open another terminal window, cd into the +folder where you have checked out this project, and start it as shown below: ``` cd jambonz-webapp +npm i npm start ``` -This will start the react UI and open a browser page to http://localhost:3001. -You should now see the login page to the jambonz webapp and can log in with username admin and password admin. You will be forced to change the password, and then you should see the main page of the application. +This will start the web app UI on http://localhost:3001. + +You should now see the login page to the jambonz webapp and can log in with username admin and +password admin. You will be forced to change the password, and then you should see the main page +of the application. From here you can make and test changes locally. +## Testing with remote server + +If you want to test against a remote server, you must specify the ip:port of +the Jambonz API you will be hitting. + +1. Copy `.env` to `.env.local` +2. In `.env.local`, replace `[ip]:[port]` with the API's IP and port +3. `npm start` +4. Access the web app via http://localhost:3001 diff --git a/entrypoint.sh b/entrypoint.sh index 57ea0e7..990ffa9 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -1,10 +1,18 @@ #!/bin/sh + +# This is where the frontend dist is located +cd /opt/app/ + +# Build the backend API URL for frontend web app PUBLIC_IPV4="$(curl --fail -qs whatismyip.akamai.com)" API_PORT="${API_PORT:-3000}" API_VERSION="${API_VERSION:-v1}" -REACT_APP_API_BASE_URL=${REACT_APP_API_BASE_URL:-http://$PUBLIC_IPV4:$API_PORT/$API_VERSION} -echo "REACT_APP_API_BASE_URL=${REACT_APP_API_BASE_URL}" > /opt/app/.env -cd /opt/app/ -TAG="" -sed -i -e "\@@i\ $TAG" ./build/index.html +API_BASE_URL=${API_BASE_URL:-http://$PUBLIC_IPV4:$API_PORT/$API_VERSION} + +# Serialize window global to provide the API URL to static frontend dist +# This is declared and utilized in the web app: src/api/constants.ts +SCRIPT_TAG="" +sed -i -e "\@@i\ $SCRIPT_TAG" ./dist/index.html + +# Start the frontend web app static server npm run serve diff --git a/index.html b/index.html new file mode 100644 index 0000000..e9589e5 --- /dev/null +++ b/index.html @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + Jambonz Web App + + +
+ +
+ + + diff --git a/package-lock.json b/package-lock.json index 51a11d6..7f31cc2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,108 +7,99 @@ "": { "name": "jambonz-webapp", "version": "v0.7.6", + "hasInstallScript": true, + "license": "MIT", "dependencies": { - "@testing-library/jest-dom": "^5.16.4", - "@testing-library/react": "^12.1.5", - "@testing-library/user-event": "^7.2.1", - "antd": "^4.21.0", - "axios": "^0.21.1", - "moment": "^2.29.4", - "prop-types": "^15.7.2", - "react": "^16.13.1", - "react-dom": "^16.13.1", - "react-router-dom": "^5.1.2", - "react-scripts": "^5.0.0", - "serve": "^13.0.2", - "styled-components": "^5.0.1" - } - }, - "node_modules/@ant-design/colors": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-6.0.0.tgz", - "integrity": "sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ==", - "dependencies": { - "@ctrl/tinycolor": "^3.4.0" - } - }, - "node_modules/@ant-design/icons": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-4.7.0.tgz", - "integrity": "sha512-aoB4Z7JA431rt6d4u+8xcNPPCrdufSRMUOpxa1ab6mz1JCQZOEVolj2WVs/tDFmN62zzK30mNelEsprLYsSF3g==", - "dependencies": { - "@ant-design/colors": "^6.0.0", - "@ant-design/icons-svg": "^4.2.1", - "@babel/runtime": "^7.11.2", - "classnames": "^2.2.6", - "rc-util": "^5.9.4" + "dayjs": "^1.11.5", + "jambonz-ui": "^0.0.19", + "react": "^18.0.0", + "react-blockies": "^1.4.1", + "react-dom": "^18.0.0", + "react-feather": "^2.0.10", + "react-router-dom": "^6.3.0" + }, + "devDependencies": { + "@types/cors": "^2.8.12", + "@types/express": "^4.17.13", + "@types/node": "^18.6.1", + "@types/react": "^18.0.0", + "@types/react-blockies": "^1.4.1", + "@types/react-dom": "^18.0.0", + "@typescript-eslint/eslint-plugin": "^5.30.6", + "@typescript-eslint/parser": "^5.30.6", + "@vitejs/plugin-react": "^1.3.0", + "cors": "^2.8.5", + "eslint": "^8.19.0", + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-jsx-a11y": "^6.6.0", + "eslint-plugin-react": "^7.30.1", + "eslint-plugin-react-hooks": "^4.6.0", + "express": "^4.18.1", + "husky": "^8.0.1", + "lint-staged": "^13.0.3", + "nanoid": "^4.0.0", + "prettier": "^2.7.1", + "sass": "^1.53.0", + "serve": "^14.0.1", + "ts-node": "^10.9.1", + "typescript": "^4.6.3", + "vite": "^3.0.0" }, "engines": { - "node": ">=8" - }, - "peerDependencies": { - "react": ">=16.0.0", - "react-dom": ">=16.0.0" + "node": ">=14.18" } }, - "node_modules/@ant-design/icons-svg": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.2.1.tgz", - "integrity": "sha512-EB0iwlKDGpG93hW8f85CTJTs4SvMX7tt5ceupvhALp1IF44SeUFOMhKUOYqpsoYWQKAOuTRDMqn75rEaKDp0Xw==" - }, - "node_modules/@ant-design/react-slick": { - "version": "0.28.4", - "resolved": "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-0.28.4.tgz", - "integrity": "sha512-j9eAHTn7GxbXUFNknJoHS2ceAsqrQi2j8XykjZE1IXCD8kJF+t28EvhBLniDpbOsBk/3kjalnhriTfZcjBHNqg==", + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "@babel/runtime": "^7.10.4", - "classnames": "^2.2.5", - "json2mq": "^0.2.0", - "lodash": "^4.17.21", - "resize-observer-polyfill": "^1.5.0" + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" }, - "peerDependencies": { - "react": ">=16.9.0" + "engines": { + "node": ">=6.0.0" } }, "node_modules/@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "version": "7.18.6", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.16.7" + "@babel/highlight": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.0.tgz", - "integrity": "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==", + "version": "7.18.8", + "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.7.tgz", - "integrity": "sha512-aeLaqcqThRNZYmbMqtulsetOQZ/5gbR/dWruUCJcpas4Qoyy+QeagfDsPdMrqwsPRDNxJvBlRiZxxX7THO7qtA==", + "version": "7.18.6", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.7", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7", + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.6", + "@babel/helper-compilation-targets": "^7.18.6", + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helpers": "^7.18.6", + "@babel/parser": "^7.18.6", + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.6", + "@babel/types": "^7.18.6", "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" + "json5": "^2.2.1", + "semver": "^6.3.0" }, "engines": { "node": ">=6.9.0" @@ -118,111 +109,51 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/eslint-parser": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.17.0.tgz", - "integrity": "sha512-PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA==", - "dependencies": { - "eslint-scope": "^5.1.1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || >=14.0.0" - }, - "peerDependencies": { - "@babel/core": ">=7.11.0", - "eslint": "^7.5.0 || ^8.0.0" - } - }, - "node_modules/@babel/eslint-parser/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==", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@babel/eslint-parser/node_modules/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==", - "engines": { - "node": ">=10" - } - }, - "node_modules/@babel/eslint-parser/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "engines": { - "node": ">=4.0" - } - }, "node_modules/@babel/generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz", - "integrity": "sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==", + "version": "7.18.7", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.16.8", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" + "@babel/types": "^7.18.7", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/generator/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, "engines": { - "node": ">=0.10.0" + "node": ">=6.0.0" } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "version": "7.18.6", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", - "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", - "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", - "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", + "version": "7.18.6", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.16.4", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", + "@babel/compat-data": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.20.2", "semver": "^6.3.0" }, "engines": { @@ -232,273 +163,131 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.9.tgz", - "integrity": "sha512-kUjip3gruz6AJKOq5i3nC6CoCEEF/oHH3cp6tOZhB+IyyyPyW0g1Gfsxn3mkk6S08pIA2y8GQh609v9G/5sHVQ==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-member-expression-to-functions": "^7.17.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", - "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^5.0.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", - "dependencies": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0-0" - } - }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", - "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", - "dependencies": { - "@babel/types": "^7.16.7" - }, + "version": "7.18.6", + "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", - "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", + "version": "7.18.6", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/template": "^7.16.7", - "@babel/types": "^7.17.0" + "@babel/template": "^7.18.6", + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "version": "7.18.6", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", - "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", - "dependencies": { - "@babel/types": "^7.17.0" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "version": "7.18.6", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", - "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", + "version": "7.18.8", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", - "dependencies": { - "@babel/types": "^7.16.7" + "@babel/helper-environment-visitor": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.18.6", + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.8", + "@babel/types": "^7.18.8" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", - "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-wrap-function": "^7.16.8", - "@babel/types": "^7.16.8" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", - "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - }, + "version": "7.18.6", + "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", - "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", + "version": "7.18.6", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", - "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", - "dependencies": { - "@babel/types": "^7.16.0" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "version": "7.18.6", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "version": "7.18.6", + "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", - "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", - "dependencies": { - "@babel/helper-function-name": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8" - }, + "version": "7.18.6", + "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.7.tgz", - "integrity": "sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw==", + "version": "7.18.6", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.6", + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz", - "integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==", + "version": "7.18.6", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -506,10 +295,21 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, "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, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -519,10 +319,50 @@ "node": ">=4" } }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/parser": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.8.tgz", - "integrity": "sha512-i7jDUfrVBWc+7OKcBzEe5n7fbv3i2fWtxKzzCvOjnzSxMfWMigAhtfJ7qzZNGFNMsCCd67+uz553dYKWXPvCKw==", + "version": "7.18.8", + "dev": true, + "license": "MIT", "bin": { "parser": "bin/babel-parser.js" }, @@ -530,910 +370,12 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", - "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", - "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", - "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", - "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.7.tgz", - "integrity": "sha512-dgqJJrcZoG/4CkMopzhPJjGxsIe9A8RlkQLnL/Vhhx8AA9ZuaRwGSlscSh42hazc7WSrya/IK7mTeoF0DP9tEw==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-proposal-decorators": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.9.tgz", - "integrity": "sha512-EfH2LZ/vPa2wuPwJ26j+kYRkaubf89UlwxKXtxqEm57HrgSEYDB8t4swFP+p8LcI9yiP9ZRJJjo/58hS6BnaDA==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.17.9", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/plugin-syntax-decorators": "^7.17.0", - "charcodes": "^0.2.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", - "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", - "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", - "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", - "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", - "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", - "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", - "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", - "dependencies": { - "@babel/compat-data": "^7.17.0", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", - "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", - "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", - "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.10", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", - "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", - "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-decorators": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.0.tgz", - "integrity": "sha512-qWe85yCXsvDEluNP0OyeQjH63DlhAR3W7K9BxxU1MvbDb48tgBG+Ao6IJJ6smPDrrVzSQZrbF6donpkFBMcs3A==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-flow": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.7.tgz", - "integrity": "sha512-UDo3YGQO0jH6ytzVwgSLv9i/CzMcUjbKenL67dTrAZPPv6GFAtDhe6jqnvmoKzC/7htNTohhos+onPtDMqJwaQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", - "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==", + "version": "7.18.6", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz", - "integrity": "sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", - "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", - "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", - "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", - "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", - "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", - "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", - "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.3.tgz", - "integrity": "sha512-dDFzegDYKlPqa72xIlbmSkly5MluLoaC1JswABGktyt6NTXSBcUuse/kWE/wvKFWJHPETpi158qJZFS3JmykJg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", - "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", - "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", - "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-flow-strip-types": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.7.tgz", - "integrity": "sha512-mzmCq3cNsDpZZu9FADYYyfZJIOrSONmHcop2XEKPdBNMa4PDC4eEvcOvzZaCNcjKu72v0XQlA5y1g58aLRXdYg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-flow": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", - "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", - "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", - "dependencies": { - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", - "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", - "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", - "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", - "dependencies": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz", - "integrity": "sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==", - "dependencies": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz", - "integrity": "sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==", - "dependencies": { - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", - "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", - "dependencies": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", - "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", - "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", - "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", - "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", - "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-constant-elements": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.16.7.tgz", - "integrity": "sha512-lF+cfsyTgwWkcw715J88JhMYJ5GpysYNLhLP1PkvkhTRN7B3e74R/1KsDxFxhRpSn0UUD3IWM4GvdBR2PEbbQQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz", - "integrity": "sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1443,15 +385,15 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.3.tgz", - "integrity": "sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ==", + "version": "7.18.6", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-jsx": "^7.16.7", - "@babel/types": "^7.17.0" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-jsx": "^7.18.6", + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1461,11 +403,11 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz", - "integrity": "sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==", + "version": "7.18.6", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.16.7" + "@babel/plugin-transform-react-jsx": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1474,13 +416,12 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz", - "integrity": "sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA==", + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.18.6", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1489,298 +430,12 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", - "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.18.6", + "dev": true, + "license": "MIT", "dependencies": { - "regenerator-transform": "^0.14.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", - "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz", - "integrity": "sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A==", - "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", - "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", - "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", - "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", - "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", - "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz", - "integrity": "sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-typescript": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", - "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", - "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", - "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", - "dependencies": { - "@babel/compat-data": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.16.7", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.16.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.11", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.16.7", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.16.8", - "@babel/plugin-transform-modules-systemjs": "^7.16.7", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", - "@babel/plugin-transform-new-target": "^7.16.7", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.16.7", - "@babel/plugin-transform-reserved-words": "^7.16.7", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.8", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.20.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-react": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.7.tgz", - "integrity": "sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-react-display-name": "^7.16.7", - "@babel/plugin-transform-react-jsx": "^7.16.7", - "@babel/plugin-transform-react-jsx-development": "^7.16.7", - "@babel/plugin-transform-react-pure-annotations": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz", - "integrity": "sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-typescript": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1790,9 +445,8 @@ } }, "node_modules/@babel/runtime": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz", - "integrity": "sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==", + "version": "7.18.6", + "license": "MIT", "dependencies": { "regenerator-runtime": "^0.13.4" }, @@ -1801,9 +455,9 @@ } }, "node_modules/@babel/runtime-corejs3": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.9.tgz", - "integrity": "sha512-WxYHHUWF2uZ7Hp1K+D1xQgbgkGUfA+5UPOegEXGt2Y5SMog/rYCVaifLZDbw8UkNXozEqqrZTy6bglL7xTaCOw==", + "version": "7.18.6", + "dev": true, + "license": "MIT", "dependencies": { "core-js-pure": "^3.20.2", "regenerator-runtime": "^0.13.4" @@ -1813,31 +467,31 @@ } }, "node_modules/@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "version": "7.18.6", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.6", + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.8.tgz", - "integrity": "sha512-xe+H7JlvKsDQwXRsBhSnq1/+9c+LlQcCK3Tn/l5sbx02HYns/cn7ibp9+RV1sIUqu7hKg91NWsgHurO9dowITQ==", + "version": "7.18.8", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.8", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.16.8", - "@babel/types": "^7.16.8", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.7", + "@babel/helper-environment-visitor": "^7.18.6", + "@babel/helper-function-name": "^7.18.6", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.18.8", + "@babel/types": "^7.18.8", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1845,257 +499,71 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", + "version": "7.18.8", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-validator-identifier": "^7.18.6", "to-fast-properties": "^2.0.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" - }, - "node_modules/@csstools/normalize.css": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.0.0.tgz", - "integrity": "sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg==" - }, - "node_modules/@csstools/postcss-color-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.0.2.tgz", - "integrity": "sha512-uayvFqfa0hITPwVduxRYNL9YBD/anTqula0tu2llalaxblEd7QPuETSN3gB5PvTYxSfd0d8kS4Fypgo5JaUJ6A==", + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" + "@jridgewell/trace-mapping": "0.3.9" }, "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" + "node": ">=12" } }, - "node_modules/@csstools/postcss-font-format-keywords": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.0.tgz", - "integrity": "sha512-oO0cZt8do8FdVBX8INftvIA4lUrKUSCcWUf9IwH9IPWOgKT22oAZFXeHLoDK7nhB2SmkNycp5brxfNMRLIhd6Q==", + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.3" + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "node_modules/@csstools/postcss-hwb-function": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.0.tgz", - "integrity": "sha512-VSTd7hGjmde4rTj1rR30sokY3ONJph1reCBTUXqeW1fKwETPy1x4t/XIeaaqbMbC5Xg4SM/lyXZ2S8NELT2TaA==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.3" - } - }, - "node_modules/@csstools/postcss-ic-unit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.0.tgz", - "integrity": "sha512-i4yps1mBp2ijrx7E96RXrQXQQHm6F4ym1TOD0D69/sjDjZvQ22tqiEvaNw7pFZTUO5b9vWRHzbHzP9+UKuw+bA==", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.3" - } - }, - "node_modules/@csstools/postcss-is-pseudo-class": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.0.tgz", - "integrity": "sha512-WnfZlyuh/CW4oS530HBbrKq0G8BKl/bsNr5NMFoubBFzJfvFRGJhplCgIJYWUidLuL3WJ/zhMtDIyNFTqhx63Q==", - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-normalize-display-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.0.tgz", - "integrity": "sha512-bX+nx5V8XTJEmGtpWTO6kywdS725t71YSLlxWt78XoHUbELWgoCXeOFymRJmL3SU1TLlKSIi7v52EWqe60vJTQ==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.3" - } - }, - "node_modules/@csstools/postcss-oklab-function": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.0.1.tgz", - "integrity": "sha512-Bnly2FWWSTZX20hDJLYHpurhp1ot+ZGvojLOsrHa9frzOVruOv4oPYMZ6wQomi9KsbZZ+Af/CuRYaGReTyGtEg==", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-progressive-custom-properties": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.2.0.tgz", - "integrity": "sha512-YLpFPK5OaLIRKZhUfnrZPT9s9cmtqltIOg7W6jPcxmiDpnZ4lk+odfufZttOAgcg6IHWvNLgcITSLpJxIQB/qQ==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.3" - } - }, - "node_modules/@ctrl/tinycolor": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.4.1.tgz", - "integrity": "sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw==", - "engines": { - "node": ">=10" - } - }, - "node_modules/@emotion/is-prop-valid": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.1.2.tgz", - "integrity": "sha512-3QnhqeL+WW88YjYbQL5gUIkthuMw7a0NGbZ7wfFVk2kg/CK5w8w5FFa0RzWjyY1+sujN0NWbtSHH6OJmWHtJpQ==", - "dependencies": { - "@emotion/memoize": "^0.7.4" - } - }, - "node_modules/@emotion/memoize": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.5.tgz", - "integrity": "sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==" - }, - "node_modules/@emotion/stylis": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", - "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==" - }, - "node_modules/@emotion/unitless": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", - "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" - }, "node_modules/@eslint/eslintrc": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.1.0.tgz", - "integrity": "sha512-C1DfL7XX4nPqGd6jcP01W9pVM1HYCuUkFk1432D7F0v3JSlUIeOYn9oCoi3eoLZ+iwBSb29BMFxxny0YrrEZqg==", + "version": "1.3.0", + "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.3.1", - "globals": "^13.9.0", - "ignore": "^4.0.6", + "espree": "^9.3.2", + "globals": "^13.15.0", + "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@eslint/eslintrc/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.12.1", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz", - "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/@eslint/eslintrc/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@eslint/eslintrc/node_modules/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==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/node_modules/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==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@humanwhocodes/config-array": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.3.tgz", - "integrity": "sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ==", + "version": "0.9.5", + "dev": true, + "license": "Apache-2.0", "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", @@ -2107,321 +575,55 @@ }, "node_modules/@humanwhocodes/object-schema": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" + "dev": true, + "license": "BSD-3-Clause" }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", + "dev": true, + "license": "MIT", "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" }, "engines": { - "node": ">=8" + "node": ">=6.0.0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "dev": true, + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=6.0.0" } }, - "node_modules/@istanbuljs/load-nyc-config/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==", + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.14", + "dev": true, + "license": "MIT", "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/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==", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/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==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@istanbuljs/load-nyc-config/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==", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", - "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/core": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", - "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/reporters": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^27.5.1", - "jest-config": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-resolve-dependencies": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "jest-watcher": "^27.5.1", - "micromatch": "^4.0.4", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/environment": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", - "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", - "dependencies": { - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", - "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", - "dependencies": { - "@jest/types": "^27.5.1", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/globals": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", - "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/types": "^27.5.1", - "expect": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/reporters": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", - "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-haste-map": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/source-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", - "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", - "dependencies": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9", - "source-map": "^0.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/test-result": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", - "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", - "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", - "dependencies": { - "@jest/test-result": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-runtime": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/transform": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", - "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.5.1", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-util": "^27.5.1", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "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" + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" } }, "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==", + "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -2432,16 +634,16 @@ }, "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==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "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==", + "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -2450,620 +652,72 @@ "node": ">= 8" } }, - "node_modules/@pmmmwh/react-refresh-webpack-plugin": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.4.tgz", - "integrity": "sha512-zZbZeHQDnoTlt2AF+diQT0wsSXpvWiaIOZwBRdltNFhG1+I3ozyaw7U/nBiUwyJ0D+zwdXp0E3bWOl38Ag2BMw==", - "dependencies": { - "ansi-html-community": "^0.0.8", - "common-path-prefix": "^3.0.0", - "core-js-pure": "^3.8.1", - "error-stack-parser": "^2.0.6", - "find-up": "^5.0.0", - "html-entities": "^2.1.0", - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">= 10.13" - }, - "peerDependencies": { - "@types/webpack": "4.x || 5.x", - "react-refresh": ">=0.10.0 <1.0.0", - "sockjs-client": "^1.4.0", - "type-fest": ">=0.17.0 <3.0.0", - "webpack": ">=4.43.0 <6.0.0", - "webpack-dev-server": "3.x || 4.x", - "webpack-hot-middleware": "2.x", - "webpack-plugin-serve": "0.x || 1.x" - }, - "peerDependenciesMeta": { - "@types/webpack": { - "optional": true - }, - "sockjs-client": { - "optional": true - }, - "type-fest": { - "optional": true - }, - "webpack-dev-server": { - "optional": true - }, - "webpack-hot-middleware": { - "optional": true - }, - "webpack-plugin-serve": { - "optional": true - } - } - }, - "node_modules/@pmmmwh/react-refresh-webpack-plugin/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==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@rollup/plugin-babel": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.0.tgz", - "integrity": "sha512-9uIC8HZOnVLrLHxayq/PTzw+uS25E14KPUBh5ktF+18Mjo5yK0ToMMx6epY0uEgkjwJw0aBW4x2horYXh8juWw==", - "dependencies": { - "@babel/helper-module-imports": "^7.10.4", - "@rollup/pluginutils": "^3.1.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "@types/babel__core": "^7.1.9", - "rollup": "^1.20.0||^2.0.0" - }, - "peerDependenciesMeta": { - "@types/babel__core": { - "optional": true - } - } - }, - "node_modules/@rollup/plugin-node-resolve": { - "version": "11.2.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", - "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.19.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" - } - }, - "node_modules/@rollup/plugin-replace": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", - "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", - "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "magic-string": "^0.25.7" - }, - "peerDependencies": { - "rollup": "^1.20.0 || ^2.0.0" - } - }, "node_modules/@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "version": "4.2.1", + "dev": true, + "license": "MIT", "dependencies": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", + "estree-walker": "^2.0.1", "picomatch": "^2.2.2" }, "engines": { "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" } }, - "node_modules/@rollup/pluginutils/node_modules/@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true }, - "node_modules/@rushstack/eslint-patch": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.3.tgz", - "integrity": "sha512-WiBSI6JBIhC6LRIsB2Kwh8DsGTlbBU+mLRxJmAe3LjHTdkDpwIbEOZgoXBbZilk/vlfjK8i6nKRAvIRn1XaIMw==" + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true }, - "node_modules/@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "dependencies": { - "type-detect": "4.0.8" - } + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true }, - "node_modules/@sinonjs/fake-timers": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", - "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/@surma/rollup-plugin-off-main-thread": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", - "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", - "dependencies": { - "ejs": "^3.1.6", - "json5": "^2.2.0", - "magic-string": "^0.25.0", - "string.prototype.matchall": "^4.0.6" - } - }, - "node_modules/@svgr/babel-plugin-add-jsx-attribute": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz", - "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz", - "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz", - "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz", - "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-svg-dynamic-title": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz", - "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-svg-em-dimensions": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz", - "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-transform-react-native-svg": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz", - "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-plugin-transform-svg-component": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz", - "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/babel-preset": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz", - "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==", - "dependencies": { - "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", - "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", - "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", - "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", - "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", - "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", - "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", - "@svgr/babel-plugin-transform-svg-component": "^5.5.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/core": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz", - "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==", - "dependencies": { - "@svgr/plugin-jsx": "^5.5.0", - "camelcase": "^6.2.0", - "cosmiconfig": "^7.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/hast-util-to-babel-ast": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz", - "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==", - "dependencies": { - "@babel/types": "^7.12.6" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/plugin-jsx": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz", - "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==", - "dependencies": { - "@babel/core": "^7.12.3", - "@svgr/babel-preset": "^5.5.0", - "@svgr/hast-util-to-babel-ast": "^5.5.0", - "svg-parser": "^2.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/plugin-svgo": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz", - "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==", - "dependencies": { - "cosmiconfig": "^7.0.0", - "deepmerge": "^4.2.2", - "svgo": "^1.2.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/webpack": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz", - "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/plugin-transform-react-constant-elements": "^7.12.1", - "@babel/preset-env": "^7.12.1", - "@babel/preset-react": "^7.12.5", - "@svgr/core": "^5.5.0", - "@svgr/plugin-jsx": "^5.5.0", - "@svgr/plugin-svgo": "^5.5.0", - "loader-utils": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@testing-library/dom": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.13.0.tgz", - "integrity": "sha512-9VHgfIatKNXQNaZTtLnalIy0jNZzY35a4S3oi08YAt9Hv1VsfZ/DfA45lM8D/UhtHBGJ4/lGwp0PZkVndRkoOQ==", - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^4.2.0", - "aria-query": "^5.0.0", - "chalk": "^4.1.0", - "dom-accessibility-api": "^0.5.9", - "lz-string": "^1.4.4", - "pretty-format": "^27.0.2" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@testing-library/jest-dom": { - "version": "5.16.4", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.4.tgz", - "integrity": "sha512-Gy+IoFutbMQcky0k+bqqumXZ1cTGswLsFqmNLzNdSKkU9KGV2u9oXhukCbbJ9/LRPKiqwxEE8VpV/+YZlfkPUA==", - "dependencies": { - "@babel/runtime": "^7.9.2", - "@types/testing-library__jest-dom": "^5.9.1", - "aria-query": "^5.0.0", - "chalk": "^3.0.0", - "css": "^3.0.0", - "css.escape": "^1.5.1", - "dom-accessibility-api": "^0.5.6", - "lodash": "^4.17.15", - "redent": "^3.0.0" - }, - "engines": { - "node": ">=8", - "npm": ">=6", - "yarn": ">=1" - } - }, - "node_modules/@testing-library/jest-dom/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": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@testing-library/jest-dom/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@testing-library/jest-dom/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==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@testing-library/jest-dom/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==" - }, - "node_modules/@testing-library/jest-dom/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" - } - }, - "node_modules/@testing-library/jest-dom/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" - } - }, - "node_modules/@testing-library/react": { - "version": "12.1.5", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-12.1.5.tgz", - "integrity": "sha512-OfTXCJUFgjd/digLUuPxa0+/3ZxsQmE7ub9kcbW/wi96Bh3o/p5vrETcBGfP17NWPGqeYYl5LTRpwyGoMC4ysg==", - "dependencies": { - "@babel/runtime": "^7.12.5", - "@testing-library/dom": "^8.0.0", - "@types/react-dom": "<18.0.0" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "react": "<18.0.0", - "react-dom": "<18.0.0" - } - }, - "node_modules/@testing-library/user-event": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-7.2.1.tgz", - "integrity": "sha512-oZ0Ib5I4Z2pUEcoo95cT1cr6slco9WY7yiPpG+RGNkj8YcYgJnM7pXmYmorNOReh8MIGcKSqXyeGjxnr8YiZbA==", - "peerDependencies": { - "@testing-library/dom": ">=5" - } - }, - "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==", - "engines": { - "node": ">= 6" - } - }, - "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" - } - }, - "node_modules/@types/aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==" - }, - "node_modules/@types/babel__core": { - "version": "7.1.18", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.18.tgz", - "integrity": "sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ==", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", - "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", - "dependencies": { - "@babel/types": "^7.3.0" - } + "node_modules/@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", + "dev": true }, "node_modules/@types/body-parser": { "version": "1.19.2", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dev": true, "dependencies": { "@types/connect": "*", "@types/node": "*" } }, - "node_modules/@types/bonjour": { - "version": "3.5.10", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", - "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/connect": { "version": "3.4.35", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, "dependencies": { "@types/node": "*" } }, - "node_modules/@types/connect-history-api-fallback": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", - "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", - "dependencies": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "node_modules/@types/eslint": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.29.0.tgz", - "integrity": "sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng==", - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "node_modules/@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==" + "node_modules/@types/cors": { + "version": "2.8.12", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", + "dev": true }, "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, "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.18", @@ -3072,229 +726,105 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.28", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", - "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", + "version": "4.17.30", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.30.tgz", + "integrity": "sha512-gstzbTWro2/nFed1WXtf+TtrpwxH7Ggs4RLYTLbeVgIkUQOI3WG/JKjgeOU1zXDvezllupjrf8OPIdvTbIaVOQ==", + "dev": true, "dependencies": { "@types/node": "*", "@types/qs": "*", "@types/range-parser": "*" } }, - "node_modules/@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" - }, - "node_modules/@types/http-proxy": { - "version": "1.17.8", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz", - "integrity": "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" - }, - "node_modules/@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==", - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@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==", - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/jest": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-28.1.1.tgz", - "integrity": "sha512-C2p7yqleUKtCkVjlOur9BWVA4HgUQmEj/HWCt5WzZ5mLXrWnyIfl0wGuArc+kBXsy0ZZfLp+7dywB4HtSVYGVA==", - "dependencies": { - "jest-matcher-utils": "^27.0.0", - "pretty-format": "^27.0.0" - } - }, "node_modules/@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==" - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=" + "version": "7.0.11", + "dev": true, + "license": "MIT" }, "node_modules/@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", + "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", + "dev": true }, "node_modules/@types/node": { - "version": "17.0.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.18.tgz", - "integrity": "sha512-eKj4f/BsN/qcculZiRSujogjvp5O/k4lOW5m35NopjZM/QwLOR075a8pJW5hD+Rtdm2DaCVPENS6KtSQnUD6BA==" - }, - "node_modules/@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/prettier": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.4.tgz", - "integrity": "sha512-ReVR2rLTV1kvtlWFyuot+d1pkpG2Fw/XKE3PDAdj57rbM97ttSp9JZ2UsP+2EHTylra9cUf6JA7tGwW1INzUrA==" + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.6.1.tgz", + "integrity": "sha512-z+2vB6yDt1fNwKOeGbckpmirO+VBDuQqecXkgeIqDlaOtmKn6hPR/viQ8cxCfqLU4fTlvM3+YjM367TukWdxpg==", + "dev": true }, "node_modules/@types/prop-types": { "version": "15.7.5", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" - }, - "node_modules/@types/q": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", - "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==" + "dev": true, + "license": "MIT" }, "node_modules/@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==" + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "dev": true }, "node_modules/@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==" + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "dev": true }, "node_modules/@types/react": { - "version": "17.0.45", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.45.tgz", - "integrity": "sha512-YfhQ22Lah2e3CHPsb93tRwIGNiSwkuz1/blk4e6QrWS0jQzCSNbGLtOEYhPg02W0yGTTmpajp7dCTbBAMN3qsg==", + "version": "18.0.15", + "dev": true, + "license": "MIT", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", "csstype": "^3.0.2" } }, + "node_modules/@types/react-blockies": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@types/react-blockies/-/react-blockies-1.4.1.tgz", + "integrity": "sha512-aDX0g0hwzdodkGLSDNUQr6gXxwclGjnhS8jhsR8uQhAfe/7i3GZD/NDcSlQ2SiQiLhfRxX3NlY+nvBwf5Y0tTg==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, "node_modules/@types/react-dom": { - "version": "17.0.17", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.17.tgz", - "integrity": "sha512-VjnqEmqGnasQKV0CWLevqMTXBYG9GbwuE6x3VetERLh0cq2LTptFE73MrQi2S7GkKXCf2GgwItB/melLnxfnsg==", + "version": "18.0.6", + "dev": true, + "license": "MIT", "dependencies": { - "@types/react": "^17" + "@types/react": "*" } }, - "node_modules/@types/resolve": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", - "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@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/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/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", - "dependencies": { - "@types/express": "*" - } + "dev": true, + "license": "MIT" }, "node_modules/@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==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", + "dev": true, "dependencies": { - "@types/mime": "^1", + "@types/mime": "*", "@types/node": "*" } }, - "node_modules/@types/sockjs": { - "version": "0.3.33", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", - "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" - }, - "node_modules/@types/testing-library__jest-dom": { - "version": "5.14.3", - "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.3.tgz", - "integrity": "sha512-oKZe+Mf4ioWlMuzVBaXQ9WDnEm1+umLx0InILg+yvZVBBDmzV5KfZyLrCvadtWcx8+916jLmHafcmqqffl+iIw==", - "dependencies": { - "@types/jest": "*" - } - }, - "node_modules/@types/trusted-types": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz", - "integrity": "sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==" - }, - "node_modules/@types/ws": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.2.2.tgz", - "integrity": "sha512-NOn5eIcgWLOo6qW8AcuLZ7G8PycXu0xTxxkS6Q18VWFxgPUSOwV0pBj2a/4viNZVu25i7RIB7GttdkAIUUXOOg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@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/@typescript-eslint/eslint-plugin": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.20.0.tgz", - "integrity": "sha512-fapGzoxilCn3sBtC6NtXZX6+P/Hef7VDbyfGqTTpzYydwhlkevB+0vE0EnmHPVTVSy68GUncyJ/2PcrFBeCo5Q==", + "version": "5.30.6", + "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "5.20.0", - "@typescript-eslint/type-utils": "5.20.0", - "@typescript-eslint/utils": "5.20.0", - "debug": "^4.3.2", + "@typescript-eslint/scope-manager": "5.30.6", + "@typescript-eslint/type-utils": "5.30.6", + "@typescript-eslint/utils": "5.30.6", + "debug": "^4.3.4", "functional-red-black-tree": "^1.0.1", - "ignore": "^5.1.8", + "ignore": "^5.2.0", "regexpp": "^3.2.0", - "semver": "^7.3.5", + "semver": "^7.3.7", "tsutils": "^3.21.0" }, "engines": { @@ -3316,8 +846,8 @@ }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -3328,33 +858,15 @@ "node": ">=10" } }, - "node_modules/@typescript-eslint/experimental-utils": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.20.0.tgz", - "integrity": "sha512-w5qtx2Wr9x13Dp/3ic9iGOGmVXK5gMwyc8rwVgZU46K9WTjPZSyPvdER9Ycy+B5lNHvoz+z2muWhUvlTpQeu+g==", - "dependencies": { - "@typescript-eslint/utils": "5.20.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, "node_modules/@typescript-eslint/parser": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.20.0.tgz", - "integrity": "sha512-UWKibrCZQCYvobmu3/N8TWbEeo/EPQbS41Ux1F9XqPzGuV7pfg6n50ZrFo6hryynD8qOTTfLHtHjjdQtxJ0h/w==", + "version": "5.30.6", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/scope-manager": "5.20.0", - "@typescript-eslint/types": "5.20.0", - "@typescript-eslint/typescript-estree": "5.20.0", - "debug": "^4.3.2" + "@typescript-eslint/scope-manager": "5.30.6", + "@typescript-eslint/types": "5.30.6", + "@typescript-eslint/typescript-estree": "5.30.6", + "debug": "^4.3.4" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3373,12 +885,12 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.20.0.tgz", - "integrity": "sha512-h9KtuPZ4D/JuX7rpp1iKg3zOH0WNEa+ZIXwpW/KWmEFDxlA/HSfCMhiyF1HS/drTICjIbpA6OqkAhrP/zkCStg==", + "version": "5.30.6", + "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.20.0", - "@typescript-eslint/visitor-keys": "5.20.0" + "@typescript-eslint/types": "5.30.6", + "@typescript-eslint/visitor-keys": "5.30.6" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3389,12 +901,12 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.20.0.tgz", - "integrity": "sha512-WxNrCwYB3N/m8ceyoGCgbLmuZwupvzN0rE8NBuwnl7APgjv24ZJIjkNzoFBXPRCGzLNkoU/WfanW0exvp/+3Iw==", + "version": "5.30.6", + "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/utils": "5.20.0", - "debug": "^4.3.2", + "@typescript-eslint/utils": "5.30.6", + "debug": "^4.3.4", "tsutils": "^3.21.0" }, "engines": { @@ -3414,9 +926,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.20.0.tgz", - "integrity": "sha512-+d8wprF9GyvPwtoB4CxBAR/s0rpP25XKgnOvMf/gMXYDvlUC3rPFHupdTQ/ow9vn7UDe5rX02ovGYQbv/IUCbg==", + "version": "5.30.6", + "dev": true, + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -3426,16 +938,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.20.0.tgz", - "integrity": "sha512-36xLjP/+bXusLMrT9fMMYy1KJAGgHhlER2TqpUVDYUQg4w0q/NW/sg4UGAgVwAqb8V4zYg43KMUpM8vV2lve6w==", + "version": "5.30.6", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "5.20.0", - "@typescript-eslint/visitor-keys": "5.20.0", - "debug": "^4.3.2", - "globby": "^11.0.4", + "@typescript-eslint/types": "5.30.6", + "@typescript-eslint/visitor-keys": "5.30.6", + "debug": "^4.3.4", + "globby": "^11.1.0", "is-glob": "^4.0.3", - "semver": "^7.3.5", + "semver": "^7.3.7", "tsutils": "^3.21.0" }, "engines": { @@ -3453,8 +965,8 @@ }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -3466,14 +978,14 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.20.0.tgz", - "integrity": "sha512-lHONGJL1LIO12Ujyx8L8xKbwWSkoUKFSO+0wDAqGXiudWB2EO7WEUT+YZLtVbmOmSllAjLb9tpoIPwpRe5Tn6w==", + "version": "5.30.6", + "dev": true, + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.20.0", - "@typescript-eslint/types": "5.20.0", - "@typescript-eslint/typescript-estree": "5.20.0", + "@typescript-eslint/scope-manager": "5.30.6", + "@typescript-eslint/types": "5.30.6", + "@typescript-eslint/typescript-estree": "5.30.6", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" }, @@ -3490,8 +1002,8 @@ }, "node_modules/@typescript-eslint/utils/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, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -3502,19 +1014,19 @@ }, "node_modules/@typescript-eslint/utils/node_modules/estraverse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.20.0.tgz", - "integrity": "sha512-1flRpNF+0CAQkMNlTJ6L/Z5jiODG/e5+7mk6XwtPOUS3UrTz3UOiAg9jG2VtKsWI6rZQfy4C6a232QNRZTRGlg==", + "version": "5.30.6", + "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.20.0", - "eslint-visitor-keys": "^3.0.0" + "@typescript-eslint/types": "5.30.6", + "eslint-visitor-keys": "^3.3.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3524,161 +1036,33 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "node_modules/@vitejs/plugin-react": { + "version": "1.3.2", + "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + "@babel/core": "^7.17.10", + "@babel/plugin-transform-react-jsx": "^7.17.3", + "@babel/plugin-transform-react-jsx-development": "^7.16.7", + "@babel/plugin-transform-react-jsx-self": "^7.16.7", + "@babel/plugin-transform-react-jsx-source": "^7.16.7", + "@rollup/pluginutils": "^4.2.1", + "react-refresh": "^0.13.0", + "resolve": "^1.22.0" + }, + "engines": { + "node": ">=12.0.0" } }, - "node_modules/@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/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-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-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==", - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@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-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==", - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@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/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==", - "dependencies": { - "@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" - } - }, - "node_modules/@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==", - "dependencies": { - "@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" - } - }, - "node_modules/@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==", - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" - } - }, - "node_modules/@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==", - "dependencies": { - "@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" - } - }, - "node_modules/@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==", - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "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==" - }, - "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==" - }, "node_modules/@zeit/schemas": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.6.0.tgz", - "integrity": "sha512-uUrgZ8AxS+Lio0fZKAipJjAh415JyrOZowliZAzmnJSsf7piVL5w+G0+gFJ0KSu3QRhvui/7zuvpLz03YjXAhg==" - }, - "node_modules/abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==" + "version": "2.21.0", + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" @@ -3687,30 +1071,21 @@ "node": ">= 0.6" } }, - "node_modules/acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "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==", + "node_modules/accepts/node_modules/mime-types": { + "version": "2.1.35", + "dev": true, + "license": "MIT", "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" } }, - "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==", + "node_modules/acorn": { + "version": "8.7.1", + "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -3718,86 +1093,27 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "peerDependencies": { - "acorn": "^8" - } - }, "node_modules/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, + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/acorn-node": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", - "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", - "dependencies": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - } - }, - "node_modules/acorn-node/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" - } - }, "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==", + "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, "engines": { "node": ">=0.4.0" } }, - "node_modules/address": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz", - "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==", - "engines": { - "node": ">= 0.12.0" - } - }, - "node_modules/adjust-sourcemap-loader": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", - "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", - "dependencies": { - "loader-utils": "^2.0.0", - "regex-parser": "^2.2.11" - }, - "engines": { - "node": ">=8.9" - } - }, - "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==", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, "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, + "license": "MIT", "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" @@ -3808,8 +1124,8 @@ }, "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, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -3821,62 +1137,18 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "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==", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", - "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" - } - }, - "node_modules/ajv-formats/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==" - }, - "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==", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, "node_modules/ansi-align": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.1.0" } }, "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, + "license": "MIT", "dependencies": { "type-fest": "^0.21.3" }, @@ -3887,99 +1159,43 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", - "engines": [ - "node >= 0.8.0" - ], - "bin": { - "ansi-html": "bin/ansi-html" + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "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==", + "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "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==", + "version": "4.3.0", + "dev": true, + "license": "MIT", "dependencies": { - "color-convert": "^1.9.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=4" - } - }, - "node_modules/antd": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/antd/-/antd-4.21.0.tgz", - "integrity": "sha512-p8R5scejlWjAIF/NoJ5JF5OMjLbAlCA7u85cNwbtRQOP+14KQDXZyHMT4C5oc9nhz7xxD/Bry6HhPkUmsRuP7Q==", - "dependencies": { - "@ant-design/colors": "^6.0.0", - "@ant-design/icons": "^4.7.0", - "@ant-design/react-slick": "~0.28.1", - "@babel/runtime": "^7.12.5", - "@ctrl/tinycolor": "^3.4.0", - "classnames": "^2.2.6", - "copy-to-clipboard": "^3.2.0", - "lodash": "^4.17.21", - "memoize-one": "^6.0.0", - "moment": "^2.29.2", - "rc-cascader": "~3.6.0", - "rc-checkbox": "~2.3.0", - "rc-collapse": "~3.3.0", - "rc-dialog": "~8.8.2", - "rc-drawer": "~4.4.2", - "rc-dropdown": "~4.0.0", - "rc-field-form": "~1.26.1", - "rc-image": "~5.6.0", - "rc-input": "~0.0.1-alpha.5", - "rc-input-number": "~7.3.0", - "rc-mentions": "~1.8.0", - "rc-menu": "~9.6.0", - "rc-motion": "^2.5.1", - "rc-notification": "~4.6.0", - "rc-pagination": "~3.1.16", - "rc-picker": "~2.6.8", - "rc-progress": "~3.3.2", - "rc-rate": "~2.9.0", - "rc-resize-observer": "^1.2.0", - "rc-segmented": "~2.1.0", - "rc-select": "~14.1.1", - "rc-slider": "~10.0.0", - "rc-steps": "~4.1.0", - "rc-switch": "~3.2.0", - "rc-table": "~7.24.0", - "rc-tabs": "~11.16.0", - "rc-textarea": "~0.3.0", - "rc-tooltip": "~5.1.1", - "rc-tree": "~5.6.4", - "rc-tree-select": "~5.4.0", - "rc-trigger": "^5.2.10", - "rc-upload": "~4.3.0", - "rc-util": "^5.20.0", - "scroll-into-view-if-needed": "^2.2.25" + "node": ">=8" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/ant-design" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/anymatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -3990,8 +1206,7 @@ }, "node_modules/arch": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", - "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "dev": true, "funding": [ { "type": "github", @@ -4005,42 +1220,45 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/arg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arg/-/arg-2.0.0.tgz", - "integrity": "sha512-XxNTUzKnz1ctK3ZIcI2XUPlD96wbHP2nGqkPKpvk/HNRlPveYrXIVSTk9m3LcqOgDPg3B1nMvdV/K8wZd7PG4w==" + "version": "5.0.2", + "dev": true, + "license": "MIT" }, "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } + "version": "2.0.1", + "dev": true, + "license": "Python-2.0" }, "node_modules/aria-query": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz", - "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==", + "version": "4.2.2", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + }, "engines": { "node": ">=6.0" } }, "node_modules/array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true }, "node_modules/array-includes": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", - "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "version": "3.1.5", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5", "get-intrinsic": "^1.1.1", "is-string": "^1.0.7" }, @@ -4051,40 +1269,18 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array-tree-filter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-tree-filter/-/array-tree-filter-2.1.0.tgz", - "integrity": "sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==" - }, "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==", + "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/array.prototype.flat": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", - "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/array.prototype.flatmap": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", - "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -4098,429 +1294,74 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" - }, "node_modules/ast-types-flow": { "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=" + "dev": true, + "license": "ISC" }, - "node_modules/async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/async-validator": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.1.1.tgz", - "integrity": "sha512-p4DO/JXwjs8klJyJL8Q2oM4ks5fUTze/h5k10oPPKMiLe1fj3G1QMzPHNmN1Py4ycOk7WlO2DcGXv1qiESJCZA==" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "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==", + "node_modules/astral-regex": { + "version": "2.0.0", + "dev": true, + "license": "MIT", "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/autoprefixer": { - "version": "10.4.2", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.2.tgz", - "integrity": "sha512-9fOPpHKuDW1w/0EKfRmVnxTDt8166MAnLI3mgZ1JCnhNtYWxcJ6Ud5CO/AVOZi/AvFa8DY9RTy3h3+tFBlrrdQ==", - "dependencies": { - "browserslist": "^4.19.1", - "caniuse-lite": "^1.0.30001297", - "fraction.js": "^4.1.2", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.1.0" + "node": ">=8" } }, "node_modules/axe-core": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.1.tgz", - "integrity": "sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw==", + "version": "4.4.2", + "dev": true, + "license": "MPL-2.0", "engines": { - "node": ">=4" - } - }, - "node_modules/axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "dependencies": { - "follow-redirects": "^1.14.0" + "node": ">=12" } }, "node_modules/axobject-query": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", - "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==" - }, - "node_modules/babel-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", - "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", - "dependencies": { - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-loader": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.3.tgz", - "integrity": "sha512-n4Zeta8NC3QAsuyiizu0GkmRcQ6clkV9WFUnUf1iXP//IeSKbWjofW3UHyZVwlOB4y039YQKefawyTn64Zwbuw==", - "dependencies": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^1.4.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, - "engines": { - "node": ">= 8.9" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "webpack": ">=2" - } - }, - "node_modules/babel-loader/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/babel-loader/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/babel-loader/node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dependencies": { - "object.assign": "^4.1.0" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", - "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/babel-plugin-macros": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", - "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", - "dependencies": { - "@babel/runtime": "^7.12.5", - "cosmiconfig": "^7.0.0", - "resolve": "^1.19.0" - }, - "engines": { - "node": ">=10", - "npm": ">=6" - } - }, - "node_modules/babel-plugin-named-asset-import": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz", - "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==", - "peerDependencies": { - "@babel/core": "^7.1.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", - "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", - "dependencies": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.1", - "semver": "^6.1.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", - "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.1", - "core-js-compat": "^3.21.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-styled-components": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.0.7.tgz", - "integrity": "sha512-i7YhvPgVqRKfoQ66toiZ06jPNA3p6ierpfUuEWxNF+fV27Uv5gxBkf8KZLHUCc1nFA9j6+80pYoIpqCeyW3/bA==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-module-imports": "^7.16.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "lodash": "^4.17.11", - "picomatch": "^2.3.0" - }, - "peerDependencies": { - "styled-components": ">= 2" - } - }, - "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": "sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw==" - }, - "node_modules/babel-plugin-transform-react-remove-prop-types": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", - "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", - "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", - "dependencies": { - "babel-plugin-jest-hoist": "^27.5.1", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-react-app": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz", - "integrity": "sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg==", - "dependencies": { - "@babel/core": "^7.16.0", - "@babel/plugin-proposal-class-properties": "^7.16.0", - "@babel/plugin-proposal-decorators": "^7.16.4", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", - "@babel/plugin-proposal-numeric-separator": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.0", - "@babel/plugin-proposal-private-methods": "^7.16.0", - "@babel/plugin-transform-flow-strip-types": "^7.16.0", - "@babel/plugin-transform-react-display-name": "^7.16.0", - "@babel/plugin-transform-runtime": "^7.16.4", - "@babel/preset-env": "^7.16.4", - "@babel/preset-react": "^7.16.0", - "@babel/preset-typescript": "^7.16.0", - "@babel/runtime": "^7.16.3", - "babel-plugin-macros": "^3.1.0", - "babel-plugin-transform-react-remove-prop-types": "^0.4.24" - } + "dev": true, + "license": "Apache-2.0" }, "node_modules/balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "node_modules/batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" - }, - "node_modules/bfj": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.0.2.tgz", - "integrity": "sha512-+e/UqUzwmzJamNF50tBV6tZPTORow7gQ96iFow+8b562OdMpEK0BcJEq2OSPEDmAbSMBQ7PKZ87ubFkgxpYWgw==", - "dependencies": { - "bluebird": "^3.5.5", - "check-types": "^11.1.1", - "hoopy": "^0.1.4", - "tryer": "^1.0.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "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==", - "engines": { - "node": "*" - } + "version": "1.0.2", + "dev": true, + "license": "MIT" }, "node_modules/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, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, "node_modules/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", + "dev": true, "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.7", - "raw-body": "2.4.3", - "type-is": "~1.6.18" + "on-finished": "2.4.1", + "qs": "6.10.3", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" }, "engines": { - "node": ">= 0.8" + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, "node_modules/body-parser/node_modules/bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, "engines": { "node": ">= 0.8" } @@ -4529,75 +1370,132 @@ "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" } }, - "node_modules/body-parser/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==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "dependencies": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" + "node_modules/body-parser/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/boxen": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "version": "7.0.0", + "dev": true, + "license": "MIT", "dependencies": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.2", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" + "ansi-align": "^3.0.1", + "camelcase": "^7.0.0", + "chalk": "^5.0.1", + "cli-boxes": "^3.0.0", + "string-width": "^5.1.2", + "type-fest": "^2.13.0", + "widest-line": "^4.0.1", + "wrap-ansi": "^8.0.1" }, "engines": { - "node": ">=10" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/boxen/node_modules/ansi-regex": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/boxen/node_modules/ansi-styles": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/boxen/node_modules/chalk": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/boxen/node_modules/string-width": { + "version": "5.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/strip-ansi": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/boxen/node_modules/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==", + "version": "2.16.0", + "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=10" + "node": ">=12.20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/boxen/node_modules/wrap-ansi": { + "version": "8.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "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, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -4605,8 +1503,8 @@ }, "node_modules/braces": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "license": "MIT", "dependencies": { "fill-range": "^7.0.1" }, @@ -4614,74 +1512,45 @@ "node": ">=8" } }, - "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==" - }, "node_modules/browserslist": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", - "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", + "version": "4.21.1", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001286", - "electron-to-chromium": "^1.4.17", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" + "caniuse-lite": "^1.0.30001359", + "electron-to-chromium": "^1.4.172", + "node-releases": "^2.0.5", + "update-browserslist-db": "^1.0.4" }, "bin": { "browserslist": "cli.js" }, "engines": { "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "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==" - }, - "node_modules/buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" - }, - "node_modules/builtin-modules": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", - "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/bytes": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/call-bind": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "license": "MIT", "dependencies": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -4692,77 +1561,42 @@ }, "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, + "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "version": "7.0.0", + "dev": true, + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/camelize": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz", - "integrity": "sha512-W2lPwkBkMZwFlPCXhIlYgxu+7gC/NUlCtdK652DAJ1JdgV0sTrvuPFshNPrFa1TY2JOkLhgdeEBplB4ezEa+xg==" - }, - "node_modules/caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, "node_modules/caniuse-lite": { - "version": "1.0.30001299", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001299.tgz", - "integrity": "sha512-iujN4+x7QzqA2NCSrS5VUy+4gLmRd4xv6vbBBsmfVqTx8bLAD8097euLqQgKxSVLvxjSDcvF1T/i9ocgnUFexw==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/case-sensitive-paths-webpack-plugin": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", - "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==", - "engines": { - "node": ">=4" - } + "version": "1.0.30001365", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ], + "license": "CC-BY-4.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==", + "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -4774,86 +1608,30 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/chalk/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==", + "node_modules/chalk-template": { + "version": "0.4.0", + "dev": true, + "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "chalk": "^4.1.2" }, "engines": { - "node": ">=8" + "node": ">=12" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/chalk/chalk-template?sponsor=1" } }, - "node_modules/chalk/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==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/chalk/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==" - }, - "node_modules/chalk/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" - } - }, - "node_modules/chalk/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" - } - }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "engines": { - "node": ">=10" - } - }, - "node_modules/charcodes": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/charcodes/-/charcodes-0.2.0.tgz", - "integrity": "sha512-Y4kiDb+AM4Ecy58YkuZrrSRJBDQdQ2L+NyS1vHHFtNtUjgutcZfx3yp1dAONI/oPaPmyGfCLx5CxL+zauIMyKQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/check-types": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.1.2.tgz", - "integrity": "sha512-tzWzvgePgLORb9/3a0YenggReLKAIb2owL03H2Xdoe5pKcUyWRSEQ8xfCar8t2SIAuEDwtmx2da1YB52YuHQMQ==" - }, "node_modules/chokidar": { "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, "funding": [ { "type": "individual", "url": "https://paulmillr.com/funding/" } ], + "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -4870,958 +1648,112 @@ "fsevents": "~2.3.2" } }, - "node_modules/chokidar/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==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/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==", - "engines": { - "node": ">=6.0" - } - }, - "node_modules/ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==" - }, - "node_modules/cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==" - }, - "node_modules/classnames": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz", - "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" - }, - "node_modules/clean-css": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.4.tgz", - "integrity": "sha512-nKseG8wCzEuji/4yrgM/5cthL9oTDc5UOQyFMvW/Q53oP6gLH690o1NbuTh6Y18nujr7BxlsFuS7gXLnLzKJGg==", - "dependencies": { - "source-map": "~0.6.0" - }, - "engines": { - "node": ">= 10.0" - } - }, "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, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "version": "3.0.0", + "dev": true, + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/clipboardy": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-2.3.0.tgz", - "integrity": "sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==", - "dependencies": { - "arch": "^2.1.1", - "execa": "^1.0.0", - "is-wsl": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "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==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/coa": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", - "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", - "dependencies": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/coa/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/collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==" - }, - "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/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "node_modules/colord": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", - "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==" - }, - "node_modules/colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==" - }, - "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==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "engines": { - "node": ">= 12" - } - }, - "node_modules/common-path-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", - "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==" - }, - "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==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dependencies": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compute-scroll-into-view": { - "version": "1.0.17", - "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.17.tgz", - "integrity": "sha512-j4dx+Fb0URmzbwwMUrhqWM2BEWHdFGx+qZ9qqASHRPqvTYdqvWnHg0H1hIbcyLnvgnoNAVMlwkepyqM3DaIFUg==" - }, - "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=" - }, - "node_modules/confusing-browser-globals": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==" - }, - "node_modules/connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", - "engines": { - "node": ">=0.8" - } - }, - "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": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-disposition/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==", - "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/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==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "node_modules/copy-to-clipboard": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz", - "integrity": "sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==", - "dependencies": { - "toggle-selection": "^1.0.6" - } - }, - "node_modules/core-js": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.21.1.tgz", - "integrity": "sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig==", - "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, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz", - "integrity": "sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==", - "dependencies": { - "browserslist": "^4.19.1", - "semver": "7.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/core-js-pure": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.21.1.tgz", - "integrity": "sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==", - "deprecated": "core-js-pure@<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-pure.", - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "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==" - }, - "node_modules/cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", - "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" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "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/cross-spawn/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/css": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", - "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", - "dependencies": { - "inherits": "^2.0.4", - "source-map": "^0.6.1", - "source-map-resolve": "^0.6.0" - } - }, - "node_modules/css-blank-pseudo": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", - "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "bin": { - "css-blank-pseudo": "dist/cli.cjs" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-color-keywords": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", - "integrity": "sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU=", - "engines": { - "node": ">=4" - } - }, - "node_modules/css-declaration-sorter": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.1.4.tgz", - "integrity": "sha512-lpfkqS0fctcmZotJGhnxkIyJWvBXgpyi2wsFd4J8VB7wzyrT6Ch/3Q+FMNJpjK4gu1+GN5khOnpU2ZVKrLbhCw==", - "dependencies": { - "timsort": "^0.3.0" - }, - "engines": { - "node": ">= 10" - }, - "peerDependencies": { - "postcss": "^8.0.9" - } - }, - "node_modules/css-has-pseudo": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", - "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "bin": { - "css-has-pseudo": "dist/cli.cjs" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-loader": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.6.0.tgz", - "integrity": "sha512-FK7H2lisOixPT406s5gZM1S3l8GrfhEBT3ZiL2UX1Ng1XWs0y2GPllz/OTyvbaHe12VgQrIXIzuEGVlbUhodqg==", - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.5", - "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", - "postcss-value-parser": "^4.2.0", - "semver": "^7.3.5" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/css-loader/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/css-minimizer-webpack-plugin": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", - "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", - "dependencies": { - "cssnano": "^5.0.6", - "jest-worker": "^27.0.2", - "postcss": "^8.3.5", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@parcel/css": { - "optional": true - }, - "clean-css": { - "optional": true - }, - "csso": { - "optional": true - }, - "esbuild": { - "optional": true - } - } - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", - "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" - } - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/css-minimizer-webpack-plugin/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==" - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/css-prefers-color-scheme": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", - "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", - "bin": { - "css-prefers-color-scheme": "dist/cli.cjs" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-select": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", - "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^5.1.0", - "domhandler": "^4.3.0", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-select-base-adapter": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", - "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" - }, - "node_modules/css-to-react-native": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.0.0.tgz", - "integrity": "sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ==", - "dependencies": { - "camelize": "^1.0.0", - "css-color-keywords": "^1.0.0", - "postcss-value-parser": "^4.0.2" - } - }, - "node_modules/css-tree": { - "version": "1.0.0-alpha.37", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", - "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", - "dependencies": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/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==", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css.escape": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", - "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==" - }, - "node_modules/cssdb": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-6.3.1.tgz", - "integrity": "sha512-Ho3gIkGY4O8S3J54fHu7RP5GHWz85McDhimaXEwf7qV0MSPhLM0jdd61zqs1kkadIVDAvfqoku0kArbWaMYolw==" - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano": { - "version": "5.0.17", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.17.tgz", - "integrity": "sha512-fmjLP7k8kL18xSspeXTzRhaFtRI7DL9b8IcXR80JgtnWBpvAzHT7sCR/6qdn0tnxIaINUN6OEQu83wF57Gs3Xw==", - "dependencies": { - "cssnano-preset-default": "^5.1.12", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/cssnano" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano-preset-default": { - "version": "5.1.12", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.12.tgz", - "integrity": "sha512-rO/JZYyjW1QNkWBxMGV28DW7d98UDLaF759frhli58QFehZ+D/LSmwQ2z/ylBAe2hUlsIWTq6NYGfQPq65EF9w==", - "dependencies": { - "css-declaration-sorter": "^6.0.3", - "cssnano-utils": "^3.0.2", - "postcss-calc": "^8.2.0", - "postcss-colormin": "^5.2.5", - "postcss-convert-values": "^5.0.4", - "postcss-discard-comments": "^5.0.3", - "postcss-discard-duplicates": "^5.0.3", - "postcss-discard-empty": "^5.0.3", - "postcss-discard-overridden": "^5.0.4", - "postcss-merge-longhand": "^5.0.6", - "postcss-merge-rules": "^5.0.6", - "postcss-minify-font-values": "^5.0.4", - "postcss-minify-gradients": "^5.0.6", - "postcss-minify-params": "^5.0.5", - "postcss-minify-selectors": "^5.1.3", - "postcss-normalize-charset": "^5.0.3", - "postcss-normalize-display-values": "^5.0.3", - "postcss-normalize-positions": "^5.0.4", - "postcss-normalize-repeat-style": "^5.0.4", - "postcss-normalize-string": "^5.0.4", - "postcss-normalize-timing-functions": "^5.0.3", - "postcss-normalize-unicode": "^5.0.4", - "postcss-normalize-url": "^5.0.5", - "postcss-normalize-whitespace": "^5.0.4", - "postcss-ordered-values": "^5.0.5", - "postcss-reduce-initial": "^5.0.3", - "postcss-reduce-transforms": "^5.0.4", - "postcss-svgo": "^5.0.4", - "postcss-unique-selectors": "^5.0.4" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano-utils": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.0.2.tgz", - "integrity": "sha512-KhprijuQv2sP4kT92sSQwhlK3SJTbDIsxcfIEySB0O+3m9esFOai7dP9bMx5enHAh2MwarVIcnwiWoOm01RIbQ==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "dependencies": { - "css-tree": "^1.1.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/csso/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==", - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/csso/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==" - }, - "node_modules/cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" - }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" - } - }, - "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": { + "node_modules/cli-cursor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", - "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" - }, - "node_modules/damerau-levenshtein": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" - }, - "node_modules/data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "license": "MIT", "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" + "restore-cursor": "^3.1.0" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/date-fns": { - "version": "2.28.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", - "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==", + "node_modules/cli-truncate": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^5.0.0" + }, "engines": { - "node": ">=0.11" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/dayjs": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.3.tgz", - "integrity": "sha512-xxwlswWOlGhzgQ4TKzASQkUhqERI3egRNqgV4ScR8wlANA/A9tZ7miXa44vTTKEq5l7vWoL5G57bG3zA+Kow0A==" - }, - "node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, + "node_modules/cli-truncate/node_modules/ansi-regex": { + "version": "6.0.1", + "dev": true, + "license": "MIT", "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/debug/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==" - }, - "node_modules/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/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=" - }, - "node_modules/deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "dependencies": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "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==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" - }, - "node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "node_modules/cli-truncate/node_modules/string-width": { + "version": "5.1.2", + "dev": true, + "license": "MIT", "dependencies": { - "execa": "^5.0.0" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">= 10" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/default-gateway/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "node_modules/cli-truncate/node_modules/strip-ansi": { + "version": "7.0.1", + "dev": true, + "license": "MIT", "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "ansi-regex": "^6.0.1" }, "engines": { - "node": ">= 8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/default-gateway/node_modules/execa": { + "node_modules/clipboardy": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "arch": "^2.2.0", + "execa": "^5.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clipboardy/node_modules/execa": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -5840,21 +1772,18 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/default-gateway/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==", + "node_modules/clipboardy/node_modules/human-signals": { + "version": "2.1.0", + "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=10.17.0" } }, - "node_modules/default-gateway/node_modules/is-stream": { + "node_modules/clipboardy/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, + "license": "MIT", "engines": { "node": ">=8" }, @@ -5862,10 +1791,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/default-gateway/node_modules/npm-run-path": { + "node_modules/clipboardy/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, + "license": "MIT", "dependencies": { "path-key": "^3.0.0" }, @@ -5873,183 +1802,262 @@ "node": ">=8" } }, - "node_modules/default-gateway/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/default-gateway/node_modules/shebang-command": { + "node_modules/clipboardy/node_modules/strip-final-newline": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, + "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/default-gateway/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==", + "node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": ">=8" + "node": ">=7.0.0" } }, - "node_modules/default-gateway/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/colorette": { + "version": "2.0.19", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "9.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/compressible": { + "version": "2.0.18", + "dev": true, + "license": "MIT", "dependencies": { - "isexe": "^2.0.0" + "mime-db": ">= 1.43.0 < 2" }, - "bin": { - "node-which": "bin/node-which" + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/content-disposition": { + "version": "0.5.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/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, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.8.0", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "node_modules/core-js-pure": { + "version": "3.23.4", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/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 + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, "engines": { "node": ">= 8" } }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "node_modules/csstype": { + "version": "3.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/dayjs": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.5.tgz", + "integrity": "sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==" + }, + "node_modules/debug": { + "version": "4.3.4", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, "engines": { - "node": ">=8" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, + "node_modules/deep-extend": { + "version": "0.6.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "dev": true, + "license": "MIT" + }, "node_modules/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==", + "version": "1.1.4", + "dev": true, + "license": "MIT", "dependencies": { - "object-keys": "^1.0.12" + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" }, "engines": { "node": ">= 0.4" - } - }, - "node_modules/defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" - }, - "node_modules/del": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", - "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", - "dependencies": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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=", - "engines": { - "node": ">=0.4.0" + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, "engines": { - "node": ">=8" + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" - }, - "node_modules/detect-port-alt": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", - "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", - "dependencies": { - "address": "^1.0.1", - "debug": "^2.6.0" - }, - "bin": { - "detect": "bin/detect-port", - "detect-port": "bin/detect-port" - }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, "engines": { - "node": ">= 4.2.1" - } - }, - "node_modules/detect-port-alt/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/detective": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", - "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", - "dependencies": { - "acorn-node": "^1.6.1", - "defined": "^1.0.0", - "minimist": "^1.1.1" - }, - "bin": { - "detective": "bin/detective.js" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" - }, - "node_modules/diff-sequences": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", - "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=0.3.1" } }, "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==", + "dev": true, + "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -6057,270 +2065,60 @@ "node": ">=8" } }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" - }, - "node_modules/dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" - }, - "node_modules/dns-packet": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", - "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", - "dependencies": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "dependencies": { - "buffer-indexof": "^1.0.0" - } - }, "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "version": "2.1.0", + "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dom-accessibility-api": { - "version": "0.5.14", - "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.14.tgz", - "integrity": "sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==" - }, - "node_modules/dom-align": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/dom-align/-/dom-align-1.12.3.tgz", - "integrity": "sha512-Gj9hZN3a07cbR6zviMUBOMPdWxYhbMI+x+WS0NAIu2zFZmbK8ys9R79g+iG9qLnlCwpFoaB+fKy8Pdv470GsPA==" - }, - "node_modules/dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "dependencies": { - "utila": "~0.4" - } - }, - "node_modules/dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", - "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/domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "dependencies": { - "webidl-conversions": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/domexception/node_modules/webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/domhandler": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", - "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", - "engines": { - "node": ">=10" - } - }, - "node_modules/dotenv-expand": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", - "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" - }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "node_modules/ejs": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", - "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", - "dependencies": { - "jake": "^10.8.5" - }, - "bin": { - "ejs": "bin/cli.js" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/electron-to-chromium": { - "version": "1.4.44", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.44.tgz", - "integrity": "sha512-tHGWiUUmY7GABK8+DNcr474cnZDTzD8x1736SlDosVH8+/vRJeqfaIBAEHFtMjddz/0T4rKKYsxEc8BwQRdBpw==" + "node_modules/eastasianwidth": { + "version": "0.2.0", + "dev": true, + "license": "MIT" }, - "node_modules/emittery": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.186", + "dev": true, + "license": "ISC" }, "node_modules/emoji-regex": { "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "engines": { - "node": ">= 4" - } + "dev": true, + "license": "MIT" }, "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, "engines": { "node": ">= 0.8" } }, - "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==", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.0.tgz", - "integrity": "sha512-weDYmzbBygL7HzGGS26M3hGQx68vehdEg6VUmqSOaFzXExFqlnKuSvsEJCVGQHScS8CQMbrAqftT+AzzHNt/YA==", - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "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" - } - }, - "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": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/error-stack-parser": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.7.tgz", - "integrity": "sha512-chLOW0ZGRf4s8raLrDxa5sdkvPec5YdvwbFnqJme4rk0rFajP8mPtrDL1+I+CwrQDCjswDA5sREX7jYQDQs9vA==", - "dependencies": { - "stackframe": "^1.1.1" - } - }, "node_modules/es-abstract": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz", - "integrity": "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==", + "version": "1.20.1", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", "get-intrinsic": "^1.1.1", "get-symbol-description": "^1.0.0", "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", "is-callable": "^1.2.4", @@ -6332,9 +2130,10 @@ "object-inspect": "^1.12.0", "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" + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -6343,23 +2142,18 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==" - }, "node_modules/es-shim-unscopables": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "license": "MIT", "dependencies": { "has": "^1.0.3" } }, "node_modules/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==", + "dev": true, + "license": "MIT", "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -6372,10 +2166,59 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/esbuild": { + "version": "0.14.49", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "esbuild-android-64": "0.14.49", + "esbuild-android-arm64": "0.14.49", + "esbuild-darwin-64": "0.14.49", + "esbuild-darwin-arm64": "0.14.49", + "esbuild-freebsd-64": "0.14.49", + "esbuild-freebsd-arm64": "0.14.49", + "esbuild-linux-32": "0.14.49", + "esbuild-linux-64": "0.14.49", + "esbuild-linux-arm": "0.14.49", + "esbuild-linux-arm64": "0.14.49", + "esbuild-linux-mips64le": "0.14.49", + "esbuild-linux-ppc64le": "0.14.49", + "esbuild-linux-riscv64": "0.14.49", + "esbuild-linux-s390x": "0.14.49", + "esbuild-netbsd-64": "0.14.49", + "esbuild-openbsd-64": "0.14.49", + "esbuild-sunos-64": "0.14.49", + "esbuild-windows-32": "0.14.49", + "esbuild-windows-64": "0.14.49", + "esbuild-windows-arm64": "0.14.49" + } + }, + "node_modules/esbuild-darwin-64": { + "version": "0.14.49", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/escalade": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -6383,90 +2226,26 @@ "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true }, "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": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "version": "4.0.0", + "dev": true, + "license": "MIT", "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" + "node": ">=10" }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/escodegen/node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dependencies": { - "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" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eslint": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.9.0.tgz", - "integrity": "sha512-PB09IGwv4F4b0/atrbcMFboF/giawbBLVC7fyDamk5Wtey4Jh2K+rYaBhCAbUyEI4QzB1ly09Uglc9iCtFaG2Q==", + "version": "8.19.0", + "dev": true, + "license": "MIT", "dependencies": { - "@eslint/eslintrc": "^1.1.0", + "@eslint/eslintrc": "^1.3.0", "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", @@ -6477,14 +2256,14 @@ "eslint-scope": "^7.1.1", "eslint-utils": "^3.0.0", "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.1", + "espree": "^9.3.2", "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": "^6.0.1", - "globals": "^13.6.0", + "globals": "^13.15.0", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", @@ -6493,7 +2272,7 @@ "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", "regexpp": "^3.2.0", @@ -6512,254 +2291,35 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint-config-react-app": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", - "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==", - "dependencies": { - "@babel/core": "^7.16.0", - "@babel/eslint-parser": "^7.16.3", - "@rushstack/eslint-patch": "^1.1.0", - "@typescript-eslint/eslint-plugin": "^5.5.0", - "@typescript-eslint/parser": "^5.5.0", - "babel-preset-react-app": "^10.0.1", - "confusing-browser-globals": "^1.0.11", - "eslint-plugin-flowtype": "^8.0.3", - "eslint-plugin-import": "^2.25.3", - "eslint-plugin-jest": "^25.3.0", - "eslint-plugin-jsx-a11y": "^6.5.1", - "eslint-plugin-react": "^7.27.1", - "eslint-plugin-react-hooks": "^4.3.0", - "eslint-plugin-testing-library": "^5.0.1" - }, - "engines": { - "node": ">=14.0.0" + "node_modules/eslint-config-prettier": { + "version": "8.5.0", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" }, "peerDependencies": { - "eslint": "^8.0.0" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", - "dependencies": { - "debug": "^3.2.7", - "resolve": "^1.20.0" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-import-resolver-node/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/eslint-module-utils": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", - "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", - "dependencies": { - "debug": "^3.2.7", - "find-up": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-module-utils/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/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/eslint-module-utils/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==", - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-plugin-flowtype": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", - "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", - "dependencies": { - "lodash": "^4.17.21", - "string-natural-compare": "^3.0.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@babel/plugin-syntax-flow": "^7.14.5", - "@babel/plugin-transform-react-jsx": "^7.14.9", - "eslint": "^8.1.0" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", - "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", - "dependencies": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.3", - "has": "^1.0.3", - "is-core-module": "^2.8.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.values": "^1.1.5", - "resolve": "^1.22.0", - "tsconfig-paths": "^3.14.1" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/eslint-plugin-jest": { - "version": "25.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz", - "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==", - "dependencies": { - "@typescript-eslint/experimental-utils": "^5.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^4.0.0 || ^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "@typescript-eslint/eslint-plugin": { - "optional": true - }, - "jest": { - "optional": true - } + "eslint": ">=7.0.0" } }, "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz", - "integrity": "sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==", + "version": "6.6.0", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.16.3", + "@babel/runtime": "^7.18.3", "aria-query": "^4.2.2", - "array-includes": "^3.1.4", + "array-includes": "^3.1.5", "ast-types-flow": "^0.0.7", - "axe-core": "^4.3.5", + "axe-core": "^4.4.2", "axobject-query": "^2.2.0", - "damerau-levenshtein": "^1.0.7", + "damerau-levenshtein": "^1.0.8", "emoji-regex": "^9.2.2", "has": "^1.0.3", - "jsx-ast-utils": "^3.2.1", + "jsx-ast-utils": "^3.3.1", "language-tags": "^1.0.5", - "minimatch": "^3.0.4" + "minimatch": "^3.1.2", + "semver": "^6.3.0" }, "engines": { "node": ">=4.0" @@ -6768,37 +2328,25 @@ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" } }, - "node_modules/eslint-plugin-jsx-a11y/node_modules/aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", - "dependencies": { - "@babel/runtime": "^7.10.2", - "@babel/runtime-corejs3": "^7.10.2" - }, - "engines": { - "node": ">=6.0" - } - }, "node_modules/eslint-plugin-react": { - "version": "7.29.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.29.4.tgz", - "integrity": "sha512-CVCXajliVh509PcZYRFyu/BoUEz452+jtQJq2b3Bae4v3xBUWPLCmtmBM+ZinG4MzwmxJgJ2M5rMqhqLVn7MtQ==", + "version": "7.30.1", + "dev": true, + "license": "MIT", "dependencies": { - "array-includes": "^3.1.4", - "array.prototype.flatmap": "^1.2.5", + "array-includes": "^3.1.5", + "array.prototype.flatmap": "^1.3.0", "doctrine": "^2.1.0", "estraverse": "^5.3.0", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", "object.entries": "^1.1.5", "object.fromentries": "^2.0.5", - "object.hasown": "^1.1.0", + "object.hasown": "^1.1.1", "object.values": "^1.1.5", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.3", "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.6" + "string.prototype.matchall": "^4.0.7" }, "engines": { "node": ">=4" @@ -6808,9 +2356,9 @@ } }, "node_modules/eslint-plugin-react-hooks": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.4.0.tgz", - "integrity": "sha512-U3RVIfdzJaeKDQKEJbz5p3NW8/L80PCATJAfuojwbaEL+gBjfGdhUcGde+WGUW46Q5sr/NgxevsIiDtNXrvZaQ==", + "version": "4.6.0", + "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -6818,59 +2366,26 @@ "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" } }, - "node_modules/eslint-plugin-react/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-react/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/eslint-plugin-react/node_modules/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==", + "version": "2.0.0-next.4", + "dev": true, + "license": "MIT", "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-plugin-testing-library": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.3.1.tgz", - "integrity": "sha512-OfF4dlG/q6ck6DL3P8Z0FPdK0dU5K57gsBu7eUcaVbwYKaNzjgejnXiM9CCUevppORkvfek+9D3Uj/9ZZ8Vz8g==", - "dependencies": { - "@typescript-eslint/utils": "^5.13.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0", - "npm": ">=6" - }, - "peerDependencies": { - "eslint": "^7.5.0 || ^8.0.0" - } - }, "node_modules/eslint-scope": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -6881,8 +2396,8 @@ }, "node_modules/eslint-utils": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "license": "MIT", "dependencies": { "eslint-visitor-keys": "^2.0.0" }, @@ -6898,189 +2413,59 @@ }, "node_modules/eslint-utils/node_modules/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==", + "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=10" } }, "node_modules/eslint-visitor-keys": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/eslint-webpack-plugin": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.1.1.tgz", - "integrity": "sha512-xSucskTN9tOkfW7so4EaiFIkulWLXwCB/15H917lR6pTv0Zot6/fetFucmENRb7J5whVSFKIvwnrnsa78SG2yg==", - "dependencies": { - "@types/eslint": "^7.28.2", - "jest-worker": "^27.3.1", - "micromatch": "^4.0.4", - "normalize-path": "^3.0.0", - "schema-utils": "^3.1.1" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0", - "webpack": "^5.0.0" - } - }, - "node_modules/eslint/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/eslint/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/eslint/node_modules/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==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/globals": { - "version": "13.12.1", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz", - "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/eslint/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/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==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/shebang-regex": { + "node_modules/eslint/node_modules/doctrine": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/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==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/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==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/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, + "license": "Apache-2.0", "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" + "esutils": "^2.0.2" }, "engines": { - "node": ">= 8" + "node": ">=6.0.0" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" } }, "node_modules/espree": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", - "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", + "version": "9.3.2", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.7.0", - "acorn-jsx": "^5.3.1", + "acorn": "^8.7.1", + "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.3.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "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==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/esquery": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -7090,8 +2475,8 @@ }, "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, + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -7101,21 +2486,21 @@ }, "node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" + "version": "2.0.2", + "dev": true, + "license": "MIT" }, "node_modules/esutils": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } @@ -7123,95 +2508,93 @@ "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, "engines": { "node": ">= 0.6" } }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "engines": { - "node": ">=0.8.x" - } - }, "node_modules/execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "version": "6.1.0", + "dev": true, + "license": "MIT", "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" + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^3.0.1", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" }, "engines": { - "node": ">=6" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "node_modules/execa/node_modules/mimic-fn": { + "version": "4.0.0", + "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.8.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/expect": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", - "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "node_modules/execa/node_modules/onetime": { + "version": "6.0.0", + "dev": true, + "license": "MIT", "dependencies": { - "@jest/types": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1" + "mimic-fn": "^4.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/express": { - "version": "4.17.3", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz", - "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", + "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", + "dev": true, "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.19.2", + "body-parser": "1.20.0", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.4.2", + "cookie": "0.5.0", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "~1.1.2", + "depd": "2.0.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "~1.1.2", + "finalhandler": "1.2.0", "fresh": "0.5.2", + "http-errors": "2.0.0", "merge-descriptors": "1.0.1", "methods": "~1.1.2", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", "proxy-addr": "~2.0.7", - "qs": "6.9.7", + "qs": "6.10.3", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", + "send": "0.18.0", + "serve-static": "1.15.0", "setprototypeof": "1.2.0", - "statuses": "~1.5.0", + "statuses": "2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" @@ -7220,28 +2603,53 @@ "node": ">= 0.10.0" } }, - "node_modules/express/node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + "node_modules/express/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==", + "dev": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } }, "node_modules/express/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" } }, + "node_modules/express/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/express/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 + }, + "node_modules/express/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, + "engines": { + "node": ">= 0.6" + } }, "node_modules/express/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==", + "dev": true, "funding": [ { "type": "github", @@ -7259,13 +2667,13 @@ }, "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==" + "dev": true, + "license": "MIT" }, "node_modules/fast-glob": { "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -7277,71 +2685,41 @@ "node": ">=8.6.0" } }, - "node_modules/fast-glob/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==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "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, + "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + "dev": true, + "license": "MIT" }, "node_modules/fast-url-parser": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", - "integrity": "sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0=", + "dev": true, + "license": "MIT", "dependencies": { "punycode": "^1.3.2" } }, "node_modules/fast-url-parser/node_modules/punycode": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + "dev": true, + "license": "MIT" }, "node_modules/fastq": { "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, - "node_modules/faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "dependencies": { - "bser": "2.1.1" - } - }, "node_modules/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==", + "dev": true, + "license": "MIT", "dependencies": { "flat-cache": "^3.0.4" }, @@ -7349,64 +2727,10 @@ "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/file-loader": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", - "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/filelist": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", - "dependencies": { - "minimatch": "^5.0.1" - } - }, - "node_modules/filelist/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/filelist/node_modules/minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/filesize": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", - "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/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==", + "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -7415,16 +2739,17 @@ } }, "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", - "statuses": "~1.5.0", + "statuses": "2.0.1", "unpipe": "~1.0.0" }, "engines": { @@ -7435,45 +2760,21 @@ "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" } }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "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-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/finalhandler/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/flat-cache": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "license": "MIT", "dependencies": { "flatted": "^3.1.0", "rimraf": "^3.0.2" @@ -7483,204 +2784,37 @@ } }, "node_modules/flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==" - }, - "node_modules/follow-redirects": { - "version": "1.14.8", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", - "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/fork-ts-checker-webpack-plugin": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.1.tgz", - "integrity": "sha512-x1wumpHOEf4gDROmKTaB6i4/Q6H3LwmjVO7fIX47vBwlZbtPjU33hgoMuD/Q/y6SU8bnuYSoN6ZQOLshGp0T/g==", - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@types/json-schema": "^7.0.5", - "chalk": "^4.1.0", - "chokidar": "^3.4.2", - "cosmiconfig": "^6.0.0", - "deepmerge": "^4.2.2", - "fs-extra": "^9.0.0", - "glob": "^7.1.6", - "memfs": "^3.1.2", - "minimatch": "^3.0.4", - "schema-utils": "2.7.0", - "semver": "^7.3.2", - "tapable": "^1.0.0" - }, - "engines": { - "node": ">=10", - "yarn": ">=1.0.0" - }, - "peerDependencies": { - "eslint": ">= 6", - "typescript": ">= 2.7", - "vue-template-compiler": "*", - "webpack": ">= 4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - }, - "vue-template-compiler": { - "optional": true - } - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/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==", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", - "dependencies": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } + "version": "3.2.6", + "dev": true, + "license": "ISC" }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, "engines": { "node": ">= 0.6" } }, - "node_modules/fraction.js": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.3.tgz", - "integrity": "sha512-pUHWWt6vHzZZiQJcM6S/0PXfS+g6FM4BF5rj9wZyreivhQPdsh5PpE25VtSNxq80wHS5RfY51Ii+8Z0Zl/pmzg==", - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://www.patreon.com/infusion" - } - }, "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, "engines": { "node": ">= 0.6" } }, - "node_modules/fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/fs-monkey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", - "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==" - }, "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, + "license": "ISC" }, "node_modules/fsevents": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "hasInstallScript": true, + "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -7691,71 +2825,75 @@ }, "node_modules/function-bind": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "dev": true, + "license": "MIT" }, - "node_modules/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=" - }, - "node_modules/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==", - "engines": { - "node": ">=6.9.0" - } - }, - "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==", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/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/function.prototype.name": { + "version": "1.1.5", + "dev": true, + "license": "MIT", "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "dev": true, + "license": "MIT" }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "node_modules/functions-have-names": { + "version": "1.2.3", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "dev": true, + "license": "MIT", "engines": { - "node": ">=8.0.0" + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "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" - }, + "version": "6.0.1", + "dev": true, + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/get-symbol-description": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.1" @@ -7768,14 +2906,14 @@ } }, "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "version": "7.2.3", + "dev": true, + "license": "ISC", "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" }, @@ -7787,57 +2925,34 @@ } }, "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "version": "5.1.2", + "dev": true, + "license": "ISC", "dependencies": { - "is-glob": "^4.0.3" + "is-glob": "^4.0.1" }, "engines": { - "node": ">=10.13.0" - } - }, - "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==" - }, - "node_modules/global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dependencies": { - "global-prefix": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" + "node": ">= 6" } }, "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "version": "13.16.0", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/globby": { "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -7853,39 +2968,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" - }, - "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==", - "dependencies": { - "duplexer": "^0.1.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" - }, - "node_modules/harmony-reflect": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.1.tgz", - "integrity": "sha512-WJTeyp0JzGtHcuMsi7rw2VwtkvLa+JyfEKJCFyfcS0+CDkjQ5lHPu7zEhFZP+PDSRrEgXa5Ah0l1MbgbE41XjA==" - }, "node_modules/has": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "license": "MIT", "dependencies": { "function-bind": "^1.1.1" }, @@ -7894,25 +2980,36 @@ } }, "node_modules/has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "version": "1.0.2", + "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "version": "4.0.0", + "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "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, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -7922,8 +3019,8 @@ }, "node_modules/has-tostringtag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" }, @@ -7934,315 +3031,80 @@ "url": "https://github.com/sponsors/ljharb" } }, - "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==", - "bin": { - "he": "bin/he" - } - }, "node_modules/history": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", - "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "version": "5.3.0", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.1.2", - "loose-envify": "^1.2.0", - "resolve-pathname": "^3.0.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0", - "value-equal": "^1.0.1" + "@babel/runtime": "^7.7.6" } }, - "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==", - "dependencies": { - "react-is": "^16.7.0" - } - }, - "node_modules/hoopy": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", - "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==", - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "node_modules/hpack.js/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "node_modules/hpack.js/node_modules/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==", - "dependencies": { - "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" - } - }, - "node_modules/hpack.js/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": "~5.1.0" - } - }, - "node_modules/html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dependencies": { - "whatwg-encoding": "^1.0.5" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/html-entities": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.2.tgz", - "integrity": "sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==" - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" - }, - "node_modules/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", - "dependencies": { - "camel-case": "^4.1.2", - "clean-css": "^5.2.2", - "commander": "^8.3.0", - "he": "^1.2.0", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.10.0" - }, - "bin": { - "html-minifier-terser": "cli.js" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/html-webpack-plugin": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", - "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", - "dependencies": { - "@types/html-minifier-terser": "^6.0.0", - "html-minifier-terser": "^6.0.2", - "lodash": "^4.17.21", - "pretty-error": "^4.0.0", - "tapable": "^2.0.0" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/html-webpack-plugin" - }, - "peerDependencies": { - "webpack": "^5.20.0" - } - }, - "node_modules/htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" - }, "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==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, "dependencies": { - "depd": "~1.1.2", + "depd": "2.0.0", "inherits": "2.0.4", "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", + "statuses": "2.0.1", "toidentifier": "1.0.1" }, "engines": { - "node": ">= 0.6" - } - }, - "node_modules/http-parser-js": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.5.tgz", - "integrity": "sha512-x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA==" - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "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==", - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http-proxy-middleware": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.3.tgz", - "integrity": "sha512-1bloEwnrHMnCoO/Gcwbz7eSVvW50KPES01PecpagI+YLNLci4AcuKJrujW4Mc3sBLpFxMSlsLNHS5Nl/lvrTPA==", - "dependencies": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/express": "^4.17.13" - }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } - } - }, - "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==", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" + "node": ">= 0.8" } }, "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==", + "version": "3.0.1", + "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=10.17.0" + "node": ">=12.20.0" + } + }, + "node_modules/husky": { + "version": "8.0.1", + "dev": true, + "license": "MIT", + "bin": { + "husky": "lib/bin.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" } }, "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==", + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "safer-buffer": ">= 2.1.2 < 3" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/idb": { - "version": "6.1.5", - "resolved": "https://registry.npmjs.org/idb/-/idb-6.1.5.tgz", - "integrity": "sha512-IJtugpKkiVXQn5Y+LteyBCNk1N8xpGV3wWZk9EVtZWH8DYkjBn0bX1XnGP9RkyZF0sAcywa6unHqSWKe7q4LGw==" - }, - "node_modules/identity-obj-proxy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", - "integrity": "sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ=", - "dependencies": { - "harmony-reflect": "^1.4.6" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/ignore": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } }, - "node_modules/immer": { - "version": "9.0.12", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.12.tgz", - "integrity": "sha512-lk7UNmSbAukB5B6dh9fnh5D0bJTOFKxVg2cyJWTYrWRfhLrLMBquONcUs3aFq507hNoIZEDDh8lb8UtOizSMhA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" - } + "node_modules/immutable": { + "version": "4.1.0", + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -8254,52 +3116,26 @@ "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==", - "engines": { - "node": ">=4" - } - }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.19" } }, "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, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -8307,18 +3143,18 @@ }, "node_modules/inherits": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "dev": true, + "license": "ISC" }, "node_modules/ini": { "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + "dev": true, + "license": "ISC" }, "node_modules/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, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.0", "has": "^1.0.3", @@ -8328,43 +3164,19 @@ "node": ">= 0.4" } }, - "node_modules/ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, "node_modules/ipaddr.js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", - "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", + "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, "engines": { - "node": ">= 10" + "node": ">= 0.10" } }, - "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==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, "node_modules/is-bigint": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "license": "MIT", "dependencies": { "has-bigints": "^1.0.1" }, @@ -8374,8 +3186,8 @@ }, "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, + "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" }, @@ -8385,8 +3197,8 @@ }, "node_modules/is-boolean-object": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -8400,8 +3212,8 @@ }, "node_modules/is-callable": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -8410,9 +3222,9 @@ } }, "node_modules/is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "version": "2.9.0", + "dev": true, + "license": "MIT", "dependencies": { "has": "^1.0.3" }, @@ -8422,8 +3234,8 @@ }, "node_modules/is-date-object": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -8436,8 +3248,8 @@ }, "node_modules/is-docker": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "license": "MIT", "bin": { "is-docker": "cli.js" }, @@ -8450,32 +3262,24 @@ }, "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=", + "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "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, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "engines": { - "node": ">=6" - } - }, "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==", + "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -8483,15 +3287,10 @@ "node": ">=0.10.0" } }, - "node_modules/is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=" - }, "node_modules/is-negative-zero": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -8501,16 +3300,16 @@ }, "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==", + "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } }, "node_modules/is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "version": "1.0.7", + "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -8521,50 +3320,21 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "node_modules/is-port-reachable": { + "version": "4.0.0", + "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "engines": { - "node": ">=6" - } - }, - "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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "engines": { - "node": ">=10" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "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==" - }, "node_modules/is-regex": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -8576,26 +3346,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-root": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", - "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", - "engines": { - "node": ">=6" - } - }, "node_modules/is-shared-array-buffer": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -8604,17 +3358,20 @@ } }, "node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "version": "3.0.0", + "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-string": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -8627,8 +3384,8 @@ }, "node_modules/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, + "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" }, @@ -8639,15 +3396,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, "node_modules/is-weakref": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -8657,8 +3409,8 @@ }, "node_modules/is-wsl": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "license": "MIT", "dependencies": { "is-docker": "^2.0.0" }, @@ -8666,1085 +3418,43 @@ "node": ">=8" } }, - "node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, "node_modules/isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "dev": true, + "license": "ISC" }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "node_modules/jambonz-ui": { + "version": "0.0.19", + "resolved": "https://registry.npmjs.org/jambonz-ui/-/jambonz-ui-0.0.19.tgz", + "integrity": "sha512-rdn52N6zwaLqedvEypEO6114oZ6HanK0ezCkAlcLMCT11TvmWuiK4pvc2nYR8NqQ+oVaLBdQ4QpUxM4GSwtvgQ==", "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", - "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/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" - } - }, - "node_modules/istanbul-lib-report/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" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", - "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jake": { - "version": "10.8.5", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", - "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", - "dependencies": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.1", - "minimatch": "^3.0.4" - }, - "bin": { - "jake": "bin/cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jake/node_modules/async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" - }, - "node_modules/jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", - "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", - "dependencies": { - "@jest/core": "^27.5.1", - "import-local": "^3.0.2", - "jest-cli": "^27.5.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">= 14" }, "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-changed-files": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", - "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", - "dependencies": { - "@jest/types": "^27.5.1", - "execa": "^5.0.0", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-changed-files/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/jest-changed-files/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "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/jest-changed-files/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==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-changed-files/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==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-changed-files/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==", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-changed-files/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-changed-files/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==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-changed-files/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-changed-files/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/jest-circus": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", - "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-cli": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", - "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", - "dependencies": { - "@jest/core": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "prompts": "^2.0.1", - "yargs": "^16.2.0" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-config": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", - "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", - "dependencies": { - "@babel/core": "^7.8.0", - "@jest/test-sequencer": "^27.5.1", - "@jest/types": "^27.5.1", - "babel-jest": "^27.5.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.9", - "jest-circus": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-jasmine2": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-config/node_modules/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==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-diff": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", - "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-docblock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", - "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-each": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", - "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", - "dependencies": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-jsdom": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", - "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1", - "jsdom": "^16.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-node": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", - "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", - "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^27.5.1", - "jest-serializer": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-jasmine2": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", - "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-leak-detector": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", - "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", - "dependencies": { - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-matcher-utils": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", - "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-message-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", - "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.5.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-mock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", - "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", - "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", - "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", - "dependencies": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", - "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", - "dependencies": { - "@jest/types": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-snapshot": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runner": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", - "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-leak-detector": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runtime": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", - "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/globals": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runtime/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/jest-runtime/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "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/jest-runtime/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==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-runtime/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==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-runtime/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==", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/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==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/jest-serializer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", - "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", - "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-snapshot": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", - "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", - "dependencies": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "natural-compare": "^1.4.0", - "pretty-format": "^27.5.1", - "semver": "^7.3.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-validate": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", - "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", - "dependencies": { - "@jest/types": "^27.5.1", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "leven": "^3.1.0", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-watch-typeahead": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.0.0.tgz", - "integrity": "sha512-jxoszalAb394WElmiJTFBMzie/RDCF+W7Q29n5LzOPtcoQoHWfdUtHFkbhgf5NwWe8uMOxvKb/g7ea7CshfkTw==", - "dependencies": { - "ansi-escapes": "^4.3.1", - "chalk": "^4.0.0", - "jest-regex-util": "^27.0.0", - "jest-watcher": "^27.0.0", - "slash": "^4.0.0", - "string-length": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "jest": "^27.0.0" - } - }, - "node_modules/jest-watch-typeahead/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/jest-watch-typeahead/node_modules/char-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz", - "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==", - "engines": { - "node": ">=12.20" - } - }, - "node_modules/jest-watch-typeahead/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-watch-typeahead/node_modules/string-length": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", - "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", - "dependencies": { - "char-regex": "^2.0.0", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-watch-typeahead/node_modules/strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/jest-watcher": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", - "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", - "dependencies": { - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.5.1", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "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==", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/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" - } - }, - "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==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "react": ">=17.0.2", + "react-dom": ">=17.0.2", + "react-feather": ">=2.0.9" } }, "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==" + "license": "MIT" }, "node_modules/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==", + "version": "4.1.0", + "dev": true, + "license": "MIT", "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "dependencies": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, "node_modules/jsesc": { "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, @@ -9752,46 +3462,20 @@ "node": ">=4" } }, - "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==" - }, - "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==" - }, - "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==" - }, "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, + "license": "MIT" }, "node_modules/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=" - }, - "node_modules/json2mq": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz", - "integrity": "sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==", - "dependencies": { - "string-convert": "^0.2.0" - } + "dev": true, + "license": "MIT" }, "node_modules/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==", - "dependencies": { - "minimist": "^1.2.5" - }, + "version": "2.2.1", + "dev": true, + "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -9799,86 +3483,35 @@ "node": ">=6" } }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonpointer": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.0.tgz", - "integrity": "sha512-PNYZIdMjVIvVgDSYKTT63Y+KZ6IZvGRNNWcxwD+GNnUz1MKPfv30J8ueCjdwcN0nDx2SlshgyB7Oy0epAzVRRg==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/jsx-ast-utils": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.2.tgz", - "integrity": "sha512-HDAyJ4MNQBboGpUnHAVUNJs6X0lh058s6FuixsFGP7MgJYpD6Vasd6nzSG5iIfXu1zAYlHJ/zsOKNlrenTUBnw==", + "version": "3.3.2", + "dev": true, + "license": "MIT", "dependencies": { - "array-includes": "^3.1.4", + "array-includes": "^3.1.5", "object.assign": "^4.1.2" }, "engines": { "node": ">=4.0" } }, - "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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "engines": { - "node": ">=6" - } - }, - "node_modules/klona": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", - "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", - "engines": { - "node": ">= 8" - } - }, "node_modules/language-subtag-registry": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz", - "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==" + "version": "0.3.22", + "dev": true, + "license": "CC0-1.0" }, "node_modules/language-tags": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", - "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=", + "dev": true, + "license": "MIT", "dependencies": { "language-subtag-registry": "~0.3.2" } }, - "node_modules/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==", - "engines": { - "node": ">=6" - } - }, "node_modules/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, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -9888,135 +3521,75 @@ } }, "node_modules/lilconfig": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz", - "integrity": "sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==", + "version": "2.0.5", + "dev": true, + "license": "MIT", "engines": { "node": ">=10" } }, - "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==" - }, - "node_modules/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==", - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "node_modules/lint-staged": { + "version": "13.0.3", + "dev": true, + "license": "MIT", "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" + "cli-truncate": "^3.1.0", + "colorette": "^2.0.17", + "commander": "^9.3.0", + "debug": "^4.3.4", + "execa": "^6.1.0", + "lilconfig": "2.0.5", + "listr2": "^4.0.5", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-inspect": "^1.12.2", + "pidtree": "^0.6.0", + "string-argv": "^0.3.1", + "yaml": "^2.1.1" + }, + "bin": { + "lint-staged": "bin/lint-staged.js" }, "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/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==", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" + "node": "^14.13.1 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/lint-staged" } }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" - }, - "node_modules/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==" - }, - "node_modules/lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" - }, - "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==", + "node_modules/listr2": { + "version": "4.0.5", + "dev": true, + "license": "MIT", "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "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==", - "dependencies": { - "yallist": "^4.0.0" + "cli-truncate": "^2.1.0", + "colorette": "^2.0.16", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.5.5", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": ">=10" + "node": ">=12" + }, + "peerDependencies": { + "enquirer": ">= 2.3.0 < 3" + }, + "peerDependenciesMeta": { + "enquirer": { + "optional": true + } } }, - "node_modules/lz-string": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", - "integrity": "sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==", - "bin": { - "lz-string": "bin/bin.js" - } - }, - "node_modules/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==", + "node_modules/listr2/node_modules/cli-truncate": { + "version": "2.1.0", + "dev": true, + "license": "MIT", "dependencies": { - "sourcemap-codec": "^1.4.4" - } - }, - "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==", - "dependencies": { - "semver": "^6.0.0" + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" }, "engines": { "node": ">=8" @@ -10025,57 +3598,121 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "node_modules/listr2/node_modules/slice-ansi": { + "version": "3.0.0", + "dev": true, + "license": "MIT", "dependencies": { - "tmpl": "1.0.5" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/mdn-data": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", - "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" + "node_modules/lodash.merge": { + "version": "4.6.2", + "dev": true, + "license": "MIT" + }, + "node_modules/log-update": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/slice-ansi": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "6.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/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/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, "engines": { "node": ">= 0.6" } }, - "node_modules/memfs": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.1.tgz", - "integrity": "sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw==", - "dependencies": { - "fs-monkey": "1.0.3" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/memoize-one": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", - "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" - }, "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 }, "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, + "license": "MIT" }, "node_modules/merge2": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } @@ -10083,18 +3720,19 @@ "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "version": "4.0.5", + "dev": true, + "license": "MIT", "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "braces": "^3.0.2", + "picomatch": "^2.3.1" }, "engines": { "node": ">=8.6" @@ -10104,6 +3742,7 @@ "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" }, @@ -10112,129 +3751,44 @@ } }, "node_modules/mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", + "version": "1.52.0", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "version": "2.1.18", + "dev": true, + "license": "MIT", "dependencies": { - "mime-db": "1.51.0" + "mime-db": "~1.33.0" }, "engines": { "node": ">= 0.6" } }, + "node_modules/mime-types/node_modules/mime-db": { + "version": "1.33.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "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, + "license": "MIT", "engines": { "node": ">=6" } }, - "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==", - "engines": { - "node": ">=4" - } - }, - "node_modules/mini-create-react-context": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz", - "integrity": "sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ==", - "dependencies": { - "@babel/runtime": "^7.12.1", - "tiny-warning": "^1.0.3" - }, - "peerDependencies": { - "prop-types": "^15.0.0", - "react": "^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/mini-css-extract-plugin": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.5.3.tgz", - "integrity": "sha512-YseMB8cs8U/KCaAGQoqYmfUuhhGW0a9p9XvWXrxVOkE3/IiISTLw4ALNt7JR5B2eYauFM+PQGSbXMDmVbR7Tfw==", - "dependencies": { - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", - "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" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/mini-css-extract-plugin/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==" - }, - "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "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==" - }, "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "3.1.2", + "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -10244,216 +3798,104 @@ }, "node_modules/minimist": { "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/moment": { - "version": "2.29.4", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", - "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", - "engines": { - "node": "*" - } + "dev": true, + "license": "MIT" }, "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", - "dependencies": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } - }, - "node_modules/multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=" + "version": "2.1.2", + "dev": true, + "license": "MIT" }, "node_modules/nanoid": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", - "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.0.tgz", + "integrity": "sha512-IgBP8piMxe/gf73RTQx7hmnhwz0aaEXYakvqZyE302IXW3HyVNhdNGC+O2MwMAVhLEnvXlvKtGbtJf6wvHihCg==", + "dev": true, "bin": { - "nanoid": "bin/nanoid.cjs" + "nanoid": "bin/nanoid.js" }, "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "node": "^14 || ^16 || >=18" } }, "node_modules/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, + "license": "MIT" }, "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, + "license": "MIT", "engines": { "node": ">= 0.6" } }, - "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==" - }, - "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_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "engines": { - "node": ">= 6.13.0" - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" - }, "node_modules/node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==" + "version": "2.0.6", + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "node_modules/npm-run-path": { + "version": "5.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0" + }, "engines": { - "node": ">=0.10.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==", - "engines": { - "node": ">=10" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "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": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dependencies": { - "path-key": "^2.0.0" - }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "dev": true, + "license": "MIT", "engines": { - "node": ">=4" - } - }, - "node_modules/nth-check": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", - "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", - "dependencies": { - "boolbase": "^1.0.0" + "node": ">=12" }, "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/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/object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/object-hash": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", - "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", - "engines": { - "node": ">= 6" - } - }, "node_modules/object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, + "version": "1.12.2", + "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "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, + "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/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==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.0", "define-properties": "^1.1.3", @@ -10469,8 +3911,8 @@ }, "node_modules/object.entries": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", - "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -10482,8 +3924,8 @@ }, "node_modules/object.fromentries": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", - "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -10496,29 +3938,13 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.getownpropertydescriptors": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz", - "integrity": "sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.8" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/object.hasown": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", - "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", + "version": "1.1.1", + "dev": true, + "license": "MIT", "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -10526,8 +3952,8 @@ }, "node_modules/object.values": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -10540,15 +3966,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" - }, "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, "dependencies": { "ee-first": "1.1.1" }, @@ -10558,24 +3980,24 @@ }, "node_modules/on-headers": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "license": "ISC", "dependencies": { "wrappy": "1" } }, "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, + "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" }, @@ -10586,26 +4008,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/optionator": { "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "license": "MIT", "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", @@ -10618,46 +4024,10 @@ "node": ">= 0.8.0" } }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "engines": { - "node": ">=4" - } - }, - "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==", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/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==", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "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, + "license": "MIT", "dependencies": { "aggregate-error": "^3.0.0" }, @@ -10668,39 +4038,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-retry": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz", - "integrity": "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==", - "dependencies": { - "@types/retry": "^0.12.0", - "retry": "^0.13.1" - }, - "engines": { - "node": ">=8" - } - }, - "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==", - "engines": { - "node": ">=6" - } - }, - "node_modules/param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, "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, + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -10708,109 +4049,63 @@ "node": ">=6" } }, - "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==", - "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" - } - }, - "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - }, "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, "engines": { "node": ">= 0.8" } }, - "node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "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==", - "engines": { - "node": ">=8" - } - }, "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, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/path-is-inside": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" + "dev": true, + "license": "(WTFPL OR MIT)" }, "node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "engines": { - "node": ">=4" - } - }, - "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==" - }, - "node_modules/path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", - "dependencies": { - "isarray": "0.0.1" - } - }, - "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==", + "version": "3.1.1", + "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + "node_modules/path-parse": { + "version": "1.0.7", + "dev": true, + "license": "MIT" + }, + "node_modules/path-to-regexp": { + "version": "2.2.1", + "dev": true, + "license": "MIT" + }, + "node_modules/path-type": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, "node_modules/picocolors": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "dev": true, + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -10818,1303 +4113,77 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "engines": { - "node": ">= 6" - } - }, - "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==", - "dependencies": { - "find-up": "^4.0.0" + "node_modules/pidtree": { + "version": "0.6.0", + "dev": true, + "license": "MIT", + "bin": { + "pidtree": "bin/pidtree.js" }, "engines": { - "node": ">=8" + "node": ">=0.10" } }, - "node_modules/pkg-dir/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==", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/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==", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/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==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/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==", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-up/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/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==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-up/node_modules/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==", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "engines": { - "node": ">=4" - } - }, - "node_modules/portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", - "dependencies": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "engines": { - "node": ">= 0.12.0" - } - }, - "node_modules/portfinder/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/portfinder/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/postcss": { - "version": "8.4.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.6.tgz", - "integrity": "sha512-OovjwIzs9Te46vlEx7+uXB0PLijpwjXGKXjVGGPIGubGpq7uh5Xgf6D6FiJ/SzJMBosHDp6a2hiXOS97iBXcaA==", + "version": "8.4.14", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "license": "MIT", "dependencies": { - "nanoid": "^3.2.0", + "nanoid": "^3.3.4", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, "engines": { "node": "^10 || ^12 || >=14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, - "node_modules/postcss-attribute-case-insensitive": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.0.tgz", - "integrity": "sha512-b4g9eagFGq9T5SWX4+USfVyjIb3liPnjhHHRMP7FMB2kFVpYyfEscV0wP3eaXhKlcHKUut8lt5BGoeylWA/dBQ==", - "dependencies": { - "postcss-selector-parser": "^6.0.2" - }, - "peerDependencies": { - "postcss": "^8.0.2" - } - }, - "node_modules/postcss-browser-comments": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz", - "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==", - "engines": { - "node": ">=8" - }, - "peerDependencies": { - "browserslist": ">=4", - "postcss": ">=8" - } - }, - "node_modules/postcss-calc": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", - "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", - "dependencies": { - "postcss-selector-parser": "^6.0.9", - "postcss-value-parser": "^4.2.0" - }, - "peerDependencies": { - "postcss": "^8.2.2" - } - }, - "node_modules/postcss-clamp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.0.0.tgz", - "integrity": "sha512-FsMmeBZtymFN7Jtlnw9is8I4nB+qEEb/qS0ZLTIqcKiwZyHBq44Yhv29Q+VQsTGHYFqIr/s/9tqvNM7j+j1d+g==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=7.6.0" - }, - "peerDependencies": { - "postcss": "^8.4.6" - } - }, - "node_modules/postcss-color-functional-notation": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.2.tgz", - "integrity": "sha512-DXVtwUhIk4f49KK5EGuEdgx4Gnyj6+t2jBSEmxvpIK9QI40tWrpS2Pua8Q7iIZWBrki2QOaeUdEaLPPa91K0RQ==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-color-hex-alpha": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.3.tgz", - "integrity": "sha512-fESawWJCrBV035DcbKRPAVmy21LpoyiXdPTuHUfWJ14ZRjY7Y7PA6P4g8z6LQGYhU1WAxkTxjIjurXzoe68Glw==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-color-rebeccapurple": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.0.2.tgz", - "integrity": "sha512-SFc3MaocHaQ6k3oZaFwH8io6MdypkUtEy/eXzXEB1vEQlO3S3oDc/FSZA8AsS04Z25RirQhlDlHLh3dn7XewWw==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.3" - } - }, - "node_modules/postcss-colormin": { - "version": "5.2.5", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.2.5.tgz", - "integrity": "sha512-+X30aDaGYq81mFqwyPpnYInsZQnNpdxMX0ajlY7AExCexEFkPVV+KrO7kXwayqEWL2xwEbNQ4nUO0ZsRWGnevg==", - "dependencies": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0", - "colord": "^2.9.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-convert-values": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.0.4.tgz", - "integrity": "sha512-bugzSAyjIexdObovsPZu/sBCTHccImJxLyFgeV0MmNBm/Lw5h5XnjfML6gzEmJ3A6nyfCW7hb1JXzcsA4Zfbdw==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-custom-media": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz", - "integrity": "sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-custom-properties": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.4.tgz", - "integrity": "sha512-i6AytuTCoDLJkWN/MtAIGriJz3j7UX6bV7Z5t+KgFz+dwZS15/mlTJY1S0kRizlk6ba0V8u8hN50Fz5Nm7tdZw==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-custom-selectors": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.0.tgz", - "integrity": "sha512-/1iyBhz/W8jUepjGyu7V1OPcGbc636snN1yXEQCinb6Bwt7KxsiU7/bLQlp8GwAXzCh7cobBU5odNn/2zQWR8Q==", - "dependencies": { - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "postcss": "^8.1.2" - } - }, - "node_modules/postcss-dir-pseudo-class": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.4.tgz", - "integrity": "sha512-I8epwGy5ftdzNWEYok9VjW9whC4xnelAtbajGv4adql4FIF09rnrxnA9Y8xSHN47y7gqFIv10C5+ImsLeJpKBw==", - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-discard-comments": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.0.3.tgz", - "integrity": "sha512-6W5BemziRoqIdAKT+1QjM4bNcJAQ7z7zk073730NHg4cUXh3/rQHHj7pmYxUB9aGhuRhBiUf0pXvIHkRwhQP0Q==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-duplicates": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.3.tgz", - "integrity": "sha512-vPtm1Mf+kp7iAENTG7jI1MN1lk+fBqL5y+qxyi4v3H+lzsXEdfS3dwUZD45KVhgzDEgduur8ycB4hMegyMTeRw==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-empty": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.0.3.tgz", - "integrity": "sha512-xGJugpaXKakwKI7sSdZjUuN4V3zSzb2Y0LOlmTajFbNinEjTfVs9PFW2lmKBaC/E64WwYppfqLD03P8l9BuueA==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-overridden": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.0.4.tgz", - "integrity": "sha512-3j9QH0Qh1KkdxwiZOW82cId7zdwXVQv/gRXYDnwx5pBtR1sTkU4cXRK9lp5dSdiM0r0OICO/L8J6sV1/7m0kHg==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-double-position-gradients": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.0.tgz", - "integrity": "sha512-oz73I08yMN3oxjj0s8mED1rG+uOYoK3H8N9RjQofyg52KBRNmePJKg3fVwTpL2U5ZFbCzXoZBsUD/CvZdlqE4Q==", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-env-function": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.5.tgz", - "integrity": "sha512-gPUJc71ji9XKyl0WSzAalBeEA/89kU+XpffpPxSaaaZ1c48OL36r1Ep5R6+9XAPkIiDlSvVAwP4io12q/vTcvA==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-flexbugs-fixes": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz", - "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==", - "peerDependencies": { - "postcss": "^8.1.4" - } - }, - "node_modules/postcss-focus-visible": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", - "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-focus-within": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", - "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-font-variant": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", - "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-gap-properties": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.3.tgz", - "integrity": "sha512-rPPZRLPmEKgLk/KlXMqRaNkYTUpE7YC+bOIQFN5xcu1Vp11Y4faIXv6/Jpft6FMnl6YRxZqDZG0qQOW80stzxQ==", - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-image-set-function": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.6.tgz", - "integrity": "sha512-KfdC6vg53GC+vPd2+HYzsZ6obmPqOk6HY09kttU19+Gj1nC3S3XBVEXDHxkhxTohgZqzbUb94bKXvKDnYWBm/A==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-initial": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", - "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-js": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz", - "integrity": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==", - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.3.3" - } - }, - "node_modules/postcss-lab-function": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.1.1.tgz", - "integrity": "sha512-j3Z0WQCimY2tMle++YcmygnnVbt6XdnrCV1FO2IpzaCSmtTF2oO8h4ZYUA1Q+QHYroIiaWPvNHt9uBR4riCksQ==", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-load-config": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.3.tgz", - "integrity": "sha512-5EYgaM9auHGtO//ljHH+v/aC/TQ5LHXtL7bQajNAUBKUVKiYE8rYpFms7+V26D9FncaGe2zwCoPQsFKb5zF/Hw==", - "dependencies": { - "lilconfig": "^2.0.4", - "yaml": "^1.10.2" - }, - "engines": { - "node": ">= 10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } - } - }, - "node_modules/postcss-loader": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", - "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", - "dependencies": { - "cosmiconfig": "^7.0.0", - "klona": "^2.0.5", - "semver": "^7.3.5" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "postcss": "^7.0.0 || ^8.0.1", - "webpack": "^5.0.0" - } - }, - "node_modules/postcss-loader/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dependencies": { - "lru-cache": "^6.0.0" - }, + "node_modules/postcss/node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true, "bin": { - "semver": "bin/semver.js" + "nanoid": "bin/nanoid.cjs" }, "engines": { - "node": ">=10" + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/postcss-logical": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", - "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-media-minmax": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", - "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-merge-longhand": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.0.6.tgz", - "integrity": "sha512-rkmoPwQO6ymJSmWsX6l2hHeEBQa7C4kJb9jyi5fZB1sE8nSCv7sqchoYPixRwX/yvLoZP2y6FA5kcjiByeJqDg==", - "dependencies": { - "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.0.3" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-merge-rules": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.6.tgz", - "integrity": "sha512-nzJWJ9yXWp8AOEpn/HFAW72WKVGD2bsLiAmgw4hDchSij27bt6TF+sIK0cJUBAYT3SGcjtGGsOR89bwkkMuMgQ==", - "dependencies": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^3.0.2", - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-font-values": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.0.4.tgz", - "integrity": "sha512-RN6q3tyuEesvyCYYFCRGJ41J1XFvgV+dvYGHr0CeHv8F00yILlN8Slf4t8XW4IghlfZYCeyRrANO6HpJ948ieA==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-gradients": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.6.tgz", - "integrity": "sha512-E/dT6oVxB9nLGUTiY/rG5dX9taugv9cbLNTFad3dKxOO+BQg25Q/xo2z2ddG+ZB1CbkZYaVwx5blY8VC7R/43A==", - "dependencies": { - "colord": "^2.9.1", - "cssnano-utils": "^3.0.2", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-params": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.5.tgz", - "integrity": "sha512-YBNuq3Rz5LfLFNHb9wrvm6t859b8qIqfXsWeK7wROm3jSKNpO1Y5e8cOyBv6Acji15TgSrAwb3JkVNCqNyLvBg==", - "dependencies": { - "browserslist": "^4.16.6", - "cssnano-utils": "^3.0.2", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-selectors": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.1.3.tgz", - "integrity": "sha512-9RJfTiQEKA/kZhMaEXND893nBqmYQ8qYa/G+uPdVnXF6D/FzpfI6kwBtWEcHx5FqDbA79O9n6fQJfrIj6M8jvQ==", - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/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==", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/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==", - "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/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==", - "dependencies": { - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/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==", - "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-nested": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz", - "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==", - "dependencies": { - "postcss-selector-parser": "^6.0.6" - }, - "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-nesting": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.1.2.tgz", - "integrity": "sha512-dJGmgmsvpzKoVMtDMQQG/T6FSqs6kDtUDirIfl4KnjMCiY9/ETX8jdKyCd20swSRAbUYkaBKV20pxkzxoOXLqQ==", - "dependencies": { - "postcss-selector-parser": "^6.0.8" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.3" - } - }, - "node_modules/postcss-normalize": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-10.0.1.tgz", - "integrity": "sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==", - "dependencies": { - "@csstools/normalize.css": "*", - "postcss-browser-comments": "^4", - "sanitize.css": "*" - }, - "engines": { - "node": ">= 12" - }, - "peerDependencies": { - "browserslist": ">= 4", - "postcss": ">= 8" - } - }, - "node_modules/postcss-normalize-charset": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.0.3.tgz", - "integrity": "sha512-iKEplDBco9EfH7sx4ut7R2r/dwTnUqyfACf62Unc9UiyFuI7uUqZZtY+u+qp7g8Qszl/U28HIfcsI3pEABWFfA==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-display-values": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.3.tgz", - "integrity": "sha512-FIV5FY/qs4Ja32jiDb5mVj5iWBlS3N8tFcw2yg98+8MkRgyhtnBgSC0lxU+16AMHbjX5fbSJgw5AXLMolonuRQ==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-positions": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.0.4.tgz", - "integrity": "sha512-qynirjBX0Lc73ROomZE3lzzmXXTu48/QiEzKgMeqh28+MfuHLsuqC9po4kj84igZqqFGovz8F8hf44hA3dPYmQ==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-repeat-style": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.4.tgz", - "integrity": "sha512-Innt+wctD7YpfeDR7r5Ik6krdyppyAg2HBRpX88fo5AYzC1Ut/l3xaxACG0KsbX49cO2n5EB13clPwuYVt8cMA==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-string": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.0.4.tgz", - "integrity": "sha512-Dfk42l0+A1CDnVpgE606ENvdmksttLynEqTQf5FL3XGQOyqxjbo25+pglCUvziicTxjtI2NLUR6KkxyUWEVubQ==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-timing-functions": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.3.tgz", - "integrity": "sha512-QRfjvFh11moN4PYnJ7hia4uJXeFotyK3t2jjg8lM9mswleGsNw2Lm3I5wO+l4k1FzK96EFwEVn8X8Ojrp2gP4g==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-unicode": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.4.tgz", - "integrity": "sha512-W79Regn+a+eXTzB+oV/8XJ33s3pDyFTND2yDuUCo0Xa3QSy1HtNIfRVPXNubHxjhlqmMFADr3FSCHT84ITW3ig==", - "dependencies": { - "browserslist": "^4.16.6", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-url": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.0.5.tgz", - "integrity": "sha512-Ws3tX+PcekYlXh+ycAt0wyzqGthkvVtZ9SZLutMVvHARxcpu4o7vvXcNoiNKyjKuWecnjS6HDI3fjBuDr5MQxQ==", - "dependencies": { - "normalize-url": "^6.0.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-whitespace": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.4.tgz", - "integrity": "sha512-wsnuHolYZjMwWZJoTC9jeI2AcjA67v4UuidDrPN9RnX8KIZfE+r2Nd6XZRwHVwUiHmRvKQtxiqo64K+h8/imaw==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-opacity-percentage": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.2.tgz", - "integrity": "sha512-lyUfF7miG+yewZ8EAk9XUBIlrHyUE6fijnesuz+Mj5zrIHIEw6KcIZSOk/elVMqzLvREmXB83Zi/5QpNRYd47w==", - "funding": [ - { - "type": "kofi", - "url": "https://ko-fi.com/mrcgrtz" - }, - { - "type": "liberapay", - "url": "https://liberapay.com/mrcgrtz" - } - ], - "engines": { - "node": "^12 || ^14 || >=16" - } - }, - "node_modules/postcss-ordered-values": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.0.5.tgz", - "integrity": "sha512-mfY7lXpq+8bDEHfP+muqibDPhZ5eP9zgBEF9XRvoQgXcQe2Db3G1wcvjbnfjXG6wYsl+0UIjikqq4ym1V2jGMQ==", - "dependencies": { - "cssnano-utils": "^3.0.2", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-overflow-shorthand": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.3.tgz", - "integrity": "sha512-CxZwoWup9KXzQeeIxtgOciQ00tDtnylYIlJBBODqkgS/PU2jISuWOL/mYLHmZb9ZhZiCaNKsCRiLp22dZUtNsg==", - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-page-break": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", - "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", - "peerDependencies": { - "postcss": "^8" - } - }, - "node_modules/postcss-place": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.4.tgz", - "integrity": "sha512-MrgKeiiu5OC/TETQO45kV3npRjOFxEHthsqGtkh3I1rPbZSbXGD/lZVi9j13cYh+NA8PIAPyk6sGjT9QbRyvSg==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-preset-env": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.4.1.tgz", - "integrity": "sha512-UvBVvPJ2vb4odAtckSbryndyBz+Me1q8wawqq0qznpDXy188I+8W5Sa929sCPqw2/NSYnqpHJbo41BKso3+I9A==", - "dependencies": { - "@csstools/postcss-color-function": "^1.0.2", - "@csstools/postcss-font-format-keywords": "^1.0.0", - "@csstools/postcss-hwb-function": "^1.0.0", - "@csstools/postcss-ic-unit": "^1.0.0", - "@csstools/postcss-is-pseudo-class": "^2.0.0", - "@csstools/postcss-normalize-display-values": "^1.0.0", - "@csstools/postcss-oklab-function": "^1.0.1", - "@csstools/postcss-progressive-custom-properties": "^1.2.0", - "autoprefixer": "^10.4.2", - "browserslist": "^4.19.1", - "css-blank-pseudo": "^3.0.3", - "css-has-pseudo": "^3.0.4", - "css-prefers-color-scheme": "^6.0.3", - "cssdb": "^6.3.1", - "postcss-attribute-case-insensitive": "^5.0.0", - "postcss-clamp": "^4.0.0", - "postcss-color-functional-notation": "^4.2.2", - "postcss-color-hex-alpha": "^8.0.3", - "postcss-color-rebeccapurple": "^7.0.2", - "postcss-custom-media": "^8.0.0", - "postcss-custom-properties": "^12.1.4", - "postcss-custom-selectors": "^6.0.0", - "postcss-dir-pseudo-class": "^6.0.4", - "postcss-double-position-gradients": "^3.1.0", - "postcss-env-function": "^4.0.5", - "postcss-focus-visible": "^6.0.4", - "postcss-focus-within": "^5.0.4", - "postcss-font-variant": "^5.0.0", - "postcss-gap-properties": "^3.0.3", - "postcss-image-set-function": "^4.0.6", - "postcss-initial": "^4.0.1", - "postcss-lab-function": "^4.1.1", - "postcss-logical": "^5.0.4", - "postcss-media-minmax": "^5.0.0", - "postcss-nesting": "^10.1.2", - "postcss-opacity-percentage": "^1.1.2", - "postcss-overflow-shorthand": "^3.0.3", - "postcss-page-break": "^3.0.4", - "postcss-place": "^7.0.4", - "postcss-pseudo-class-any-link": "^7.1.1", - "postcss-replace-overflow-wrap": "^4.0.0", - "postcss-selector-not": "^5.0.0" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-pseudo-class-any-link": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.1.tgz", - "integrity": "sha512-JRoLFvPEX/1YTPxRxp1JO4WxBVXJYrSY7NHeak5LImwJ+VobFMwYDQHvfTXEpcn+7fYIeGkC29zYFhFWIZD8fg==", - "dependencies": { - "postcss-selector-parser": "^6.0.9" - }, - "engines": { - "node": "^12 || ^14 || >=16" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-reduce-initial": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.0.3.tgz", - "integrity": "sha512-c88TkSnQ/Dnwgb4OZbKPOBbCaauwEjbECP5uAuFPOzQ+XdjNjRH7SG0dteXrpp1LlIFEKK76iUGgmw2V0xeieA==", - "dependencies": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-reduce-transforms": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.4.tgz", - "integrity": "sha512-VIJB9SFSaL8B/B7AXb7KHL6/GNNbbCHslgdzS9UDfBZYIA2nx8NLY7iD/BXFSO/1sRUILzBTfHCoW5inP37C5g==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-replace-overflow-wrap": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", - "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", - "peerDependencies": { - "postcss": "^8.0.3" - } - }, - "node_modules/postcss-selector-not": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-5.0.0.tgz", - "integrity": "sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ==", - "dependencies": { - "balanced-match": "^1.0.0" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.9", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz", - "integrity": "sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-svgo": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.0.4.tgz", - "integrity": "sha512-yDKHvULbnZtIrRqhZoA+rxreWpee28JSRH/gy9727u0UCgtpv1M/9WEWY3xySlFa0zQJcqf6oCBJPR5NwkmYpg==", - "dependencies": { - "postcss-value-parser": "^4.2.0", - "svgo": "^2.7.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-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" - } - }, - "node_modules/postcss-svgo/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==", - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/postcss-svgo/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==" - }, - "node_modules/postcss-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==", - "dependencies": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/postcss-unique-selectors": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.0.4.tgz", - "integrity": "sha512-5ampwoSDJCxDPoANBIlMgoBcYUHnhaiuLYJR5pj1DLnYQvMRVyFuTA5C3Bvt+aHtiqWpJkD/lXT50Vo1D0ZsAQ==", - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" - }, "node_modules/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, + "license": "MIT", "engines": { "node": ">= 0.8.0" } }, - "node_modules/pretty-bytes": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", - "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "node_modules/prettier": { + "version": "2.7.1", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, "engines": { - "node": ">=6" + "node": ">=10.13.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pretty-error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", - "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", - "dependencies": { - "lodash": "^4.17.20", - "renderkid": "^3.0.0" - } - }, - "node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "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" - } - }, - "node_modules/pretty-format/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==" - }, - "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==" - }, - "node_modules/promise": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz", - "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==", - "dependencies": { - "asap": "~2.0.6" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" + "url": "https://github.com/prettier/prettier?sponsor=1" } }, "node_modules/prop-types": { "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -12125,6 +4194,7 @@ "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, "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" @@ -12133,49 +4203,22 @@ "node": ">= 0.10" } }, - "node_modules/proxy-addr/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==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/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/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, "node_modules/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, + "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" - } - }, "node_modules/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==", + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, "engines": { "node": ">=0.6" }, @@ -12185,8 +4228,7 @@ }, "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==", + "dev": true, "funding": [ { "type": "github", @@ -12200,50 +4242,25 @@ "type": "consulting", "url": "https://feross.org/support" } - ] - }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/raf": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", - "dependencies": { - "performance-now": "^2.1.0" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dependencies": { - "safe-buffer": "^5.1.0" - } + ], + "license": "MIT" }, "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==", + "version": "1.2.0", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/raw-body": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz", - "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, "dependencies": { "bytes": "3.1.2", - "http-errors": "1.8.1", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" }, @@ -12255,25 +4272,15 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, "engines": { "node": ">= 0.8" } }, - "node_modules/raw-body/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==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/rc": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -12284,952 +4291,94 @@ "rc": "cli.js" } }, - "node_modules/rc-align": { - "version": "4.0.12", - "resolved": "https://registry.npmjs.org/rc-align/-/rc-align-4.0.12.tgz", - "integrity": "sha512-3DuwSJp8iC/dgHzwreOQl52soj40LchlfUHtgACOUtwGuoFIOVh6n/sCpfqCU8kO5+iz6qR0YKvjgB8iPdE3aQ==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "dom-align": "^1.7.0", - "lodash": "^4.17.21", - "rc-util": "^5.3.0", - "resize-observer-polyfill": "^1.5.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-cascader": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.6.0.tgz", - "integrity": "sha512-p9qwt8E8ZICzPIzyfXF5y7/lbJhRowFj8YhWpdytMomHUZ568duFNwA4H5QVqdC6hg/HIV1YEawOE5jlxSpeww==", - "dependencies": { - "@babel/runtime": "^7.12.5", - "array-tree-filter": "^2.1.0", - "classnames": "^2.3.1", - "rc-select": "~14.1.0", - "rc-tree": "~5.6.3", - "rc-util": "^5.6.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-checkbox": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-2.3.2.tgz", - "integrity": "sha512-afVi1FYiGv1U0JlpNH/UaEXdh6WUJjcWokj/nUN2TgG80bfG+MDdbfHKlLcNNba94mbjy2/SXJ1HDgrOkXGAjg==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-collapse": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/rc-collapse/-/rc-collapse-3.3.0.tgz", - "integrity": "sha512-nkxjhpYAAwEVbBvZ/qoatLecD0PpRtQ5ja9G+FP1QmsWhs/4VCruhjvRdSpMn9vfluKUnePe3PEy8eeqTeuE0g==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "rc-motion": "^2.3.4", - "rc-util": "^5.2.1", - "shallowequal": "^1.1.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-dialog": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/rc-dialog/-/rc-dialog-8.8.2.tgz", - "integrity": "sha512-n1waqBDDKqCCcPCDGycahfawF00WqgtXTXUwxrLStUpfQAo7nzkAvTq9voT78X2qN83UYvrMg1TWCuTueBp+sg==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.6", - "rc-motion": "^2.3.0", - "rc-util": "^5.21.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-drawer": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-4.4.3.tgz", - "integrity": "sha512-FYztwRs3uXnFOIf1hLvFxIQP9MiZJA+0w+Os8dfDh/90X7z/HqP/Yg+noLCIeHEbKln1Tqelv8ymCAN24zPcfQ==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.6", - "rc-util": "^5.7.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-dropdown": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/rc-dropdown/-/rc-dropdown-4.0.1.tgz", - "integrity": "sha512-OdpXuOcme1rm45cR0Jzgfl1otzmU4vuBVb+etXM8vcaULGokAKVpKlw8p6xzspG7jGd/XxShvq+N3VNEfk/l5g==", - "dependencies": { - "@babel/runtime": "^7.18.3", - "classnames": "^2.2.6", - "rc-trigger": "^5.3.1", - "rc-util": "^5.17.0" - }, - "peerDependencies": { - "react": ">=16.11.0", - "react-dom": ">=16.11.0" - } - }, - "node_modules/rc-dropdown/node_modules/@babel/runtime": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.3.tgz", - "integrity": "sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==", - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "dev": true, + "license": "MIT", "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/rc-field-form": { - "version": "1.26.7", - "resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-1.26.7.tgz", - "integrity": "sha512-CIb7Gw+DG9R+g4HxaDGYHhOjhjQoU2mGU4y+UM2+KQ3uRz9HrrNgTspGvNynn3UamsYcYcaPWZJmiJ6VklkT/w==", - "dependencies": { - "@babel/runtime": "^7.18.0", - "async-validator": "^4.1.0", - "rc-util": "^5.8.0" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-field-form/node_modules/@babel/runtime": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.3.tgz", - "integrity": "sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==", - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/rc-image": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/rc-image/-/rc-image-5.6.2.tgz", - "integrity": "sha512-qhKOVvivCZkd6CrzS/4ST2+Auu16mtPSFVqVzwE7sELWfuvzcLGTzGv8UsVvm6qRNIz6SeaueUetqi4Ii16XQA==", - "dependencies": { - "@babel/runtime": "^7.11.2", - "classnames": "^2.2.6", - "rc-dialog": "~8.8.0", - "rc-util": "^5.0.6" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-input": { - "version": "0.0.1-alpha.7", - "resolved": "https://registry.npmjs.org/rc-input/-/rc-input-0.0.1-alpha.7.tgz", - "integrity": "sha512-eozaqpCYWSY5LBMwlHgC01GArkVEP+XlJ84OMvdkwUnJBSv83Yxa15pZpn7vACAj84uDC4xOA2CoFdbLuqB08Q==", - "dependencies": { - "@babel/runtime": "^7.11.1", - "classnames": "^2.2.1", - "rc-util": "^5.18.1" - }, - "peerDependencies": { - "react": ">=16.0.0", - "react-dom": ">=16.0.0" - } - }, - "node_modules/rc-input-number": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-7.3.4.tgz", - "integrity": "sha512-W9uqSzuvJUnz8H8vsVY4kx+yK51SsAxNTwr8SNH4G3XqQNocLVmKIibKFRjocnYX1RDHMND9FFbgj2h7E7nvGA==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.5", - "rc-util": "^5.9.8" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-mentions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/rc-mentions/-/rc-mentions-1.8.0.tgz", - "integrity": "sha512-ch7yfMMvx2UXy+EvE4axm0Vp6VlVZ30WLrZtLtV/Eb1ty7rQQRzNzCwAHAMyw6tNKTMs9t9sF68AVjAzQ0rvJw==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.6", - "rc-menu": "~9.6.0", - "rc-textarea": "^0.3.0", - "rc-trigger": "^5.0.4", - "rc-util": "^5.0.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-menu": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-9.6.0.tgz", - "integrity": "sha512-d26waws42U/rVwW/+rOE2FN9pX6wUc9bDy38vVQYoie6gE85auWIpl5oChGlnW6nE2epnTwUsgWl8ipOPgmnUA==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "rc-motion": "^2.4.3", - "rc-overflow": "^1.2.0", - "rc-trigger": "^5.1.2", - "rc-util": "^5.12.0", - "shallowequal": "^1.1.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-motion": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/rc-motion/-/rc-motion-2.6.0.tgz", - "integrity": "sha512-1MDWA9+i174CZ0SIDenSYm2Wb9YbRkrexjZWR0CUFu7D6f23E8Y0KsTgk9NGOLJsGak5ELZK/Y5lOlf5wQdzbw==", - "dependencies": { - "@babel/runtime": "^7.11.1", - "classnames": "^2.2.1", - "rc-util": "^5.21.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-notification": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/rc-notification/-/rc-notification-4.6.0.tgz", - "integrity": "sha512-xF3MKgIoynzjQAO4lqsoraiFo3UXNYlBfpHs0VWvwF+4pimen9/H1DYLN2mfRWhHovW6gRpla73m2nmyIqAMZQ==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "rc-motion": "^2.2.0", - "rc-util": "^5.20.1" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-overflow": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/rc-overflow/-/rc-overflow-1.2.6.tgz", - "integrity": "sha512-YqbocgzuQxfq2wZy72vdAgrgzzEuM/5d4gF9TBEodCpXPbUeXGrUXNm1J6G1MSkCU2N0ePIgCEu5qD/0Ldi63Q==", - "dependencies": { - "@babel/runtime": "^7.11.1", - "classnames": "^2.2.1", - "rc-resize-observer": "^1.0.0", - "rc-util": "^5.19.2" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-pagination": { - "version": "3.1.16", - "resolved": "https://registry.npmjs.org/rc-pagination/-/rc-pagination-3.1.16.tgz", - "integrity": "sha512-GFcHXJ7XxeJDf9B+ndP4PRDt46maSSgYhiwofBMiIGKIlBhJ0wfu8DMCEvaWJJLpI2u4Gb6zF1dHpiqPFrosPg==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-picker": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-2.6.9.tgz", - "integrity": "sha512-yH3UYXCADf7REtOAB5cwe1cyFKtB0p204RCN8JdZGG4uuSOZ1IPTkk/GJS6HOpxspZeJCLGzzajuQMDwck9dsw==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.1", - "date-fns": "2.x", - "dayjs": "1.x", - "moment": "^2.24.0", - "rc-trigger": "^5.0.4", - "rc-util": "^5.4.0", - "shallowequal": "^1.1.0" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-progress": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/rc-progress/-/rc-progress-3.3.3.tgz", - "integrity": "sha512-MDVNVHzGanYtRy2KKraEaWeZLri2ZHWIRyaE1a9MQ2MuJ09m+Wxj5cfcaoaR6z5iRpHpA59YeUxAlpML8N4PJw==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.6", - "rc-util": "^5.16.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-rate": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/rc-rate/-/rc-rate-2.9.2.tgz", - "integrity": "sha512-SaiZFyN8pe0Fgphv8t3+kidlej+cq/EALkAJAc3A0w0XcPaH2L1aggM8bhe1u6GAGuQNAoFvTLjw4qLPGRKV5g==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.5", - "rc-util": "^5.0.1" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-resize-observer": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/rc-resize-observer/-/rc-resize-observer-1.2.0.tgz", - "integrity": "sha512-6W+UzT3PyDM0wVCEHfoW3qTHPTvbdSgiA43buiy8PzmeMnfgnDeb9NjdimMXMl3/TcrvvWl5RRVdp+NqcR47pQ==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.1", - "rc-util": "^5.15.0", - "resize-observer-polyfill": "^1.5.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-segmented": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/rc-segmented/-/rc-segmented-2.1.0.tgz", - "integrity": "sha512-hUlonro+pYoZcwrH6Vm56B2ftLfQh046hrwif/VwLIw1j3zGt52p5mREBwmeVzXnSwgnagpOpfafspzs1asjGw==", - "dependencies": { - "@babel/runtime": "^7.11.1", - "classnames": "^2.2.1", - "rc-motion": "^2.4.4", - "rc-util": "^5.17.0" - }, - "peerDependencies": { - "react": ">=16.0.0", - "react-dom": ">=16.0.0" - } - }, - "node_modules/rc-select": { - "version": "14.1.5", - "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.1.5.tgz", - "integrity": "sha512-CvcmylICKSrPWCJMgGiHqozVhco9kJpQSj/x5wqLN9JStpDFD1oMNYiJYfkMjQ1LxZkN/eZpL1D2KUXJhXd8rw==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "rc-motion": "^2.0.1", - "rc-overflow": "^1.0.0", - "rc-trigger": "^5.0.4", - "rc-util": "^5.16.1", - "rc-virtual-list": "^3.2.0" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, - "node_modules/rc-slider": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-10.0.0.tgz", - "integrity": "sha512-Bk54UIKWW4wyhHcL8ehAxt+wX+n69dscnHTX6Uv0FMxSke/TGrlkZz1LSIWblCpfE2zr/dwR2Ca8nZGk3U+Tbg==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.5", - "rc-tooltip": "^5.0.1", - "rc-util": "^5.18.1", - "shallowequal": "^1.1.0" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-steps": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/rc-steps/-/rc-steps-4.1.4.tgz", - "integrity": "sha512-qoCqKZWSpkh/b03ASGx1WhpKnuZcRWmvuW+ZUu4mvMdfvFzVxblTwUM+9aBd0mlEUFmt6GW8FXhMpHkK3Uzp3w==", - "dependencies": { - "@babel/runtime": "^7.10.2", - "classnames": "^2.2.3", - "rc-util": "^5.0.1" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-switch": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/rc-switch/-/rc-switch-3.2.2.tgz", - "integrity": "sha512-+gUJClsZZzvAHGy1vZfnwySxj+MjLlGRyXKXScrtCTcmiYNPzxDFOxdQ/3pK1Kt/0POvwJ/6ALOR8gwdXGhs+A==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.1", - "rc-util": "^5.0.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-table": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.24.2.tgz", - "integrity": "sha512-yefqhtc4V3BeWG2bnDhWYxWX1MOckvW2KU1J55pntZmIGrov5Hx8tQn2gcs6OM0fJ6NgEwUvVEknsCsWI24zUg==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.5", - "rc-resize-observer": "^1.1.0", - "rc-util": "^5.14.0", - "shallowequal": "^1.1.0" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-tabs": { - "version": "11.16.0", - "resolved": "https://registry.npmjs.org/rc-tabs/-/rc-tabs-11.16.0.tgz", - "integrity": "sha512-CIDPv3lHaXSHTJevmFP2eHoD3Hq9psfKbOZYf6D4FYPACloNGHpz44y3RGeJgataQ7omFLrGBm3dOBMUki87tA==", - "dependencies": { - "@babel/runtime": "^7.11.2", - "classnames": "2.x", - "rc-dropdown": "~4.0.0", - "rc-menu": "~9.6.0", - "rc-resize-observer": "^1.0.0", - "rc-util": "^5.5.0" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-textarea": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/rc-textarea/-/rc-textarea-0.3.7.tgz", - "integrity": "sha512-yCdZ6binKmAQB13hc/oehh0E/QRwoPP1pjF21aHBxlgXO3RzPF6dUu4LG2R4FZ1zx/fQd2L1faktulrXOM/2rw==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.1", - "rc-resize-observer": "^1.0.0", - "rc-util": "^5.7.0", - "shallowequal": "^1.1.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-tooltip": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-5.1.1.tgz", - "integrity": "sha512-alt8eGMJulio6+4/uDm7nvV+rJq9bsfxFDCI0ljPdbuoygUscbsMYb6EQgwib/uqsXQUvzk+S7A59uYHmEgmDA==", - "dependencies": { - "@babel/runtime": "^7.11.2", - "rc-trigger": "^5.0.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-tree": { - "version": "5.6.5", - "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-5.6.5.tgz", - "integrity": "sha512-Bnyen46B251APyRZ9D/jYeTnSqbSEvK2AkU5B4vWkNYgUJNPrxO+VMgcDRedP/8N7YcsgdDT9hxqVvNOq7oCAQ==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "rc-motion": "^2.0.1", - "rc-util": "^5.16.1", - "rc-virtual-list": "^3.4.8" - }, - "engines": { - "node": ">=10.x" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, - "node_modules/rc-tree-select": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-5.4.0.tgz", - "integrity": "sha512-reRbOqC7Ic/nQocJAJeCl4n6nJUY3NoqiwRXKvhjgZJU7NGr9vIccXEsY+Lghkw5UMpPoxGsIJB0jiAvM18XYA==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "rc-select": "~14.1.0", - "rc-tree": "~5.6.1", - "rc-util": "^5.16.1" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, - "node_modules/rc-trigger": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/rc-trigger/-/rc-trigger-5.3.1.tgz", - "integrity": "sha512-5gaFbDkYSefZ14j2AdzucXzlWgU2ri5uEjkHvsf1ynRhdJbKxNOnw4PBZ9+FVULNGFiDzzlVF8RJnR9P/xrnKQ==", - "dependencies": { - "@babel/runtime": "^7.18.3", - "classnames": "^2.2.6", - "rc-align": "^4.0.0", - "rc-motion": "^2.0.0", - "rc-util": "^5.19.2" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-trigger/node_modules/@babel/runtime": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.3.tgz", - "integrity": "sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==", - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/rc-upload": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/rc-upload/-/rc-upload-4.3.4.tgz", - "integrity": "sha512-uVbtHFGNjHG/RyAfm9fluXB6pvArAGyAx8z7XzXXyorEgVIWj6mOlriuDm0XowDHYz4ycNK0nE0oP3cbFnzxiQ==", - "dependencies": { - "@babel/runtime": "^7.18.3", - "classnames": "^2.2.5", - "rc-util": "^5.2.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-upload/node_modules/@babel/runtime": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.3.tgz", - "integrity": "sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==", - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/rc-util": { - "version": "5.21.5", - "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.21.5.tgz", - "integrity": "sha512-ip7HqX37Cy/RDl9MlrFp+FbcKnsWZ22sF5MS5eSpYLtg5MpC0TMqGb5ukBatoOhgjnLL+eJGR6e7YAJ/dhK09A==", - "dependencies": { - "@babel/runtime": "^7.18.3", - "react-is": "^16.12.0", - "shallowequal": "^1.1.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-util/node_modules/@babel/runtime": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.3.tgz", - "integrity": "sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==", - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/rc-virtual-list": { - "version": "3.4.8", - "resolved": "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.4.8.tgz", - "integrity": "sha512-qSN+Rv4i/E7RCTvTMr1uZo7f3crJJg/5DekoCagydo9zsXrxj07zsFSxqizqW+ldGA16lwa8So/bIbV9Ofjddg==", - "dependencies": { - "classnames": "^2.2.6", - "rc-resize-observer": "^1.0.0", - "rc-util": "^5.15.0" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" + "node": ">=0.10.0" } }, "node_modules/react": { - "version": "16.14.0", - "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", - "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", + "version": "18.2.0", + "license": "MIT", "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" + "loose-envify": "^1.1.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/react-app-polyfill": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz", - "integrity": "sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w==", + "node_modules/react-blockies": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/react-blockies/-/react-blockies-1.4.1.tgz", + "integrity": "sha512-4N015X5oPNnD3xQPsiqolOFzPZSSWyc5mJhJUZShUCHtiGUxVN+1qsWTcglkHMNySux9hUofaispqcw9QkWP5Q==", "dependencies": { - "core-js": "^3.19.2", - "object-assign": "^4.1.1", - "promise": "^8.1.0", - "raf": "^3.4.1", - "regenerator-runtime": "^0.13.9", - "whatwg-fetch": "^3.6.2" + "prop-types": "^15.5.10" }, - "engines": { - "node": ">=14" - } - }, - "node_modules/react-dev-utils": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", - "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", - "dependencies": { - "@babel/code-frame": "^7.16.0", - "address": "^1.1.2", - "browserslist": "^4.18.1", - "chalk": "^4.1.2", - "cross-spawn": "^7.0.3", - "detect-port-alt": "^1.1.6", - "escape-string-regexp": "^4.0.0", - "filesize": "^8.0.6", - "find-up": "^5.0.0", - "fork-ts-checker-webpack-plugin": "^6.5.0", - "global-modules": "^2.0.0", - "globby": "^11.0.4", - "gzip-size": "^6.0.0", - "immer": "^9.0.7", - "is-root": "^2.1.0", - "loader-utils": "^3.2.0", - "open": "^8.4.0", - "pkg-up": "^3.1.0", - "prompts": "^2.4.2", - "react-error-overlay": "^6.0.11", - "recursive-readdir": "^2.2.2", - "shell-quote": "^1.7.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/react-dev-utils/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/react-dev-utils/node_modules/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==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/node_modules/loader-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", - "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==", - "engines": { - "node": ">= 12.13.0" - } - }, - "node_modules/react-dev-utils/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/react-dev-utils/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==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/react-dev-utils/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/react-dev-utils/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" + "peerDependencies": { + "react": ">=15.0.0" } }, "node_modules/react-dom": { - "version": "16.14.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", - "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", + "version": "18.2.0", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.19.1" + "scheduler": "^0.23.0" }, "peerDependencies": { - "react": "^16.14.0" + "react": "^18.2.0" } }, - "node_modules/react-error-overlay": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", - "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" + "node_modules/react-feather": { + "version": "2.0.10", + "license": "MIT", + "dependencies": { + "prop-types": "^15.7.2" + }, + "peerDependencies": { + "react": ">=16.8.6" + } }, "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==" + "license": "MIT" }, "node_modules/react-refresh": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", - "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==", + "version": "0.13.0", + "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/react-router": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.3.tgz", - "integrity": "sha512-mzQGUvS3bM84TnbtMYR8ZjKnuPJ71IjSzR+DE6UkUqvN4czWIqEs17yLL8xkAycv4ev0AiN+IGrWu88vJs/p2w==", + "version": "6.3.0", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "hoist-non-react-statics": "^3.1.0", - "loose-envify": "^1.3.1", - "mini-create-react-context": "^0.4.0", - "path-to-regexp": "^1.7.0", - "prop-types": "^15.6.2", - "react-is": "^16.6.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" + "history": "^5.2.0" }, "peerDependencies": { - "react": ">=15" + "react": ">=16.8" } }, "node_modules/react-router-dom": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.3.tgz", - "integrity": "sha512-Ov0tGPMBgqmbu5CDmN++tv2HQ9HlWDuWIIqn4b88gjlAN5IHI+4ZUZRcpz9Hl0azFIwihbLDYw1OiHGRo7ZIng==", + "version": "6.3.0", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "loose-envify": "^1.3.1", - "prop-types": "^15.6.2", - "react-router": "5.3.3", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" + "history": "^5.2.0", + "react-router": "6.3.0" }, "peerDependencies": { - "react": ">=15" - } - }, - "node_modules/react-scripts": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz", - "integrity": "sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==", - "dependencies": { - "@babel/core": "^7.16.0", - "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", - "@svgr/webpack": "^5.5.0", - "babel-jest": "^27.4.2", - "babel-loader": "^8.2.3", - "babel-plugin-named-asset-import": "^0.3.8", - "babel-preset-react-app": "^10.0.1", - "bfj": "^7.0.2", - "browserslist": "^4.18.1", - "camelcase": "^6.2.1", - "case-sensitive-paths-webpack-plugin": "^2.4.0", - "css-loader": "^6.5.1", - "css-minimizer-webpack-plugin": "^3.2.0", - "dotenv": "^10.0.0", - "dotenv-expand": "^5.1.0", - "eslint": "^8.3.0", - "eslint-config-react-app": "^7.0.1", - "eslint-webpack-plugin": "^3.1.1", - "file-loader": "^6.2.0", - "fs-extra": "^10.0.0", - "html-webpack-plugin": "^5.5.0", - "identity-obj-proxy": "^3.0.0", - "jest": "^27.4.3", - "jest-resolve": "^27.4.2", - "jest-watch-typeahead": "^1.0.0", - "mini-css-extract-plugin": "^2.4.5", - "postcss": "^8.4.4", - "postcss-flexbugs-fixes": "^5.0.2", - "postcss-loader": "^6.2.1", - "postcss-normalize": "^10.0.1", - "postcss-preset-env": "^7.0.1", - "prompts": "^2.4.2", - "react-app-polyfill": "^3.0.0", - "react-dev-utils": "^12.0.1", - "react-refresh": "^0.11.0", - "resolve": "^1.20.0", - "resolve-url-loader": "^4.0.0", - "sass-loader": "^12.3.0", - "semver": "^7.3.5", - "source-map-loader": "^3.0.0", - "style-loader": "^3.3.1", - "tailwindcss": "^3.0.2", - "terser-webpack-plugin": "^5.2.5", - "webpack": "^5.64.4", - "webpack-dev-server": "^4.6.0", - "webpack-manifest-plugin": "^4.0.2", - "workbox-webpack-plugin": "^6.4.1" - }, - "bin": { - "react-scripts": "bin/react-scripts.js" - }, - "engines": { - "node": ">=14.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - }, - "peerDependencies": { - "react": ">= 16", - "typescript": "^3.2.1 || ^4" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/react-scripts/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/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==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" + "react": ">=16.8", + "react-dom": ">=16.8" } }, "node_modules/readdirp": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", "dependencies": { "picomatch": "^2.2.1" }, @@ -13237,70 +4386,18 @@ "node": ">=8.10.0" } }, - "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==", - "dependencies": { - "minimatch": "3.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/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==" - }, - "node_modules/regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regex-parser": { - "version": "2.2.11", - "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", - "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==" + "license": "MIT" }, "node_modules/regexp.prototype.flags": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz", - "integrity": "sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==", + "version": "1.4.3", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" }, "engines": { "node": ">= 0.4" @@ -13311,8 +4408,8 @@ }, "node_modules/regexpp": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -13320,311 +4417,18 @@ "url": "https://github.com/sponsors/mysticatea" } }, - "node_modules/regexpu-core": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", - "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", - "dependencies": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/registry-auth-token": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", - "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", + "dev": true, + "license": "MIT", "dependencies": { "rc": "^1.1.6", "safe-buffer": "^5.0.1" } }, - "node_modules/registry-url": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", - "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", - "dependencies": { - "rc": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==" - }, - "node_modules/regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/renderkid": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", - "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", - "dependencies": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^6.0.1" - } - }, - "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=", - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, - "node_modules/resize-observer-polyfill": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", - "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" - }, - "node_modules/resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dependencies": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-pathname": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", - "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" - }, - "node_modules/resolve-url-loader": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", - "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==", - "dependencies": { - "adjust-sourcemap-loader": "^4.0.0", - "convert-source-map": "^1.7.0", - "loader-utils": "^2.0.0", - "postcss": "^7.0.35", - "source-map": "0.6.1" - }, - "engines": { - "node": ">=8.9" - }, - "peerDependencies": { - "rework": "1.0.1", - "rework-visit": "1.0.0" - }, - "peerDependenciesMeta": { - "rework": { - "optional": true - }, - "rework-visit": { - "optional": true - } - } - }, - "node_modules/resolve-url-loader/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" - }, - "node_modules/resolve-url-loader/node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", - "engines": { - "node": ">=10" - } - }, - "node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rollup": { - "version": "2.67.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.67.2.tgz", - "integrity": "sha512-hoEiBWwZtf1QdK3jZIq59L0FJj4Fiv4RplCO4pvCRC86qsoFurWB4hKQIjoRf3WvJmk5UZ9b0y5ton+62fC7Tw==", - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=10.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/rollup-plugin-terser": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", - "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", - "dependencies": { - "@babel/code-frame": "^7.10.4", - "jest-worker": "^26.2.1", - "serialize-javascript": "^4.0.0", - "terser": "^5.0.0" - }, - "peerDependencies": { - "rollup": "^2.0.0" - } - }, - "node_modules/rollup-plugin-terser/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" - } - }, - "node_modules/rollup-plugin-terser/node_modules/jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/rollup-plugin-terser/node_modules/serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/rollup-plugin-terser/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" - } - }, - "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==", + "node_modules/registry-auth-token/node_modules/safe-buffer": { + "version": "5.2.1", + "dev": true, "funding": [ { "type": "github", @@ -13639,589 +4443,108 @@ "url": "https://feross.org/support" } ], + "license": "MIT" + }, + "node_modules/registry-url": { + "version": "3.1.0", + "dev": true, + "license": "MIT", "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "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/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/sanitize.css": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-13.0.0.tgz", - "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==" - }, - "node_modules/sass-loader": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", - "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", - "dependencies": { - "klona": "^2.0.4", - "neo-async": "^2.6.2" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "fibers": ">= 3.1.0", - "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", - "sass": "^1.3.0", - "sass-embedded": "*", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "fibers": { - "optional": true - }, - "node-sass": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - } - } - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "node_modules/saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/scheduler": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", - "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "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/scroll-into-view-if-needed": { - "version": "2.2.29", - "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.29.tgz", - "integrity": "sha512-hxpAR6AN+Gh53AdAimHM6C8oTN1ppwVZITihix+WqalywBeFcQ6LdQP5ABNl26nX8GTEL7VT+b8lKpdqq65wXg==", - "dependencies": { - "compute-scroll-into-view": "^1.0.17" - } - }, - "node_modules/select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" - }, - "node_modules/selfsigned": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.0.tgz", - "integrity": "sha512-cUdFiCbKoa1mZ6osuJs2uDHrs0k0oprsKveFiiaBKCNq3SYyb5gs2HxhQyDNLCmL51ZZThqi4YNDpCK6GOP1iQ==", - "dependencies": { - "node-forge": "^1.2.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", - "dependencies": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "1.8.1", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "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==" - }, - "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/serve/-/serve-13.0.2.tgz", - "integrity": "sha512-71R6fKvNgKrqARAag6lYJNnxDzpH7DCNrMuvPY5PLVaC2PDhJsGTj/34o4o4tPWhTuLgEXqvgnAWbATQ9zGZTQ==", - "dependencies": { - "@zeit/schemas": "2.6.0", - "ajv": "6.12.6", - "arg": "2.0.0", - "boxen": "5.1.2", - "chalk": "2.4.1", - "clipboardy": "2.3.0", - "compression": "1.7.3", - "serve-handler": "6.1.3", - "update-check": "1.5.2" - }, - "bin": { - "serve": "bin/serve.js" - } - }, - "node_modules/serve-handler": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.3.tgz", - "integrity": "sha512-FosMqFBNrLyeiIDvP1zgO6YoTzFYHxLDEIavhlmQ+knB2Z7l1t+kGLHkZIDN7UVWqQAmKI3D20A6F6jo3nDd4w==", - "dependencies": { - "bytes": "3.0.0", - "content-disposition": "0.5.2", - "fast-url-parser": "1.1.3", - "mime-types": "2.1.18", - "minimatch": "3.0.4", - "path-is-inside": "1.0.2", - "path-to-regexp": "2.2.1", - "range-parser": "1.2.0" - } - }, - "node_modules/serve-handler/node_modules/content-disposition": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-handler/node_modules/mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-handler/node_modules/mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", - "dependencies": { - "mime-db": "~1.33.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-handler/node_modules/path-to-regexp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", - "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==" - }, - "node_modules/serve-handler/node_modules/range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "dependencies": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-index/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" - }, - "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==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve/node_modules/chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/serve/node_modules/compression": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.3.tgz", - "integrity": "sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==", - "dependencies": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.14", - "debug": "2.6.9", - "on-headers": "~1.0.1", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/shallowequal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" - }, - "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=", - "dependencies": { - "shebang-regex": "^1.0.0" + "rc": "^1.0.1" }, "engines": { "node": ">=0.10.0" } }, - "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=", + "node_modules/require-from-string": { + "version": "2.0.2", + "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/shell-quote": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", - "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==" - }, - "node_modules/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/resolve": { + "version": "1.22.1", + "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/signal-exit": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", - "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==" + "node_modules/resolve-from": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "node_modules/restore-cursor": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, "engines": { "node": ">=8" } }, - "node_modules/sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, - "node_modules/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==" - }, - "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==", + "node_modules/reusify": { + "version": "1.0.4", + "dev": true, + "license": "MIT", "engines": { + "iojs": ">=1.0.0", "node": ">=0.10.0" } }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "engines": { - "node": ">=0.10.0" - } + "node_modules/rfdc": { + "version": "1.3.0", + "dev": true, + "license": "MIT" }, - "node_modules/source-map-loader": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.1.tgz", - "integrity": "sha512-Vp1UsfyPvgujKQzi4pyDiTOnE3E4H+yHvkVRN3c/9PJmQS4CQJExvcDvaX/D+RV+xQben9HJ56jMJS3CgUeWyA==", + "node_modules/rimraf": { + "version": "3.0.2", + "dev": true, + "license": "ISC", "dependencies": { - "abab": "^2.0.5", - "iconv-lite": "^0.6.3", - "source-map-js": "^1.0.1" + "glob": "^7.1.3" }, - "engines": { - "node": ">= 12.13.0" + "bin": { + "rimraf": "bin.js" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/source-map-resolve": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" - } - }, - "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==", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "deprecated": "See https://github.com/lydell/source-map-url#deprecated" - }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" - }, - "node_modules/spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "dependencies": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" + "node_modules/rollup": { + "version": "2.76.0", + "dev": true, + "license": "MIT", + "bin": { + "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "dependencies": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "node_modules/stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "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" - }, - "node_modules/stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dependencies": { - "escape-string-regexp": "^2.0.0" + "node": ">=10.0.0" }, - "engines": { - "node": ">=10" + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/stackframe": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.1.tgz", - "integrity": "sha512-h88QkzREN/hy8eRdyNhhsO7RSJ5oyTqxxmmn0dzBIMUclZsjpfmrsg81vp8mjjAs2vAZ72nyWxRUwSwmh0e4xg==" - }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "engines": { - "node": ">= 0.6" - } - }, - "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==", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string_decoder/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==", + "node_modules/run-parallel": { + "version": "1.2.0", + "dev": true, "funding": [ { "type": "github", @@ -14235,34 +4558,334 @@ "type": "consulting", "url": "https://feross.org/support" } - ] - }, - "node_modules/string-convert": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz", - "integrity": "sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==" - }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + ], + "license": "MIT", "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" + "queue-microtask": "^1.2.2" } }, - "node_modules/string-natural-compare": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", - "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==" + "node_modules/rxjs": { + "version": "7.5.6", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/rxjs/node_modules/tslib": { + "version": "2.4.0", + "dev": true, + "license": "0BSD" + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/sass": { + "version": "1.53.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/scheduler": { + "version": "0.23.0", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "6.3.0", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/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" + } + }, + "node_modules/send/node_modules/debug/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/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/send/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, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve": { + "version": "14.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@zeit/schemas": "2.21.0", + "ajv": "8.11.0", + "arg": "5.0.2", + "boxen": "7.0.0", + "chalk": "5.0.1", + "chalk-template": "0.4.0", + "clipboardy": "3.0.0", + "compression": "1.7.4", + "is-port-reachable": "4.0.0", + "serve-handler": "6.1.3", + "update-check": "1.5.4" + }, + "bin": { + "serve": "build/main.js" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/serve-handler": { + "version": "6.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "3.0.0", + "content-disposition": "0.5.2", + "fast-url-parser": "1.1.3", + "mime-types": "2.1.18", + "minimatch": "3.0.4", + "path-is-inside": "1.0.2", + "path-to-regexp": "2.2.1", + "range-parser": "1.2.0" + } + }, + "node_modules/serve-handler/node_modules/minimatch": { + "version": "3.0.4", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve/node_modules/ajv": { + "version": "8.11.0", + "dev": true, + "license": "MIT", + "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" + } + }, + "node_modules/serve/node_modules/chalk": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/serve/node_modules/json-schema-traverse": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "dev": true, + "license": "ISC" + }, + "node_modules/slash": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/string-argv": { + "version": "0.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.19" + } }, "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, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -14274,21 +4897,21 @@ }, "node_modules/string-width/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, + "license": "MIT" }, "node_modules/string.prototype.matchall": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz", - "integrity": "sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==", + "version": "4.0.7", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", "es-abstract": "^1.19.1", "get-intrinsic": "^1.1.1", - "has-symbols": "^1.0.2", + "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.3.1", + "regexp.prototype.flags": "^1.4.1", "side-channel": "^1.0.4" }, "funding": { @@ -14296,46 +4919,35 @@ } }, "node_modules/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==", + "version": "1.0.5", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/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==", + "version": "1.0.5", + "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "dependencies": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, "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, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -14343,152 +4955,32 @@ "node": ">=8" } }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", - "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", - "engines": { - "node": ">=10" - } - }, - "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=", - "engines": { - "node": ">=0.10.0" - } - }, "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==", - "engines": { - "node": ">=6" - } - }, - "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==", - "dependencies": { - "min-indent": "^1.0.0" - }, + "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "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": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "version": "3.1.1", + "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/style-loader": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.1.tgz", - "integrity": "sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==", - "engines": { - "node": ">= 12.13.0" + "node": ">=8" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/styled-components": { - "version": "5.3.5", - "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.5.tgz", - "integrity": "sha512-ndETJ9RKaaL6q41B69WudeqLzOpY1A/ET/glXkNZ2T7dPjPqpPCXXQjDFYZWwNnE5co0wX+gTCqx9mfxTmSIPg==", - "hasInstallScript": true, - "dependencies": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/traverse": "^7.4.5", - "@emotion/is-prop-valid": "^1.1.0", - "@emotion/stylis": "^0.8.4", - "@emotion/unitless": "^0.7.4", - "babel-plugin-styled-components": ">= 1.12.0", - "css-to-react-native": "^3.0.0", - "hoist-non-react-statics": "^3.0.0", - "shallowequal": "^1.1.0", - "supports-color": "^5.5.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/styled-components" - }, - "peerDependencies": { - "react": ">= 16.8.0", - "react-dom": ">= 16.8.0", - "react-is": ">= 16.8.0" - } - }, - "node_modules/stylehacks": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.0.3.tgz", - "integrity": "sha512-ENcUdpf4yO0E1rubu8rkxI+JGQk4CgjchynZ4bDBJDfqdy+uhTRSWb8/F3Jtu+Bw5MW45Po3/aQGeIyyxgQtxg==", - "dependencies": { - "browserslist": "^4.16.6", - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" + "url": "https://github.com/sponsors/sindresorhus" } }, "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/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==", - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/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" - } - }, - "node_modules/supports-hyperlinks/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==", + "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -14498,8 +4990,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==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -14507,358 +4999,28 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/svg-parser": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", - "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" - }, - "node_modules/svgo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", - "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", - "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", - "dependencies": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/svgo/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/svgo/node_modules/css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "node_modules/svgo/node_modules/css-what": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", - "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/svgo/node_modules/dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "dependencies": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - } - }, - "node_modules/svgo/node_modules/domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "dependencies": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "node_modules/svgo/node_modules/domutils/node_modules/domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" - }, - "node_modules/svgo/node_modules/nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "dependencies": { - "boolbase": "~1.0.0" - } - }, - "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==" - }, - "node_modules/tailwindcss": { - "version": "3.0.23", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.23.tgz", - "integrity": "sha512-+OZOV9ubyQ6oI2BXEhzw4HrqvgcARY38xv3zKcjnWtMIZstEsXdI9xftd1iB7+RbOnj2HOEzkA0OyB5BaSxPQA==", - "dependencies": { - "arg": "^5.0.1", - "chalk": "^4.1.2", - "chokidar": "^3.5.3", - "color-name": "^1.1.4", - "cosmiconfig": "^7.0.1", - "detective": "^5.2.0", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.2.11", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "normalize-path": "^3.0.0", - "object-hash": "^2.2.0", - "postcss": "^8.4.6", - "postcss-js": "^4.0.0", - "postcss-load-config": "^3.1.0", - "postcss-nested": "5.0.6", - "postcss-selector-parser": "^6.0.9", - "postcss-value-parser": "^4.2.0", - "quick-lru": "^5.1.1", - "resolve": "^1.22.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "autoprefixer": "^10.0.2", - "postcss": "^8.0.9" - } - }, - "node_modules/tailwindcss/node_modules/arg": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz", - "integrity": "sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==" - }, - "node_modules/tailwindcss/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==" - }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "engines": { - "node": ">=6" - } - }, - "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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/tempy": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", - "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", - "dependencies": { - "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==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/terser": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz", - "integrity": "sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==", - "dependencies": { - "commander": "^2.20.0", - "source-map": "~0.7.2", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "acorn": "^8.5.0" - }, - "peerDependenciesMeta": { - "acorn": { - "optional": true - } - } - }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz", - "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==", - "dependencies": { - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1", - "terser": "^5.7.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/terser/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==" - }, - "node_modules/terser/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==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/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, + "license": "MIT" }, - "node_modules/throat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==" - }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" - }, - "node_modules/timsort": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=" - }, - "node_modules/tiny-invariant": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.2.0.tgz", - "integrity": "sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg==" - }, - "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==" - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" + "node_modules/through": { + "version": "2.3.8", + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "engines": { "node": ">=4" } }, "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==", + "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -14866,95 +5028,73 @@ "node": ">=8.0" } }, - "node_modules/toggle-selection": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", - "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==" - }, "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" } }, - "node_modules/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==", + "node_modules/ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tough-cookie/node_modules/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": ">= 4.0.0" - } - }, - "node_modules/tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tryer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", - "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==" - }, - "node_modules/tsconfig-paths": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dependencies": { - "minimist": "^1.2.0" + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" }, "bin": { - "json5": "lib/cli.js" + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } } }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "engines": { - "node": ">=4" - } + "node_modules/ts-node/node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true }, "node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + "version": "1.14.1", + "dev": true, + "license": "0BSD" }, "node_modules/tsutils": { "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "license": "MIT", "dependencies": { "tslib": "^1.8.1" }, @@ -14965,15 +5105,10 @@ "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" } }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, "node_modules/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, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -14981,18 +5116,10 @@ "node": ">= 0.8.0" } }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "engines": { - "node": ">=4" - } - }, "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==", + "version": "0.20.2", + "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -15004,6 +5131,7 @@ "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -15012,19 +5140,22 @@ "node": ">= 0.6" } }, - "node_modules/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==", + "node_modules/type-is/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==", + "dev": true, "dependencies": { - "is-typedarray": "^1.0.0" + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" } }, "node_modules/typescript": { - "version": "4.8.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.2.tgz", - "integrity": "sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==", - "peer": true, + "version": "4.7.4", + "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -15034,100 +5165,57 @@ } }, "node_modules/unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "version": "1.0.2", + "dev": true, + "license": "MIT", "dependencies": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", "which-boxed-primitive": "^1.0.2" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", - "engines": { - "node": ">=4" - } - }, - "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==", - "dependencies": { - "crypto-random-string": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "engines": { - "node": ">= 10.0.0" - } - }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, "engines": { "node": ">= 0.8" } }, - "node_modules/unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" - }, - "node_modules/upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "engines": { - "node": ">=4", - "yarn": "*" + "node_modules/update-browserslist-db": { + "version": "1.0.4", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" } }, "node_modules/update-check": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/update-check/-/update-check-1.5.2.tgz", - "integrity": "sha512-1TrmYLuLj/5ZovwUS7fFd1jMH3NnFDN1y1A8dboedIDt7zs/zJMo6TwwlhYKkSeEwzleeiSBV5/3c9ufAQWDaQ==", + "version": "1.5.4", + "dev": true, + "license": "MIT", "dependencies": { "registry-auth-token": "3.3.2", "registry-url": "3.1.0" @@ -15135,541 +5223,99 @@ }, "node_modules/uri-js": { "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "node_modules/util.promisify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", - "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.2", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" - }, "node_modules/utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, "engines": { "node": ">= 0.4.0" } }, - "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==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/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, + "license": "MIT" }, - "node_modules/v8-to-istanbul": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", - "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/v8-to-istanbul/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==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/value-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", - "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true }, "node_modules/vary": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, - "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==", + "node_modules/vite": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-3.0.0.tgz", + "integrity": "sha512-M7phQhY3+fRZa0H+1WzI6N+/onruwPTBTMvaj7TzgZ0v2TE+N2sdLKxJOfOv9CckDWt5C4HmyQP81xB4dwRKzA==", + "dev": true, "dependencies": { - "browser-process-hrtime": "^1.0.0" - } - }, - "node_modules/w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "dependencies": { - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dependencies": { - "makeerror": "1.0.12" - } - }, - "node_modules/watchpack": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", - "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dependencies": { - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "engines": { - "node": ">=10.4" - } - }, - "node_modules/webpack": { - "version": "5.69.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.69.0.tgz", - "integrity": "sha512-E5Fqu89Gu8fR6vejRqu26h8ld/k6/dCVbeGUcuZjc+goQHDfCPU9rER71JmdtBYGmci7Ec2aFEATQ2IVXKy2wg==", - "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.4.1", - "acorn-import-assertions": "^1.7.6", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.9.0", - "es-module-lexer": "^0.9.0", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.3.1", - "webpack-sources": "^3.2.3" + "esbuild": "^0.14.47", + "postcss": "^8.4.14", + "resolve": "^1.22.1", + "rollup": "^2.75.6" }, "bin": { - "webpack": "bin/webpack.js" + "vite": "bin/vite.js" }, "engines": { - "node": ">=10.13.0" + "node": ">=14.18.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "less": "*", + "sass": "*", + "stylus": "*", + "terser": "^5.4.0" }, "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-middleware": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.1.tgz", - "integrity": "sha512-81EujCKkyles2wphtdrnPg/QqegC/AtqNH//mQkBYSMqwFVCQrxM6ktB2O/SPlZy7LqeEfTbV3cZARGQz6umhg==", - "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.4.1", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/webpack-dev-middleware/node_modules/ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", - "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" - } - }, - "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/webpack-dev-middleware/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==" - }, - "node_modules/webpack-dev-middleware/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/webpack-dev-server": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.7.4.tgz", - "integrity": "sha512-nfdsb02Zi2qzkNmgtZjkrMOcXnYZ6FLKcQwpxT7MvmHKc+oTtDsBju8j+NMyAygZ9GW1jMEUpy3itHtqgEhe1A==", - "dependencies": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.2.2", - "ansi-html-community": "^0.0.8", - "bonjour": "^3.5.0", - "chokidar": "^3.5.3", - "colorette": "^2.0.10", - "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", - "default-gateway": "^6.0.3", - "del": "^6.0.0", - "express": "^4.17.1", - "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.0", - "ipaddr.js": "^2.0.1", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "portfinder": "^1.0.28", - "schema-utils": "^4.0.0", - "selfsigned": "^2.0.0", - "serve-index": "^1.9.1", - "sockjs": "^0.3.21", - "spdy": "^4.0.2", - "strip-ansi": "^7.0.0", - "webpack-dev-middleware": "^5.3.1", - "ws": "^8.4.2" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" - }, - "engines": { - "node": ">= 12.13.0" - }, - "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-server/node_modules/ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", - "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" - } - }, - "node_modules/webpack-dev-server/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/webpack-dev-server/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/webpack-dev-server/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==" - }, - "node_modules/webpack-dev-server/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/webpack-dev-server/node_modules/strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", - "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { + "less": { "optional": true }, - "utf-8-validate": { + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "terser": { "optional": true } } }, - "node_modules/webpack-manifest-plugin": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz", - "integrity": "sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==", - "dependencies": { - "tapable": "^2.0.0", - "webpack-sources": "^2.2.0" - }, - "engines": { - "node": ">=12.22.0" - }, - "peerDependencies": { - "webpack": "^4.44.2 || ^5.47.0" - } - }, - "node_modules/webpack-manifest-plugin/node_modules/webpack-sources": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz", - "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==", - "dependencies": { - "source-list-map": "^2.0.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "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==", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack/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==", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/webpack/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dependencies": { - "iconv-lite": "0.4.24" - } - }, - "node_modules/whatwg-encoding/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==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/whatwg-fetch": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", - "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" - }, - "node_modules/whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" - }, - "node_modules/whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "version": "2.0.2", + "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, "bin": { - "which": "bin/which" + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" } }, "node_modules/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, + "license": "MIT", "dependencies": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", @@ -15682,316 +5328,72 @@ } }, "node_modules/widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "version": "4.0.1", + "dev": true, + "license": "MIT", "dependencies": { - "string-width": "^4.0.0" + "string-width": "^5.0.1" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/widest-line/node_modules/ansi-regex": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/widest-line/node_modules/string-width": { + "version": "5.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/widest-line/node_modules/strip-ansi": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, "node_modules/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==", + "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/workbox-background-sync": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.4.2.tgz", - "integrity": "sha512-P7c8uG5X2k+DMICH9xeSA9eUlCOjHHYoB42Rq+RtUpuwBxUOflAXR1zdsMWj81LopE4gjKXlTw7BFd1BDAHo7g==", - "dependencies": { - "idb": "^6.1.4", - "workbox-core": "6.4.2" - } - }, - "node_modules/workbox-broadcast-update": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.4.2.tgz", - "integrity": "sha512-qnBwQyE0+PWFFc/n4ISXINE49m44gbEreJUYt2ldGH3+CNrLmJ1egJOOyUqqu9R4Eb7QrXcmB34ClXG7S37LbA==", - "dependencies": { - "workbox-core": "6.4.2" - } - }, - "node_modules/workbox-build": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.4.2.tgz", - "integrity": "sha512-WMdYLhDIsuzViOTXDH+tJ1GijkFp5khSYolnxR/11zmfhNDtuo7jof72xPGFy+KRpsz6tug39RhivCj77qqO0w==", - "dependencies": { - "@apideck/better-ajv-errors": "^0.3.1", - "@babel/core": "^7.11.1", - "@babel/preset-env": "^7.11.0", - "@babel/runtime": "^7.11.2", - "@rollup/plugin-babel": "^5.2.0", - "@rollup/plugin-node-resolve": "^11.2.1", - "@rollup/plugin-replace": "^2.4.1", - "@surma/rollup-plugin-off-main-thread": "^2.2.3", - "ajv": "^8.6.0", - "common-tags": "^1.8.0", - "fast-json-stable-stringify": "^2.1.0", - "fs-extra": "^9.0.1", - "glob": "^7.1.6", - "lodash": "^4.17.20", - "pretty-bytes": "^5.3.0", - "rollup": "^2.43.1", - "rollup-plugin-terser": "^7.0.0", - "source-map": "^0.8.0-beta.0", - "source-map-url": "^0.4.0", - "stringify-object": "^3.3.0", - "strip-comments": "^2.0.1", - "tempy": "^0.6.0", - "upath": "^1.2.0", - "workbox-background-sync": "6.4.2", - "workbox-broadcast-update": "6.4.2", - "workbox-cacheable-response": "6.4.2", - "workbox-core": "6.4.2", - "workbox-expiration": "6.4.2", - "workbox-google-analytics": "6.4.2", - "workbox-navigation-preload": "6.4.2", - "workbox-precaching": "6.4.2", - "workbox-range-requests": "6.4.2", - "workbox-recipes": "6.4.2", - "workbox-routing": "6.4.2", - "workbox-strategies": "6.4.2", - "workbox-streams": "6.4.2", - "workbox-sw": "6.4.2", - "workbox-window": "6.4.2" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.3.tgz", - "integrity": "sha512-9o+HO2MbJhJHjDYZaDxJmSDckvDpiuItEsrIShV0DXeCshXWRHhqYyU/PKHMkuClOmFnZhRd6wzv4vpDu/dRKg==", - "dependencies": { - "json-schema": "^0.4.0", - "jsonpointer": "^5.0.0", - "leven": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "ajv": ">=8" - } - }, - "node_modules/workbox-build/node_modules/ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", - "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" - } - }, - "node_modules/workbox-build/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==", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/workbox-build/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==" - }, - "node_modules/workbox-build/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==", - "dependencies": { - "whatwg-url": "^7.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/workbox-build/node_modules/tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/workbox-build/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==" - }, - "node_modules/workbox-build/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==", - "dependencies": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, - "node_modules/workbox-cacheable-response": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.4.2.tgz", - "integrity": "sha512-9FE1W/cKffk1AJzImxgEN0ceWpyz1tqNjZVtA3/LAvYL3AC5SbIkhc7ZCO82WmO9IjTfu8Vut2X/C7ViMSF7TA==", - "dependencies": { - "workbox-core": "6.4.2" - } - }, - "node_modules/workbox-core": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.4.2.tgz", - "integrity": "sha512-1U6cdEYPcajRXiboSlpJx6U7TvhIKbxRRerfepAJu2hniKwJ3DHILjpU/zx3yvzSBCWcNJDoFalf7Vgd7ey/rw==" - }, - "node_modules/workbox-expiration": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.4.2.tgz", - "integrity": "sha512-0hbpBj0tDnW+DZOUmwZqntB/8xrXOgO34i7s00Si/VlFJvvpRKg1leXdHHU8ykoSBd6+F2KDcMP3swoCi5guLw==", - "dependencies": { - "idb": "^6.1.4", - "workbox-core": "6.4.2" - } - }, - "node_modules/workbox-google-analytics": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.4.2.tgz", - "integrity": "sha512-u+gxs3jXovPb1oul4CTBOb+T9fS1oZG+ZE6AzS7l40vnyfJV79DaLBvlpEZfXGv3CjMdV1sT/ltdOrKzo7HcGw==", - "dependencies": { - "workbox-background-sync": "6.4.2", - "workbox-core": "6.4.2", - "workbox-routing": "6.4.2", - "workbox-strategies": "6.4.2" - } - }, - "node_modules/workbox-navigation-preload": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.4.2.tgz", - "integrity": "sha512-viyejlCtlKsbJCBHwhSBbWc57MwPXvUrc8P7d+87AxBGPU+JuWkT6nvBANgVgFz6FUhCvRC8aYt+B1helo166g==", - "dependencies": { - "workbox-core": "6.4.2" - } - }, - "node_modules/workbox-precaching": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.4.2.tgz", - "integrity": "sha512-CZ6uwFN/2wb4noHVlALL7UqPFbLfez/9S2GAzGAb0Sk876ul9ukRKPJJ6gtsxfE2HSTwqwuyNVa6xWyeyJ1XSA==", - "dependencies": { - "workbox-core": "6.4.2", - "workbox-routing": "6.4.2", - "workbox-strategies": "6.4.2" - } - }, - "node_modules/workbox-range-requests": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.4.2.tgz", - "integrity": "sha512-SowF3z69hr3Po/w7+xarWfzxJX/3Fo0uSG72Zg4g5FWWnHpq2zPvgbWerBZIa81zpJVUdYpMa3akJJsv+LaO1Q==", - "dependencies": { - "workbox-core": "6.4.2" - } - }, - "node_modules/workbox-recipes": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.4.2.tgz", - "integrity": "sha512-/oVxlZFpAjFVbY+3PoGEXe8qyvtmqMrTdWhbOfbwokNFtUZ/JCtanDKgwDv9x3AebqGAoJRvQNSru0F4nG+gWA==", - "dependencies": { - "workbox-cacheable-response": "6.4.2", - "workbox-core": "6.4.2", - "workbox-expiration": "6.4.2", - "workbox-precaching": "6.4.2", - "workbox-routing": "6.4.2", - "workbox-strategies": "6.4.2" - } - }, - "node_modules/workbox-routing": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.4.2.tgz", - "integrity": "sha512-0ss/n9PAcHjTy4Ad7l2puuod4WtsnRYu9BrmHcu6Dk4PgWeJo1t5VnGufPxNtcuyPGQ3OdnMdlmhMJ57sSrrSw==", - "dependencies": { - "workbox-core": "6.4.2" - } - }, - "node_modules/workbox-strategies": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.4.2.tgz", - "integrity": "sha512-YXh9E9dZGEO1EiPC3jPe2CbztO5WT8Ruj8wiYZM56XqEJp5YlGTtqRjghV+JovWOqkWdR+amJpV31KPWQUvn1Q==", - "dependencies": { - "workbox-core": "6.4.2" - } - }, - "node_modules/workbox-streams": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.4.2.tgz", - "integrity": "sha512-ROEGlZHGVEgpa5bOZefiJEVsi5PsFjJG9Xd+wnDbApsCO9xq9rYFopF+IRq9tChyYzhBnyk2hJxbQVWphz3sog==", - "dependencies": { - "workbox-core": "6.4.2", - "workbox-routing": "6.4.2" - } - }, - "node_modules/workbox-sw": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.4.2.tgz", - "integrity": "sha512-A2qdu9TLktfIM5NE/8+yYwfWu+JgDaCkbo5ikrky2c7r9v2X6DcJ+zSLphNHHLwM/0eVk5XVf1mC5HGhYpMhhg==" - }, - "node_modules/workbox-webpack-plugin": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.4.2.tgz", - "integrity": "sha512-CiEwM6kaJRkx1cP5xHksn13abTzUqMHiMMlp5Eh/v4wRcedgDTyv6Uo8+Hg9MurRbHDosO5suaPyF9uwVr4/CQ==", - "dependencies": { - "fast-json-stable-stringify": "^2.1.0", - "pretty-bytes": "^5.4.1", - "source-map-url": "^0.4.0", - "upath": "^1.2.0", - "webpack-sources": "^1.4.3", - "workbox-build": "6.4.2" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "webpack": "^4.4.0 || ^5.9.0" - } - }, - "node_modules/workbox-webpack-plugin/node_modules/webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "node_modules/workbox-window": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.4.2.tgz", - "integrity": "sha512-KVyRKmrJg7iB+uym/B/CnEUEFG9CvnTU1Bq5xpXHbtgD9l+ShDekSl1wYpqw/O0JfeeQVOFb8CiNfvnwWwqnWQ==", - "dependencies": { - "@types/trusted-types": "^2.0.2", - "workbox-core": "6.4.2" - } - }, "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, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -16004,1548 +5406,375 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi/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": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/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==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/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==" - }, "node_modules/wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "node_modules/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==", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/ws": { - "version": "7.5.7", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", - "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "engines": { - "node": ">=10" - } + "dev": true, + "license": "ISC" }, "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, + "license": "ISC" }, "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "version": "2.1.1", + "dev": true, + "license": "ISC", "engines": { - "node": ">= 6" + "node": ">= 14" } }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, "engines": { - "node": ">=10" - } - }, - "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==", - "engines": { - "node": ">=10" - } - }, - "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==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } } }, "dependencies": { - "@ant-design/colors": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-6.0.0.tgz", - "integrity": "sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ==", + "@ampproject/remapping": { + "version": "2.2.0", + "dev": true, "requires": { - "@ctrl/tinycolor": "^3.4.0" - } - }, - "@ant-design/icons": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-4.7.0.tgz", - "integrity": "sha512-aoB4Z7JA431rt6d4u+8xcNPPCrdufSRMUOpxa1ab6mz1JCQZOEVolj2WVs/tDFmN62zzK30mNelEsprLYsSF3g==", - "requires": { - "@ant-design/colors": "^6.0.0", - "@ant-design/icons-svg": "^4.2.1", - "@babel/runtime": "^7.11.2", - "classnames": "^2.2.6", - "rc-util": "^5.9.4" - } - }, - "@ant-design/icons-svg": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.2.1.tgz", - "integrity": "sha512-EB0iwlKDGpG93hW8f85CTJTs4SvMX7tt5ceupvhALp1IF44SeUFOMhKUOYqpsoYWQKAOuTRDMqn75rEaKDp0Xw==" - }, - "@ant-design/react-slick": { - "version": "0.28.4", - "resolved": "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-0.28.4.tgz", - "integrity": "sha512-j9eAHTn7GxbXUFNknJoHS2ceAsqrQi2j8XykjZE1IXCD8kJF+t28EvhBLniDpbOsBk/3kjalnhriTfZcjBHNqg==", - "requires": { - "@babel/runtime": "^7.10.4", - "classnames": "^2.2.5", - "json2mq": "^0.2.0", - "lodash": "^4.17.21", - "resize-observer-polyfill": "^1.5.0" + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" } }, "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "version": "7.18.6", + "dev": true, "requires": { - "@babel/highlight": "^7.16.7" + "@babel/highlight": "^7.18.6" } }, "@babel/compat-data": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.0.tgz", - "integrity": "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==" + "version": "7.18.8", + "dev": true }, "@babel/core": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.7.tgz", - "integrity": "sha512-aeLaqcqThRNZYmbMqtulsetOQZ/5gbR/dWruUCJcpas4Qoyy+QeagfDsPdMrqwsPRDNxJvBlRiZxxX7THO7qtA==", + "version": "7.18.6", + "dev": true, "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.7", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7", + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.6", + "@babel/helper-compilation-targets": "^7.18.6", + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helpers": "^7.18.6", + "@babel/parser": "^7.18.6", + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.6", + "@babel/types": "^7.18.6", "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": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "@babel/eslint-parser": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.17.0.tgz", - "integrity": "sha512-PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA==", - "requires": { - "eslint-scope": "^5.1.1", - "eslint-visitor-keys": "^2.1.0", + "json5": "^2.2.1", "semver": "^6.3.0" - }, - "dependencies": { - "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==", - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "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==" - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - } } }, "@babel/generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz", - "integrity": "sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==", + "version": "7.18.7", + "dev": true, "requires": { - "@babel/types": "^7.16.8", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" + "@babel/types": "^7.18.7", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" }, "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } } } }, "@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "version": "7.18.6", + "dev": true, "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", - "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", - "requires": { - "@babel/helper-explode-assignable-expression": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" } }, "@babel/helper-compilation-targets": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", - "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", + "version": "7.18.6", + "dev": true, "requires": { - "@babel/compat-data": "^7.16.4", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", + "@babel/compat-data": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.20.2", "semver": "^6.3.0" } }, - "@babel/helper-create-class-features-plugin": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.9.tgz", - "integrity": "sha512-kUjip3gruz6AJKOq5i3nC6CoCEEF/oHH3cp6tOZhB+IyyyPyW0g1Gfsxn3mkk6S08pIA2y8GQh609v9G/5sHVQ==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-member-expression-to-functions": "^7.17.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", - "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^5.0.1" - } - }, - "@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", - "requires": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - } - }, "@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", - "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", - "requires": { - "@babel/types": "^7.16.7" - } + "version": "7.18.6", + "dev": true }, "@babel/helper-function-name": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", - "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", + "version": "7.18.6", + "dev": true, "requires": { - "@babel/template": "^7.16.7", - "@babel/types": "^7.17.0" + "@babel/template": "^7.18.6", + "@babel/types": "^7.18.6" } }, "@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "version": "7.18.6", + "dev": true, "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", - "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", - "requires": { - "@babel/types": "^7.17.0" + "@babel/types": "^7.18.6" } }, "@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "version": "7.18.6", + "dev": true, "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" } }, "@babel/helper-module-transforms": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", - "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", + "version": "7.18.8", + "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", - "requires": { - "@babel/types": "^7.16.7" + "@babel/helper-environment-visitor": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.18.6", + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.8", + "@babel/types": "^7.18.8" } }, "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", - "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-wrap-function": "^7.16.8", - "@babel/types": "^7.16.8" - } - }, - "@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", - "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - } + "version": "7.18.6", + "dev": true }, "@babel/helper-simple-access": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", - "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", + "version": "7.18.6", + "dev": true, "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", - "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", - "requires": { - "@babel/types": "^7.16.0" + "@babel/types": "^7.18.6" } }, "@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "version": "7.18.6", + "dev": true, "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" } }, "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" + "version": "7.18.6", + "dev": true }, "@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==" - }, - "@babel/helper-wrap-function": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", - "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", - "requires": { - "@babel/helper-function-name": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8" - } + "version": "7.18.6", + "dev": true }, "@babel/helpers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.7.tgz", - "integrity": "sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw==", + "version": "7.18.6", + "dev": true, "requires": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.6", + "@babel/types": "^7.18.6" } }, "@babel/highlight": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz", - "integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==", + "version": "7.18.6", + "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, "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": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } + }, + "color-convert": { + "version": "1.9.3", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, "@babel/parser": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.8.tgz", - "integrity": "sha512-i7jDUfrVBWc+7OKcBzEe5n7fbv3i2fWtxKzzCvOjnzSxMfWMigAhtfJ7qzZNGFNMsCCd67+uz553dYKWXPvCKw==" - }, - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", - "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", - "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.7" - } - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", - "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", - "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.7.tgz", - "integrity": "sha512-dgqJJrcZoG/4CkMopzhPJjGxsIe9A8RlkQLnL/Vhhx8AA9ZuaRwGSlscSh42hazc7WSrya/IK7mTeoF0DP9tEw==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - } - }, - "@babel/plugin-proposal-decorators": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.9.tgz", - "integrity": "sha512-EfH2LZ/vPa2wuPwJ26j+kYRkaubf89UlwxKXtxqEm57HrgSEYDB8t4swFP+p8LcI9yiP9ZRJJjo/58hS6BnaDA==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.17.9", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/plugin-syntax-decorators": "^7.17.0", - "charcodes": "^0.2.0" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", - "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", - "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", - "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", - "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", - "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", - "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", - "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", - "requires": { - "@babel/compat-data": "^7.17.0", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.7" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", - "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", - "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", - "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.10", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", - "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", - "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-decorators": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.0.tgz", - "integrity": "sha512-qWe85yCXsvDEluNP0OyeQjH63DlhAR3W7K9BxxU1MvbDb48tgBG+Ao6IJJ6smPDrrVzSQZrbF6donpkFBMcs3A==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-flow": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.7.tgz", - "integrity": "sha512-UDo3YGQO0jH6ytzVwgSLv9i/CzMcUjbKenL67dTrAZPPv6GFAtDhe6jqnvmoKzC/7htNTohhos+onPtDMqJwaQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } + "version": "7.18.8", + "dev": true }, "@babel/plugin-syntax-jsx": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", - "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==", + "version": "7.18.6", + "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz", - "integrity": "sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", - "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", - "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", - "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", - "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", - "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", - "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", - "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.3.tgz", - "integrity": "sha512-dDFzegDYKlPqa72xIlbmSkly5MluLoaC1JswABGktyt6NTXSBcUuse/kWE/wvKFWJHPETpi158qJZFS3JmykJg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", - "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", - "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", - "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-flow-strip-types": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.7.tgz", - "integrity": "sha512-mzmCq3cNsDpZZu9FADYYyfZJIOrSONmHcop2XEKPdBNMa4PDC4eEvcOvzZaCNcjKu72v0XQlA5y1g58aLRXdYg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-flow": "^7.16.7" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", - "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", - "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", - "requires": { - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", - "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", - "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", - "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", - "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz", - "integrity": "sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==", - "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-simple-access": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz", - "integrity": "sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==", - "requires": { - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", - "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", - "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", - "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", - "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", - "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", - "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", - "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-react-constant-elements": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.16.7.tgz", - "integrity": "sha512-lF+cfsyTgwWkcw715J88JhMYJ5GpysYNLhLP1PkvkhTRN7B3e74R/1KsDxFxhRpSn0UUD3IWM4GvdBR2PEbbQQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-react-display-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz", - "integrity": "sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-react-jsx": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.3.tgz", - "integrity": "sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ==", + "version": "7.18.6", + "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-jsx": "^7.16.7", - "@babel/types": "^7.17.0" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-jsx": "^7.18.6", + "@babel/types": "^7.18.6" } }, "@babel/plugin-transform-react-jsx-development": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz", - "integrity": "sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==", + "version": "7.18.6", + "dev": true, "requires": { - "@babel/plugin-transform-react-jsx": "^7.16.7" + "@babel/plugin-transform-react-jsx": "^7.18.6" } }, - "@babel/plugin-transform-react-pure-annotations": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz", - "integrity": "sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA==", + "@babel/plugin-transform-react-jsx-self": { + "version": "7.18.6", + "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" } }, - "@babel/plugin-transform-regenerator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", - "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", + "@babel/plugin-transform-react-jsx-source": { + "version": "7.18.6", + "dev": true, "requires": { - "regenerator-transform": "^0.14.2" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", - "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-runtime": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz", - "integrity": "sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A==", - "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "semver": "^6.3.0" - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", - "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", - "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", - "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", - "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", - "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-typescript": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz", - "integrity": "sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-typescript": "^7.16.7" - } - }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", - "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", - "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/preset-env": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", - "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", - "requires": { - "@babel/compat-data": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.16.7", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.16.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.11", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.16.7", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.16.8", - "@babel/plugin-transform-modules-systemjs": "^7.16.7", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", - "@babel/plugin-transform-new-target": "^7.16.7", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.16.7", - "@babel/plugin-transform-reserved-words": "^7.16.7", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.8", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.20.2", - "semver": "^6.3.0" - } - }, - "@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - } - }, - "@babel/preset-react": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.7.tgz", - "integrity": "sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-react-display-name": "^7.16.7", - "@babel/plugin-transform-react-jsx": "^7.16.7", - "@babel/plugin-transform-react-jsx-development": "^7.16.7", - "@babel/plugin-transform-react-pure-annotations": "^7.16.7" - } - }, - "@babel/preset-typescript": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz", - "integrity": "sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-typescript": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/runtime": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz", - "integrity": "sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==", + "version": "7.18.6", "requires": { "regenerator-runtime": "^0.13.4" } }, "@babel/runtime-corejs3": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.9.tgz", - "integrity": "sha512-WxYHHUWF2uZ7Hp1K+D1xQgbgkGUfA+5UPOegEXGt2Y5SMog/rYCVaifLZDbw8UkNXozEqqrZTy6bglL7xTaCOw==", + "version": "7.18.6", + "dev": true, "requires": { "core-js-pure": "^3.20.2", "regenerator-runtime": "^0.13.4" } }, "@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "version": "7.18.6", + "dev": true, "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.6", + "@babel/types": "^7.18.6" } }, "@babel/traverse": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.8.tgz", - "integrity": "sha512-xe+H7JlvKsDQwXRsBhSnq1/+9c+LlQcCK3Tn/l5sbx02HYns/cn7ibp9+RV1sIUqu7hKg91NWsgHurO9dowITQ==", + "version": "7.18.8", + "dev": true, "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.16.8", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.16.8", - "@babel/types": "^7.16.8", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.7", + "@babel/helper-environment-visitor": "^7.18.6", + "@babel/helper-function-name": "^7.18.6", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.18.8", + "@babel/types": "^7.18.8", "debug": "^4.1.0", "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" - }, - "@csstools/normalize.css": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.0.0.tgz", - "integrity": "sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg==" - }, - "@csstools/postcss-color-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.0.2.tgz", - "integrity": "sha512-uayvFqfa0hITPwVduxRYNL9YBD/anTqula0tu2llalaxblEd7QPuETSN3gB5PvTYxSfd0d8kS4Fypgo5JaUJ6A==", - "requires": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "@csstools/postcss-font-format-keywords": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.0.tgz", - "integrity": "sha512-oO0cZt8do8FdVBX8INftvIA4lUrKUSCcWUf9IwH9IPWOgKT22oAZFXeHLoDK7nhB2SmkNycp5brxfNMRLIhd6Q==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "@csstools/postcss-hwb-function": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.0.tgz", - "integrity": "sha512-VSTd7hGjmde4rTj1rR30sokY3ONJph1reCBTUXqeW1fKwETPy1x4t/XIeaaqbMbC5Xg4SM/lyXZ2S8NELT2TaA==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "@csstools/postcss-ic-unit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.0.tgz", - "integrity": "sha512-i4yps1mBp2ijrx7E96RXrQXQQHm6F4ym1TOD0D69/sjDjZvQ22tqiEvaNw7pFZTUO5b9vWRHzbHzP9+UKuw+bA==", - "requires": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "@csstools/postcss-is-pseudo-class": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.0.tgz", - "integrity": "sha512-WnfZlyuh/CW4oS530HBbrKq0G8BKl/bsNr5NMFoubBFzJfvFRGJhplCgIJYWUidLuL3WJ/zhMtDIyNFTqhx63Q==", - "requires": { - "postcss-selector-parser": "^6.0.9" - } - }, - "@csstools/postcss-normalize-display-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.0.tgz", - "integrity": "sha512-bX+nx5V8XTJEmGtpWTO6kywdS725t71YSLlxWt78XoHUbELWgoCXeOFymRJmL3SU1TLlKSIi7v52EWqe60vJTQ==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "@csstools/postcss-oklab-function": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.0.1.tgz", - "integrity": "sha512-Bnly2FWWSTZX20hDJLYHpurhp1ot+ZGvojLOsrHa9frzOVruOv4oPYMZ6wQomi9KsbZZ+Af/CuRYaGReTyGtEg==", - "requires": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "@csstools/postcss-progressive-custom-properties": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.2.0.tgz", - "integrity": "sha512-YLpFPK5OaLIRKZhUfnrZPT9s9cmtqltIOg7W6jPcxmiDpnZ4lk+odfufZttOAgcg6IHWvNLgcITSLpJxIQB/qQ==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "@ctrl/tinycolor": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.4.1.tgz", - "integrity": "sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw==" - }, - "@emotion/is-prop-valid": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.1.2.tgz", - "integrity": "sha512-3QnhqeL+WW88YjYbQL5gUIkthuMw7a0NGbZ7wfFVk2kg/CK5w8w5FFa0RzWjyY1+sujN0NWbtSHH6OJmWHtJpQ==", - "requires": { - "@emotion/memoize": "^0.7.4" - } - }, - "@emotion/memoize": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.5.tgz", - "integrity": "sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==" - }, - "@emotion/stylis": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", - "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==" - }, - "@emotion/unitless": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", - "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" - }, - "@eslint/eslintrc": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.1.0.tgz", - "integrity": "sha512-C1DfL7XX4nPqGd6jcP01W9pVM1HYCuUkFk1432D7F0v3JSlUIeOYn9oCoi3eoLZ+iwBSb29BMFxxny0YrrEZqg==", - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.3.1", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" }, "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, "globals": { - "version": "13.12.1", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz", - "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==", - "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==" - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } - }, - "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==" - }, - "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==" + "version": "11.12.0", + "dev": true } } }, + "@babel/types": { + "version": "7.18.8", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "to-fast-properties": "^2.0.0" + } + }, + "@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + } + } + }, + "@eslint/eslintrc": { + "version": "1.3.0", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.2", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + } + }, "@humanwhocodes/config-array": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.3.tgz", - "integrity": "sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ==", + "version": "0.9.5", + "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", @@ -17554,250 +5783,39 @@ }, "@humanwhocodes/object-schema": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" + "dev": true }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "@jridgewell/gen-mapping": { + "version": "0.1.1", + "dev": true, "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "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==", - "requires": { - "p-limit": "^2.2.0" - } - } + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==" + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "dev": true }, - "@jest/console": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", - "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0" - } + "@jridgewell/set-array": { + "version": "1.1.2", + "dev": true }, - "@jest/core": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", - "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", - "requires": { - "@jest/console": "^27.5.1", - "@jest/reporters": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^27.5.1", - "jest-config": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-resolve-dependencies": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "jest-watcher": "^27.5.1", - "micromatch": "^4.0.4", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - } + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "dev": true }, - "@jest/environment": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", - "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "@jridgewell/trace-mapping": { + "version": "0.3.14", + "dev": true, "requires": { - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1" - } - }, - "@jest/fake-timers": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", - "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", - "requires": { - "@jest/types": "^27.5.1", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - } - }, - "@jest/globals": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", - "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", - "requires": { - "@jest/environment": "^27.5.1", - "@jest/types": "^27.5.1", - "expect": "^27.5.1" - } - }, - "@jest/reporters": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", - "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-haste-map": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" - } - }, - "@jest/source-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", - "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", - "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", - "requires": { - "@jest/console": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", - "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", - "requires": { - "@jest/test-result": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-runtime": "^27.5.1" - } - }, - "@jest/transform": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", - "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.5.1", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-util": "^27.5.1", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - } - }, - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" } }, "@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==", + "dev": true, "requires": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -17805,435 +5823,78 @@ }, "@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==" + "dev": true }, "@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==", + "dev": true, "requires": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, - "@pmmmwh/react-refresh-webpack-plugin": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.4.tgz", - "integrity": "sha512-zZbZeHQDnoTlt2AF+diQT0wsSXpvWiaIOZwBRdltNFhG1+I3ozyaw7U/nBiUwyJ0D+zwdXp0E3bWOl38Ag2BMw==", - "requires": { - "ansi-html-community": "^0.0.8", - "common-path-prefix": "^3.0.0", - "core-js-pure": "^3.8.1", - "error-stack-parser": "^2.0.6", - "find-up": "^5.0.0", - "html-entities": "^2.1.0", - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0", - "source-map": "^0.7.3" - }, - "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==" - } - } - }, - "@rollup/plugin-babel": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.0.tgz", - "integrity": "sha512-9uIC8HZOnVLrLHxayq/PTzw+uS25E14KPUBh5ktF+18Mjo5yK0ToMMx6epY0uEgkjwJw0aBW4x2horYXh8juWw==", - "requires": { - "@babel/helper-module-imports": "^7.10.4", - "@rollup/pluginutils": "^3.1.0" - } - }, - "@rollup/plugin-node-resolve": { - "version": "11.2.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", - "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", - "requires": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.19.0" - } - }, - "@rollup/plugin-replace": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", - "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", - "requires": { - "@rollup/pluginutils": "^3.1.0", - "magic-string": "^0.25.7" - } - }, "@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "version": "4.2.1", + "dev": true, "requires": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", + "estree-walker": "^2.0.1", "picomatch": "^2.2.2" - }, - "dependencies": { - "@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" - } } }, - "@rushstack/eslint-patch": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.3.tgz", - "integrity": "sha512-WiBSI6JBIhC6LRIsB2Kwh8DsGTlbBU+mLRxJmAe3LjHTdkDpwIbEOZgoXBbZilk/vlfjK8i6nKRAvIRn1XaIMw==" + "@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true }, - "@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "requires": { - "type-detect": "4.0.8" - } + "@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true }, - "@sinonjs/fake-timers": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", - "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", - "requires": { - "@sinonjs/commons": "^1.7.0" - } + "@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true }, - "@surma/rollup-plugin-off-main-thread": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", - "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", - "requires": { - "ejs": "^3.1.6", - "json5": "^2.2.0", - "magic-string": "^0.25.0", - "string.prototype.matchall": "^4.0.6" - } - }, - "@svgr/babel-plugin-add-jsx-attribute": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz", - "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==" - }, - "@svgr/babel-plugin-remove-jsx-attribute": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz", - "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==" - }, - "@svgr/babel-plugin-remove-jsx-empty-expression": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz", - "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==" - }, - "@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz", - "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==" - }, - "@svgr/babel-plugin-svg-dynamic-title": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz", - "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==" - }, - "@svgr/babel-plugin-svg-em-dimensions": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz", - "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==" - }, - "@svgr/babel-plugin-transform-react-native-svg": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz", - "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==" - }, - "@svgr/babel-plugin-transform-svg-component": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz", - "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==" - }, - "@svgr/babel-preset": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz", - "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==", - "requires": { - "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", - "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", - "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", - "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", - "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", - "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", - "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", - "@svgr/babel-plugin-transform-svg-component": "^5.5.0" - } - }, - "@svgr/core": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz", - "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==", - "requires": { - "@svgr/plugin-jsx": "^5.5.0", - "camelcase": "^6.2.0", - "cosmiconfig": "^7.0.0" - } - }, - "@svgr/hast-util-to-babel-ast": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz", - "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==", - "requires": { - "@babel/types": "^7.12.6" - } - }, - "@svgr/plugin-jsx": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz", - "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==", - "requires": { - "@babel/core": "^7.12.3", - "@svgr/babel-preset": "^5.5.0", - "@svgr/hast-util-to-babel-ast": "^5.5.0", - "svg-parser": "^2.0.2" - } - }, - "@svgr/plugin-svgo": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz", - "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==", - "requires": { - "cosmiconfig": "^7.0.0", - "deepmerge": "^4.2.2", - "svgo": "^1.2.2" - } - }, - "@svgr/webpack": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz", - "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==", - "requires": { - "@babel/core": "^7.12.3", - "@babel/plugin-transform-react-constant-elements": "^7.12.1", - "@babel/preset-env": "^7.12.1", - "@babel/preset-react": "^7.12.5", - "@svgr/core": "^5.5.0", - "@svgr/plugin-jsx": "^5.5.0", - "@svgr/plugin-svgo": "^5.5.0", - "loader-utils": "^2.0.0" - } - }, - "@testing-library/dom": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.13.0.tgz", - "integrity": "sha512-9VHgfIatKNXQNaZTtLnalIy0jNZzY35a4S3oi08YAt9Hv1VsfZ/DfA45lM8D/UhtHBGJ4/lGwp0PZkVndRkoOQ==", - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^4.2.0", - "aria-query": "^5.0.0", - "chalk": "^4.1.0", - "dom-accessibility-api": "^0.5.9", - "lz-string": "^1.4.4", - "pretty-format": "^27.0.2" - } - }, - "@testing-library/jest-dom": { - "version": "5.16.4", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.4.tgz", - "integrity": "sha512-Gy+IoFutbMQcky0k+bqqumXZ1cTGswLsFqmNLzNdSKkU9KGV2u9oXhukCbbJ9/LRPKiqwxEE8VpV/+YZlfkPUA==", - "requires": { - "@babel/runtime": "^7.9.2", - "@types/testing-library__jest-dom": "^5.9.1", - "aria-query": "^5.0.0", - "chalk": "^3.0.0", - "css": "^3.0.0", - "css.escape": "^1.5.1", - "dom-accessibility-api": "^0.5.6", - "lodash": "^4.17.15", - "redent": "^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==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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": { - "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==" - }, - "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" - } - } - } - }, - "@testing-library/react": { - "version": "12.1.5", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-12.1.5.tgz", - "integrity": "sha512-OfTXCJUFgjd/digLUuPxa0+/3ZxsQmE7ub9kcbW/wi96Bh3o/p5vrETcBGfP17NWPGqeYYl5LTRpwyGoMC4ysg==", - "requires": { - "@babel/runtime": "^7.12.5", - "@testing-library/dom": "^8.0.0", - "@types/react-dom": "<18.0.0" - } - }, - "@testing-library/user-event": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-7.2.1.tgz", - "integrity": "sha512-oZ0Ib5I4Z2pUEcoo95cT1cr6slco9WY7yiPpG+RGNkj8YcYgJnM7pXmYmorNOReh8MIGcKSqXyeGjxnr8YiZbA==", - "requires": {} - }, - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" - }, - "@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==" - }, - "@types/aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==" - }, - "@types/babel__core": { - "version": "7.1.18", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.18.tgz", - "integrity": "sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ==", - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", - "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", - "requires": { - "@babel/types": "^7.3.0" - } + "@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", + "dev": true }, "@types/body-parser": { "version": "1.19.2", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dev": true, "requires": { "@types/connect": "*", "@types/node": "*" } }, - "@types/bonjour": { - "version": "3.5.10", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", - "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", - "requires": { - "@types/node": "*" - } - }, "@types/connect": { "version": "3.4.35", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dev": true, "requires": { "@types/node": "*" } }, - "@types/connect-history-api-fallback": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", - "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", - "requires": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "@types/eslint": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.29.0.tgz", - "integrity": "sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng==", - "requires": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "@types/eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", - "requires": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==" + "@types/cors": { + "version": "2.8.12", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", + "dev": true }, "@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": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.18", @@ -18242,303 +5903,158 @@ } }, "@types/express-serve-static-core": { - "version": "4.17.28", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", - "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", + "version": "4.17.30", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.30.tgz", + "integrity": "sha512-gstzbTWro2/nFed1WXtf+TtrpwxH7Ggs4RLYTLbeVgIkUQOI3WG/JKjgeOU1zXDvezllupjrf8OPIdvTbIaVOQ==", + "dev": true, "requires": { "@types/node": "*", "@types/qs": "*", "@types/range-parser": "*" } }, - "@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "requires": { - "@types/node": "*" - } - }, - "@types/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" - }, - "@types/http-proxy": { - "version": "1.17.8", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz", - "integrity": "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==", - "requires": { - "@types/node": "*" - } - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" - }, - "@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": { - "@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": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/jest": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-28.1.1.tgz", - "integrity": "sha512-C2p7yqleUKtCkVjlOur9BWVA4HgUQmEj/HWCt5WzZ5mLXrWnyIfl0wGuArc+kBXsy0ZZfLp+7dywB4HtSVYGVA==", - "requires": { - "jest-matcher-utils": "^27.0.0", - "pretty-format": "^27.0.0" - } - }, "@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==" - }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=" + "version": "7.0.11", + "dev": true }, "@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", + "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", + "dev": true }, "@types/node": { - "version": "17.0.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.18.tgz", - "integrity": "sha512-eKj4f/BsN/qcculZiRSujogjvp5O/k4lOW5m35NopjZM/QwLOR075a8pJW5hD+Rtdm2DaCVPENS6KtSQnUD6BA==" - }, - "@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==" - }, - "@types/prettier": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.4.tgz", - "integrity": "sha512-ReVR2rLTV1kvtlWFyuot+d1pkpG2Fw/XKE3PDAdj57rbM97ttSp9JZ2UsP+2EHTylra9cUf6JA7tGwW1INzUrA==" + "version": "18.6.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.6.1.tgz", + "integrity": "sha512-z+2vB6yDt1fNwKOeGbckpmirO+VBDuQqecXkgeIqDlaOtmKn6hPR/viQ8cxCfqLU4fTlvM3+YjM367TukWdxpg==", + "dev": true }, "@types/prop-types": { "version": "15.7.5", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" - }, - "@types/q": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", - "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==" + "dev": true }, "@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==" + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", + "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==" + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", + "dev": true }, "@types/react": { - "version": "17.0.45", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.45.tgz", - "integrity": "sha512-YfhQ22Lah2e3CHPsb93tRwIGNiSwkuz1/blk4e6QrWS0jQzCSNbGLtOEYhPg02W0yGTTmpajp7dCTbBAMN3qsg==", + "version": "18.0.15", + "dev": true, "requires": { "@types/prop-types": "*", "@types/scheduler": "*", "csstype": "^3.0.2" } }, + "@types/react-blockies": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@types/react-blockies/-/react-blockies-1.4.1.tgz", + "integrity": "sha512-aDX0g0hwzdodkGLSDNUQr6gXxwclGjnhS8jhsR8uQhAfe/7i3GZD/NDcSlQ2SiQiLhfRxX3NlY+nvBwf5Y0tTg==", + "dev": true, + "requires": { + "@types/react": "*" + } + }, "@types/react-dom": { - "version": "17.0.17", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.17.tgz", - "integrity": "sha512-VjnqEmqGnasQKV0CWLevqMTXBYG9GbwuE6x3VetERLh0cq2LTptFE73MrQi2S7GkKXCf2GgwItB/melLnxfnsg==", + "version": "18.0.6", + "dev": true, "requires": { - "@types/react": "^17" + "@types/react": "*" } }, - "@types/resolve": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", - "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", - "requires": { - "@types/node": "*" - } - }, - "@types/retry": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", - "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==" - }, "@types/scheduler": { "version": "0.16.2", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", - "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" - }, - "@types/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", - "requires": { - "@types/express": "*" - } + "dev": true }, "@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==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", + "dev": true, "requires": { - "@types/mime": "^1", + "@types/mime": "*", "@types/node": "*" } }, - "@types/sockjs": { - "version": "0.3.33", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", - "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", - "requires": { - "@types/node": "*" - } - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" - }, - "@types/testing-library__jest-dom": { - "version": "5.14.3", - "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.3.tgz", - "integrity": "sha512-oKZe+Mf4ioWlMuzVBaXQ9WDnEm1+umLx0InILg+yvZVBBDmzV5KfZyLrCvadtWcx8+916jLmHafcmqqffl+iIw==", - "requires": { - "@types/jest": "*" - } - }, - "@types/trusted-types": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz", - "integrity": "sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==" - }, - "@types/ws": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.2.2.tgz", - "integrity": "sha512-NOn5eIcgWLOo6qW8AcuLZ7G8PycXu0xTxxkS6Q18VWFxgPUSOwV0pBj2a/4viNZVu25i7RIB7GttdkAIUUXOOg==", - "requires": { - "@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": { - "@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==" - }, "@typescript-eslint/eslint-plugin": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.20.0.tgz", - "integrity": "sha512-fapGzoxilCn3sBtC6NtXZX6+P/Hef7VDbyfGqTTpzYydwhlkevB+0vE0EnmHPVTVSy68GUncyJ/2PcrFBeCo5Q==", + "version": "5.30.6", + "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.20.0", - "@typescript-eslint/type-utils": "5.20.0", - "@typescript-eslint/utils": "5.20.0", - "debug": "^4.3.2", + "@typescript-eslint/scope-manager": "5.30.6", + "@typescript-eslint/type-utils": "5.30.6", + "@typescript-eslint/utils": "5.30.6", + "debug": "^4.3.4", "functional-red-black-tree": "^1.0.1", - "ignore": "^5.1.8", + "ignore": "^5.2.0", "regexpp": "^3.2.0", - "semver": "^7.3.5", + "semver": "^7.3.7", "tsutils": "^3.21.0" }, "dependencies": { "semver": { "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, "requires": { "lru-cache": "^6.0.0" } } } }, - "@typescript-eslint/experimental-utils": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.20.0.tgz", - "integrity": "sha512-w5qtx2Wr9x13Dp/3ic9iGOGmVXK5gMwyc8rwVgZU46K9WTjPZSyPvdER9Ycy+B5lNHvoz+z2muWhUvlTpQeu+g==", - "requires": { - "@typescript-eslint/utils": "5.20.0" - } - }, "@typescript-eslint/parser": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.20.0.tgz", - "integrity": "sha512-UWKibrCZQCYvobmu3/N8TWbEeo/EPQbS41Ux1F9XqPzGuV7pfg6n50ZrFo6hryynD8qOTTfLHtHjjdQtxJ0h/w==", + "version": "5.30.6", + "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.20.0", - "@typescript-eslint/types": "5.20.0", - "@typescript-eslint/typescript-estree": "5.20.0", - "debug": "^4.3.2" + "@typescript-eslint/scope-manager": "5.30.6", + "@typescript-eslint/types": "5.30.6", + "@typescript-eslint/typescript-estree": "5.30.6", + "debug": "^4.3.4" } }, "@typescript-eslint/scope-manager": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.20.0.tgz", - "integrity": "sha512-h9KtuPZ4D/JuX7rpp1iKg3zOH0WNEa+ZIXwpW/KWmEFDxlA/HSfCMhiyF1HS/drTICjIbpA6OqkAhrP/zkCStg==", + "version": "5.30.6", + "dev": true, "requires": { - "@typescript-eslint/types": "5.20.0", - "@typescript-eslint/visitor-keys": "5.20.0" + "@typescript-eslint/types": "5.30.6", + "@typescript-eslint/visitor-keys": "5.30.6" } }, "@typescript-eslint/type-utils": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.20.0.tgz", - "integrity": "sha512-WxNrCwYB3N/m8ceyoGCgbLmuZwupvzN0rE8NBuwnl7APgjv24ZJIjkNzoFBXPRCGzLNkoU/WfanW0exvp/+3Iw==", + "version": "5.30.6", + "dev": true, "requires": { - "@typescript-eslint/utils": "5.20.0", - "debug": "^4.3.2", + "@typescript-eslint/utils": "5.30.6", + "debug": "^4.3.4", "tsutils": "^3.21.0" } }, "@typescript-eslint/types": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.20.0.tgz", - "integrity": "sha512-+d8wprF9GyvPwtoB4CxBAR/s0rpP25XKgnOvMf/gMXYDvlUC3rPFHupdTQ/ow9vn7UDe5rX02ovGYQbv/IUCbg==" + "version": "5.30.6", + "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.20.0.tgz", - "integrity": "sha512-36xLjP/+bXusLMrT9fMMYy1KJAGgHhlER2TqpUVDYUQg4w0q/NW/sg4UGAgVwAqb8V4zYg43KMUpM8vV2lve6w==", + "version": "5.30.6", + "dev": true, "requires": { - "@typescript-eslint/types": "5.20.0", - "@typescript-eslint/visitor-keys": "5.20.0", - "debug": "^4.3.2", - "globby": "^11.0.4", + "@typescript-eslint/types": "5.30.6", + "@typescript-eslint/visitor-keys": "5.30.6", + "debug": "^4.3.4", + "globby": "^11.1.0", "is-glob": "^4.0.3", - "semver": "^7.3.5", + "semver": "^7.3.7", "tsutils": "^3.21.0" }, "dependencies": { "semver": { "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, "requires": { "lru-cache": "^6.0.0" } @@ -18546,22 +6062,20 @@ } }, "@typescript-eslint/utils": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.20.0.tgz", - "integrity": "sha512-lHONGJL1LIO12Ujyx8L8xKbwWSkoUKFSO+0wDAqGXiudWB2EO7WEUT+YZLtVbmOmSllAjLb9tpoIPwpRe5Tn6w==", + "version": "5.30.6", + "dev": true, "requires": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.20.0", - "@typescript-eslint/types": "5.20.0", - "@typescript-eslint/typescript-estree": "5.20.0", + "@typescript-eslint/scope-manager": "5.30.6", + "@typescript-eslint/types": "5.30.6", + "@typescript-eslint/typescript-estree": "5.30.6", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" }, "dependencies": { "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, "requires": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -18569,261 +6083,71 @@ }, "estraverse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + "dev": true } } }, "@typescript-eslint/visitor-keys": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.20.0.tgz", - "integrity": "sha512-1flRpNF+0CAQkMNlTJ6L/Z5jiODG/e5+7mk6XwtPOUS3UrTz3UOiAg9jG2VtKsWI6rZQfy4C6a232QNRZTRGlg==", + "version": "5.30.6", + "dev": true, "requires": { - "@typescript-eslint/types": "5.20.0", - "eslint-visitor-keys": "^3.0.0" + "@typescript-eslint/types": "5.30.6", + "eslint-visitor-keys": "^3.3.0" } }, - "@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "@vitejs/plugin-react": { + "version": "1.3.2", + "dev": true, "requires": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + "@babel/core": "^7.17.10", + "@babel/plugin-transform-react-jsx": "^7.17.3", + "@babel/plugin-transform-react-jsx-development": "^7.16.7", + "@babel/plugin-transform-react-jsx-self": "^7.16.7", + "@babel/plugin-transform-react-jsx-source": "^7.16.7", + "@rollup/pluginutils": "^4.2.1", + "react-refresh": "^0.13.0", + "resolve": "^1.22.0" } }, - "@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==" - }, - "@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==" - }, - "@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==" - }, - "@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==", - "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@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==" - }, - "@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==", - "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" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", - "requires": { - "@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==", - "requires": { - "@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==" - }, - "@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==", - "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" - } - }, - "@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==", - "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" - } - }, - "@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==", - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.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==", - "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" - } - }, - "@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==", - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" - }, - "@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==" - }, "@zeit/schemas": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.6.0.tgz", - "integrity": "sha512-uUrgZ8AxS+Lio0fZKAipJjAh415JyrOZowliZAzmnJSsf7piVL5w+G0+gFJ0KSu3QRhvui/7zuvpLz03YjXAhg==" - }, - "abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==" + "version": "2.21.0", + "dev": true }, "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.34", "negotiator": "0.6.3" + }, + "dependencies": { + "mime-types": { + "version": "2.1.35", + "dev": true, + "requires": { + "mime-db": "1.52.0" + } + } } }, "acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==" - }, - "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": { - "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-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "requires": {} + "version": "8.7.1", + "dev": true }, "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, "requires": {} }, - "acorn-node": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", - "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", - "requires": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" - } - } - }, "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==" - }, - "address": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz", - "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==" - }, - "adjust-sourcemap-loader": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", - "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", - "requires": { - "loader-utils": "^2.0.0", - "regex-parser": "^2.2.11" - } - }, - "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": { - "debug": "4" - } + "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 }, "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" @@ -18831,8 +6155,7 @@ }, "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", @@ -18840,127 +6163,40 @@ "uri-js": "^4.2.2" } }, - "ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "requires": { - "ajv": "^8.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "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==" - } - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "requires": {} - }, "ansi-align": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, "requires": { "string-width": "^4.1.0" } }, "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": { "type-fest": "^0.21.3" + }, + "dependencies": { + "type-fest": { + "version": "0.21.3", + "dev": true + } } }, - "ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==" - }, "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": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "version": "4.3.0", + "dev": true, "requires": { - "color-convert": "^1.9.0" - } - }, - "antd": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/antd/-/antd-4.21.0.tgz", - "integrity": "sha512-p8R5scejlWjAIF/NoJ5JF5OMjLbAlCA7u85cNwbtRQOP+14KQDXZyHMT4C5oc9nhz7xxD/Bry6HhPkUmsRuP7Q==", - "requires": { - "@ant-design/colors": "^6.0.0", - "@ant-design/icons": "^4.7.0", - "@ant-design/react-slick": "~0.28.1", - "@babel/runtime": "^7.12.5", - "@ctrl/tinycolor": "^3.4.0", - "classnames": "^2.2.6", - "copy-to-clipboard": "^3.2.0", - "lodash": "^4.17.21", - "memoize-one": "^6.0.0", - "moment": "^2.29.2", - "rc-cascader": "~3.6.0", - "rc-checkbox": "~2.3.0", - "rc-collapse": "~3.3.0", - "rc-dialog": "~8.8.2", - "rc-drawer": "~4.4.2", - "rc-dropdown": "~4.0.0", - "rc-field-form": "~1.26.1", - "rc-image": "~5.6.0", - "rc-input": "~0.0.1-alpha.5", - "rc-input-number": "~7.3.0", - "rc-mentions": "~1.8.0", - "rc-menu": "~9.6.0", - "rc-motion": "^2.5.1", - "rc-notification": "~4.6.0", - "rc-pagination": "~3.1.16", - "rc-picker": "~2.6.8", - "rc-progress": "~3.3.2", - "rc-rate": "~2.9.0", - "rc-resize-observer": "^1.2.0", - "rc-segmented": "~2.1.0", - "rc-select": "~14.1.1", - "rc-slider": "~10.0.0", - "rc-steps": "~4.1.0", - "rc-switch": "~3.2.0", - "rc-table": "~7.24.0", - "rc-tabs": "~11.16.0", - "rc-textarea": "~0.3.0", - "rc-tooltip": "~5.1.1", - "rc-tree": "~5.6.4", - "rc-tree-select": "~5.4.0", - "rc-trigger": "^5.2.10", - "rc-upload": "~4.3.0", - "rc-util": "^5.20.0", - "scroll-into-view-if-needed": "^2.2.25" + "color-convert": "^2.0.1" } }, "anymatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -18968,69 +6204,48 @@ }, "arch": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", - "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==" + "dev": true }, "arg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arg/-/arg-2.0.0.tgz", - "integrity": "sha512-XxNTUzKnz1ctK3ZIcI2XUPlD96wbHP2nGqkPKpvk/HNRlPveYrXIVSTk9m3LcqOgDPg3B1nMvdV/K8wZd7PG4w==" + "version": "5.0.2", + "dev": true }, "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } + "version": "2.0.1", + "dev": true }, "aria-query": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz", - "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==" + "version": "4.2.2", + "dev": true, + "requires": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + } }, "array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true }, "array-includes": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", - "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "version": "3.1.5", + "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5", "get-intrinsic": "^1.1.1", "is-string": "^1.0.7" } }, - "array-tree-filter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-tree-filter/-/array-tree-filter-2.1.0.tgz", - "integrity": "sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==" - }, "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==" - }, - "array.prototype.flat": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", - "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", - "es-shim-unscopables": "^1.0.0" - } + "dev": true }, "array.prototype.flatmap": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", - "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", + "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -19038,398 +6253,133 @@ "es-shim-unscopables": "^1.0.0" } }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" - }, "ast-types-flow": { "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=" + "dev": true }, - "async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "requires": { - "lodash": "^4.17.14" - } - }, - "async-validator": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.1.1.tgz", - "integrity": "sha512-p4DO/JXwjs8klJyJL8Q2oM4ks5fUTze/h5k10oPPKMiLe1fj3G1QMzPHNmN1Py4ycOk7WlO2DcGXv1qiESJCZA==" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "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==" - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, - "autoprefixer": { - "version": "10.4.2", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.2.tgz", - "integrity": "sha512-9fOPpHKuDW1w/0EKfRmVnxTDt8166MAnLI3mgZ1JCnhNtYWxcJ6Ud5CO/AVOZi/AvFa8DY9RTy3h3+tFBlrrdQ==", - "requires": { - "browserslist": "^4.19.1", - "caniuse-lite": "^1.0.30001297", - "fraction.js": "^4.1.2", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - } + "astral-regex": { + "version": "2.0.0", + "dev": true }, "axe-core": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.1.tgz", - "integrity": "sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw==" - }, - "axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "requires": { - "follow-redirects": "^1.14.0" - } + "version": "4.4.2", + "dev": true }, "axobject-query": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", - "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==" - }, - "babel-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", - "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", - "requires": { - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - } - }, - "babel-loader": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.3.tgz", - "integrity": "sha512-n4Zeta8NC3QAsuyiizu0GkmRcQ6clkV9WFUnUf1iXP//IeSKbWjofW3UHyZVwlOB4y039YQKefawyTn64Zwbuw==", - "requires": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^1.4.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - }, - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "requires": { - "object.assign": "^4.1.0" - } - }, - "babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - } - }, - "babel-plugin-jest-hoist": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", - "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-plugin-macros": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", - "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", - "requires": { - "@babel/runtime": "^7.12.5", - "cosmiconfig": "^7.0.0", - "resolve": "^1.19.0" - } - }, - "babel-plugin-named-asset-import": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz", - "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==", - "requires": {} - }, - "babel-plugin-polyfill-corejs2": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", - "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", - "requires": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.1", - "semver": "^6.1.1" - } - }, - "babel-plugin-polyfill-corejs3": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", - "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1", - "core-js-compat": "^3.21.0" - } - }, - "babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1" - } - }, - "babel-plugin-styled-components": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.0.7.tgz", - "integrity": "sha512-i7YhvPgVqRKfoQ66toiZ06jPNA3p6ierpfUuEWxNF+fV27Uv5gxBkf8KZLHUCc1nFA9j6+80pYoIpqCeyW3/bA==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-module-imports": "^7.16.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "lodash": "^4.17.11", - "picomatch": "^2.3.0" - } - }, - "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": "sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw==" - }, - "babel-plugin-transform-react-remove-prop-types": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", - "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" - }, - "babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "requires": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - } - }, - "babel-preset-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", - "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", - "requires": { - "babel-plugin-jest-hoist": "^27.5.1", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "babel-preset-react-app": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz", - "integrity": "sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg==", - "requires": { - "@babel/core": "^7.16.0", - "@babel/plugin-proposal-class-properties": "^7.16.0", - "@babel/plugin-proposal-decorators": "^7.16.4", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", - "@babel/plugin-proposal-numeric-separator": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.0", - "@babel/plugin-proposal-private-methods": "^7.16.0", - "@babel/plugin-transform-flow-strip-types": "^7.16.0", - "@babel/plugin-transform-react-display-name": "^7.16.0", - "@babel/plugin-transform-runtime": "^7.16.4", - "@babel/preset-env": "^7.16.4", - "@babel/preset-react": "^7.16.0", - "@babel/preset-typescript": "^7.16.0", - "@babel/runtime": "^7.16.3", - "babel-plugin-macros": "^3.1.0", - "babel-plugin-transform-react-remove-prop-types": "^0.4.24" - } + "dev": true }, "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" - }, - "bfj": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.0.2.tgz", - "integrity": "sha512-+e/UqUzwmzJamNF50tBV6tZPTORow7gQ96iFow+8b562OdMpEK0BcJEq2OSPEDmAbSMBQ7PKZ87ubFkgxpYWgw==", - "requires": { - "bluebird": "^3.5.5", - "check-types": "^11.1.1", - "hoopy": "^0.1.4", - "tryer": "^1.0.1" - } - }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" + "version": "1.0.2", + "dev": true }, "binary-extensions": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + "dev": true }, "body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", + "dev": true, "requires": { "bytes": "3.1.2", "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.7", - "raw-body": "2.4.3", - "type-is": "~1.6.18" + "on-finished": "2.4.1", + "qs": "6.10.3", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" }, "dependencies": { "bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "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" } }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true } } }, - "bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "requires": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" - } - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" - }, "boxen": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "version": "7.0.0", + "dev": true, "requires": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.2", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" + "ansi-align": "^3.0.1", + "camelcase": "^7.0.0", + "chalk": "^5.0.1", + "cli-boxes": "^3.0.0", + "string-width": "^5.1.2", + "type-fest": "^2.13.0", + "widest-line": "^4.0.1", + "wrap-ansi": "^8.0.1" }, "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "dev": true + }, + "ansi-styles": { + "version": "6.1.0", + "dev": true + }, + "chalk": { + "version": "5.0.1", + "dev": true + }, + "string-width": { + "version": "5.1.2", + "dev": true, + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + }, + "strip-ansi": { + "version": "7.0.1", + "dev": true, + "requires": { + "ansi-regex": "^6.0.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==" + "version": "2.16.0", + "dev": true + }, + "wrap-ansi": { + "version": "8.0.1", + "dev": true, + "requires": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + } } } }, "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" @@ -19437,61 +6387,28 @@ }, "braces": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, "requires": { "fill-range": "^7.0.1" } }, - "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==" - }, "browserslist": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", - "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", + "version": "4.21.1", + "dev": true, "requires": { - "caniuse-lite": "^1.0.30001286", - "electron-to-chromium": "^1.4.17", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" + "caniuse-lite": "^1.0.30001359", + "electron-to-chromium": "^1.4.172", + "node-releases": "^2.0.5", + "update-browserslist-db": "^1.0.4" } }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "requires": { - "node-int64": "^0.4.0" - } - }, - "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==" - }, - "buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" - }, - "builtin-modules": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", - "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==" - }, "bytes": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + "dev": true }, "call-bind": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, "requires": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -19499,118 +6416,34 @@ }, "callsites": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - }, - "camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "requires": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } + "dev": true }, "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" - }, - "camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==" - }, - "camelize": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz", - "integrity": "sha512-W2lPwkBkMZwFlPCXhIlYgxu+7gC/NUlCtdK652DAJ1JdgV0sTrvuPFshNPrFa1TY2JOkLhgdeEBplB4ezEa+xg==" - }, - "caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "requires": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } + "version": "7.0.0", + "dev": true }, "caniuse-lite": { - "version": "1.0.30001299", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001299.tgz", - "integrity": "sha512-iujN4+x7QzqA2NCSrS5VUy+4gLmRd4xv6vbBBsmfVqTx8bLAD8097euLqQgKxSVLvxjSDcvF1T/i9ocgnUFexw==" - }, - "case-sensitive-paths-webpack-plugin": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", - "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==" + "version": "1.0.30001365", + "dev": true }, "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" - }, - "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" - } - }, - "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": { - "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==" - }, - "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" - } - } } }, - "char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==" - }, - "charcodes": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/charcodes/-/charcodes-0.2.0.tgz", - "integrity": "sha512-Y4kiDb+AM4Ecy58YkuZrrSRJBDQdQ2L+NyS1vHHFtNtUjgutcZfx3yp1dAONI/oPaPmyGfCLx5CxL+zauIMyKQ==" - }, - "check-types": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.1.2.tgz", - "integrity": "sha512-tzWzvgePgLORb9/3a0YenggReLKAIb2owL03H2Xdoe5pKcUyWRSEQ8xfCar8t2SIAuEDwtmx2da1YB52YuHQMQ==" + "chalk-template": { + "version": "0.4.0", + "dev": true, + "requires": { + "chalk": "^4.1.2" + } }, "chokidar": { "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, "requires": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -19620,171 +6453,127 @@ "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" - }, - "dependencies": { - "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": { - "is-glob": "^4.0.1" - } - } - } - }, - "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==" - }, - "ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==" - }, - "cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==" - }, - "classnames": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz", - "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" - }, - "clean-css": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.4.tgz", - "integrity": "sha512-nKseG8wCzEuji/4yrgM/5cthL9oTDc5UOQyFMvW/Q53oP6gLH690o1NbuTh6Y18nujr7BxlsFuS7gXLnLzKJGg==", - "requires": { - "source-map": "~0.6.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-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" + "version": "3.0.0", + "dev": true }, - "clipboardy": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-2.3.0.tgz", - "integrity": "sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==", + "cli-cursor": { + "version": "3.1.0", + "dev": true, "requires": { - "arch": "^2.1.1", - "execa": "^1.0.0", - "is-wsl": "^2.1.1" + "restore-cursor": "^3.1.0" } }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "cli-truncate": { + "version": "3.1.0", + "dev": true, "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - }, - "coa": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", - "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", - "requires": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" + "slice-ansi": "^5.0.0", + "string-width": "^5.0.0" }, "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "ansi-regex": { + "version": "6.0.1", + "dev": true + }, + "string-width": { + "version": "5.1.2", + "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + }, + "strip-ansi": { + "version": "7.0.1", + "dev": true, + "requires": { + "ansi-regex": "^6.0.1" } } } }, - "collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==" + "clipboardy": { + "version": "3.0.0", + "dev": true, + "requires": { + "arch": "^2.2.0", + "execa": "^5.1.1", + "is-wsl": "^2.2.0" + }, + "dependencies": { + "execa": { + "version": "5.1.1", + "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" + } + }, + "human-signals": { + "version": "2.1.0", + "dev": true + }, + "is-stream": { + "version": "2.0.1", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "strip-final-newline": { + "version": "2.0.0", + "dev": true + } + } }, "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==", + "version": "2.0.1", + "dev": true, "requires": { - "color-name": "1.1.3" + "color-name": "~1.1.4" } }, "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "colord": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", - "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==" + "version": "1.1.4", + "dev": true }, "colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==" - }, - "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": { - "delayed-stream": "~1.0.0" - } + "version": "2.0.19", + "dev": true }, "commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" - }, - "common-path-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", - "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==" - }, - "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==" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + "version": "9.3.0", + "dev": true }, "compressible": { "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, "requires": { "mime-db": ">= 1.43.0 < 2" } }, "compression": { "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, "requires": { "accepts": "~1.3.5", "bytes": "3.0.0", @@ -19797,904 +6586,183 @@ "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", + "dev": true } } }, - "compute-scroll-into-view": { - "version": "1.0.17", - "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.17.tgz", - "integrity": "sha512-j4dx+Fb0URmzbwwMUrhqWM2BEWHdFGx+qZ9qqASHRPqvTYdqvWnHg0H1hIbcyLnvgnoNAVMlwkepyqM3DaIFUg==" - }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "confusing-browser-globals": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==" - }, - "connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==" + "dev": true }, "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==", - "requires": { - "safe-buffer": "5.2.1" - }, - "dependencies": { - "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==" - } - } + "version": "0.5.2", + "dev": true }, "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==" + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true }, "convert-source-map": { "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, "requires": { "safe-buffer": "~5.1.1" } }, "cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==" + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true }, "cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "copy-to-clipboard": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz", - "integrity": "sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==", - "requires": { - "toggle-selection": "^1.0.6" - } - }, - "core-js": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.21.1.tgz", - "integrity": "sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig==" - }, - "core-js-compat": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz", - "integrity": "sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==", - "requires": { - "browserslist": "^4.19.1", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" - } - } + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true }, "core-js-pure": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.21.1.tgz", - "integrity": "sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==" + "version": "3.23.4", + "dev": true }, - "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.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, "requires": { - "@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" + "object-assign": "^4", + "vary": "^1" } }, + "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": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "version": "7.0.3", + "dev": true, "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "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==" - }, - "css": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", - "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", - "requires": { - "inherits": "^2.0.4", - "source-map": "^0.6.1", - "source-map-resolve": "^0.6.0" - } - }, - "css-blank-pseudo": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", - "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", - "requires": { - "postcss-selector-parser": "^6.0.9" - } - }, - "css-color-keywords": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", - "integrity": "sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU=" - }, - "css-declaration-sorter": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.1.4.tgz", - "integrity": "sha512-lpfkqS0fctcmZotJGhnxkIyJWvBXgpyi2wsFd4J8VB7wzyrT6Ch/3Q+FMNJpjK4gu1+GN5khOnpU2ZVKrLbhCw==", - "requires": { - "timsort": "^0.3.0" - } - }, - "css-has-pseudo": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", - "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", - "requires": { - "postcss-selector-parser": "^6.0.9" - } - }, - "css-loader": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.6.0.tgz", - "integrity": "sha512-FK7H2lisOixPT406s5gZM1S3l8GrfhEBT3ZiL2UX1Ng1XWs0y2GPllz/OTyvbaHe12VgQrIXIzuEGVlbUhodqg==", - "requires": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.5", - "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", - "postcss-value-parser": "^4.2.0", - "semver": "^7.3.5" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "css-minimizer-webpack-plugin": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", - "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", - "requires": { - "cssnano": "^5.0.6", - "jest-worker": "^27.0.2", - "postcss": "^8.3.5", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1" - }, - "dependencies": { - "ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "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==" - }, - "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - } - } - } - }, - "css-prefers-color-scheme": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", - "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", - "requires": {} - }, - "css-select": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", - "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", - "requires": { - "boolbase": "^1.0.0", - "css-what": "^5.1.0", - "domhandler": "^4.3.0", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - } - }, - "css-select-base-adapter": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", - "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" - }, - "css-to-react-native": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.0.0.tgz", - "integrity": "sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ==", - "requires": { - "camelize": "^1.0.0", - "css-color-keywords": "^1.0.0", - "postcss-value-parser": "^4.0.2" - } - }, - "css-tree": { - "version": "1.0.0-alpha.37", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", - "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", - "requires": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" - } - }, - "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==" - }, - "css.escape": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", - "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==" - }, - "cssdb": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-6.3.1.tgz", - "integrity": "sha512-Ho3gIkGY4O8S3J54fHu7RP5GHWz85McDhimaXEwf7qV0MSPhLM0jdd61zqs1kkadIVDAvfqoku0kArbWaMYolw==" - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" - }, - "cssnano": { - "version": "5.0.17", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.17.tgz", - "integrity": "sha512-fmjLP7k8kL18xSspeXTzRhaFtRI7DL9b8IcXR80JgtnWBpvAzHT7sCR/6qdn0tnxIaINUN6OEQu83wF57Gs3Xw==", - "requires": { - "cssnano-preset-default": "^5.1.12", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" - } - }, - "cssnano-preset-default": { - "version": "5.1.12", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.12.tgz", - "integrity": "sha512-rO/JZYyjW1QNkWBxMGV28DW7d98UDLaF759frhli58QFehZ+D/LSmwQ2z/ylBAe2hUlsIWTq6NYGfQPq65EF9w==", - "requires": { - "css-declaration-sorter": "^6.0.3", - "cssnano-utils": "^3.0.2", - "postcss-calc": "^8.2.0", - "postcss-colormin": "^5.2.5", - "postcss-convert-values": "^5.0.4", - "postcss-discard-comments": "^5.0.3", - "postcss-discard-duplicates": "^5.0.3", - "postcss-discard-empty": "^5.0.3", - "postcss-discard-overridden": "^5.0.4", - "postcss-merge-longhand": "^5.0.6", - "postcss-merge-rules": "^5.0.6", - "postcss-minify-font-values": "^5.0.4", - "postcss-minify-gradients": "^5.0.6", - "postcss-minify-params": "^5.0.5", - "postcss-minify-selectors": "^5.1.3", - "postcss-normalize-charset": "^5.0.3", - "postcss-normalize-display-values": "^5.0.3", - "postcss-normalize-positions": "^5.0.4", - "postcss-normalize-repeat-style": "^5.0.4", - "postcss-normalize-string": "^5.0.4", - "postcss-normalize-timing-functions": "^5.0.3", - "postcss-normalize-unicode": "^5.0.4", - "postcss-normalize-url": "^5.0.5", - "postcss-normalize-whitespace": "^5.0.4", - "postcss-ordered-values": "^5.0.5", - "postcss-reduce-initial": "^5.0.3", - "postcss-reduce-transforms": "^5.0.4", - "postcss-svgo": "^5.0.4", - "postcss-unique-selectors": "^5.0.4" - } - }, - "cssnano-utils": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.0.2.tgz", - "integrity": "sha512-KhprijuQv2sP4kT92sSQwhlK3SJTbDIsxcfIEySB0O+3m9esFOai7dP9bMx5enHAh2MwarVIcnwiWoOm01RIbQ==", - "requires": {} - }, - "csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "requires": { - "css-tree": "^1.1.2" - }, - "dependencies": { - "css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "requires": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - } - }, - "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==" - } - } - }, - "cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" - }, - "cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "requires": { - "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==" - } + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" } }, "csstype": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", - "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" + "dev": true }, "damerau-levenshtein": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" - }, - "data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "requires": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - } - }, - "date-fns": { - "version": "2.28.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", - "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==" + "dev": true }, "dayjs": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.3.tgz", - "integrity": "sha512-xxwlswWOlGhzgQ4TKzASQkUhqERI3egRNqgV4ScR8wlANA/A9tZ7miXa44vTTKEq5l7vWoL5G57bG3zA+Kow0A==" + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.5.tgz", + "integrity": "sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==" }, "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "version": "4.3.4", + "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==" - } - } - }, - "decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==" - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==" - }, - "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=" - }, - "deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "requires": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" } }, "deep-extend": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + "dev": true }, "deep-is": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" - }, - "default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "requires": { - "execa": "^5.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==", - "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==", - "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==" - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" - }, - "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==", - "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==" - }, - "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==", - "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==" - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==" + "dev": true }, "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==", + "version": "1.1.4", + "dev": true, "requires": { - "object-keys": "^1.0.12" + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" } }, - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" - }, - "del": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", - "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", - "requires": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true }, "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true }, - "detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==" - }, - "detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" - }, - "detect-port-alt": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", - "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", - "requires": { - "address": "^1.0.1", - "debug": "^2.6.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - } - } - }, - "detective": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", - "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", - "requires": { - "acorn-node": "^1.6.1", - "defined": "^1.0.0", - "minimist": "^1.1.1" - } - }, - "didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" - }, - "diff-sequences": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", - "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==" + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true }, "dir-glob": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, "requires": { "path-type": "^4.0.0" } }, - "dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" - }, - "dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" - }, - "dns-packet": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", - "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", - "requires": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "requires": { - "buffer-indexof": "^1.0.0" - } - }, "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "version": "2.1.0", + "dev": true, "requires": { "esutils": "^2.0.2" } }, - "dom-accessibility-api": { - "version": "0.5.14", - "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.14.tgz", - "integrity": "sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==" - }, - "dom-align": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/dom-align/-/dom-align-1.12.3.tgz", - "integrity": "sha512-Gj9hZN3a07cbR6zviMUBOMPdWxYhbMI+x+WS0NAIu2zFZmbK8ys9R79g+iG9qLnlCwpFoaB+fKy8Pdv470GsPA==" - }, - "dom-converter": { + "eastasianwidth": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "requires": { - "utila": "~0.4" - } - }, - "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": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" - }, - "domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "requires": { - "webidl-conversions": "^5.0.0" - }, - "dependencies": { - "webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==" - } - } - }, - "domhandler": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", - "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", - "requires": { - "domelementtype": "^2.2.0" - } - }, - "domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, - "dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==" - }, - "dotenv-expand": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", - "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" - }, - "duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + "dev": true }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "ejs": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", - "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", - "requires": { - "jake": "^10.8.5" - } + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true }, "electron-to-chromium": { - "version": "1.4.44", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.44.tgz", - "integrity": "sha512-tHGWiUUmY7GABK8+DNcr474cnZDTzD8x1736SlDosVH8+/vRJeqfaIBAEHFtMjddz/0T4rKKYsxEc8BwQRdBpw==" - }, - "emittery": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==" + "version": "1.4.186", + "dev": true }, "emoji-regex": { "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" + "dev": true }, "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "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": { - "once": "^1.4.0" - } - }, - "enhanced-resolve": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.0.tgz", - "integrity": "sha512-weDYmzbBygL7HzGGS26M3hGQx68vehdEg6VUmqSOaFzXExFqlnKuSvsEJCVGQHScS8CQMbrAqftT+AzzHNt/YA==", - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - } - }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" - }, - "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" - } - }, - "error-stack-parser": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.7.tgz", - "integrity": "sha512-chLOW0ZGRf4s8raLrDxa5sdkvPec5YdvwbFnqJme4rk0rFajP8mPtrDL1+I+CwrQDCjswDA5sREX7jYQDQs9vA==", - "requires": { - "stackframe": "^1.1.1" - } + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true }, "es-abstract": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz", - "integrity": "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==", + "version": "1.20.1", + "dev": true, "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", "get-intrinsic": "^1.1.1", "get-symbol-description": "^1.0.0", "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", "is-callable": "^1.2.4", @@ -20706,104 +6774,78 @@ "object-inspect": "^1.12.0", "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" + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" } }, - "es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==" - }, "es-shim-unscopables": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, "requires": { "has": "^1.0.3" } }, "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==", + "dev": true, "requires": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", "is-symbol": "^1.0.2" } }, + "esbuild": { + "version": "0.14.49", + "dev": true, + "requires": { + "esbuild-android-64": "0.14.49", + "esbuild-android-arm64": "0.14.49", + "esbuild-darwin-64": "0.14.49", + "esbuild-darwin-arm64": "0.14.49", + "esbuild-freebsd-64": "0.14.49", + "esbuild-freebsd-arm64": "0.14.49", + "esbuild-linux-32": "0.14.49", + "esbuild-linux-64": "0.14.49", + "esbuild-linux-arm": "0.14.49", + "esbuild-linux-arm64": "0.14.49", + "esbuild-linux-mips64le": "0.14.49", + "esbuild-linux-ppc64le": "0.14.49", + "esbuild-linux-riscv64": "0.14.49", + "esbuild-linux-s390x": "0.14.49", + "esbuild-netbsd-64": "0.14.49", + "esbuild-openbsd-64": "0.14.49", + "esbuild-sunos-64": "0.14.49", + "esbuild-windows-32": "0.14.49", + "esbuild-windows-64": "0.14.49", + "esbuild-windows-arm64": "0.14.49" + } + }, + "esbuild-darwin-64": { + "version": "0.14.49", + "dev": true, + "optional": 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=" + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "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" - }, - "dependencies": { - "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" - } - }, - "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" - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" - }, - "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" - } - } - } + "version": "4.0.0", + "dev": true }, "eslint": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.9.0.tgz", - "integrity": "sha512-PB09IGwv4F4b0/atrbcMFboF/giawbBLVC7fyDamk5Wtey4Jh2K+rYaBhCAbUyEI4QzB1ly09Uglc9iCtFaG2Q==", + "version": "8.19.0", + "dev": true, "requires": { - "@eslint/eslintrc": "^1.1.0", + "@eslint/eslintrc": "^1.3.0", "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", @@ -20814,14 +6856,14 @@ "eslint-scope": "^7.1.1", "eslint-utils": "^3.0.0", "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.1", + "espree": "^9.3.2", "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": "^6.0.1", - "globals": "^13.6.0", + "globals": "^13.15.0", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", @@ -20830,7 +6872,7 @@ "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", "regexpp": "^3.2.0", @@ -20840,351 +6882,85 @@ "v8-compile-cache": "^2.0.3" }, "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "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==" - }, - "globals": { - "version": "13.12.1", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz", - "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==", - "requires": { - "type-fest": "^0.20.2" - } - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "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==", - "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==" - }, - "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==" - }, - "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==" - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "eslint-config-react-app": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", - "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==", - "requires": { - "@babel/core": "^7.16.0", - "@babel/eslint-parser": "^7.16.3", - "@rushstack/eslint-patch": "^1.1.0", - "@typescript-eslint/eslint-plugin": "^5.5.0", - "@typescript-eslint/parser": "^5.5.0", - "babel-preset-react-app": "^10.0.1", - "confusing-browser-globals": "^1.0.11", - "eslint-plugin-flowtype": "^8.0.3", - "eslint-plugin-import": "^2.25.3", - "eslint-plugin-jest": "^25.3.0", - "eslint-plugin-jsx-a11y": "^6.5.1", - "eslint-plugin-react": "^7.27.1", - "eslint-plugin-react-hooks": "^4.3.0", - "eslint-plugin-testing-library": "^5.0.1" - } - }, - "eslint-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", - "requires": { - "debug": "^3.2.7", - "resolve": "^1.20.0" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - } - } - }, - "eslint-module-utils": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", - "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", - "requires": { - "debug": "^3.2.7", - "find-up": "^2.1.0" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "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=", - "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=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - } - } - }, - "eslint-plugin-flowtype": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", - "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", - "requires": { - "lodash": "^4.17.21", - "string-natural-compare": "^3.0.1" - } - }, - "eslint-plugin-import": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", - "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", - "requires": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.3", - "has": "^1.0.3", - "is-core-module": "^2.8.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.values": "^1.1.5", - "resolve": "^1.22.0", - "tsconfig-paths": "^3.14.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "version": "3.0.0", + "dev": true, "requires": { "esutils": "^2.0.2" } }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "glob-parent": { + "version": "6.0.2", + "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "is-glob": "^4.0.3" } } } }, - "eslint-plugin-jest": { - "version": "25.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz", - "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==", - "requires": { - "@typescript-eslint/experimental-utils": "^5.0.0" - } + "eslint-config-prettier": { + "version": "8.5.0", + "dev": true, + "requires": {} }, "eslint-plugin-jsx-a11y": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz", - "integrity": "sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==", + "version": "6.6.0", + "dev": true, "requires": { - "@babel/runtime": "^7.16.3", + "@babel/runtime": "^7.18.3", "aria-query": "^4.2.2", - "array-includes": "^3.1.4", + "array-includes": "^3.1.5", "ast-types-flow": "^0.0.7", - "axe-core": "^4.3.5", + "axe-core": "^4.4.2", "axobject-query": "^2.2.0", - "damerau-levenshtein": "^1.0.7", + "damerau-levenshtein": "^1.0.8", "emoji-regex": "^9.2.2", "has": "^1.0.3", - "jsx-ast-utils": "^3.2.1", + "jsx-ast-utils": "^3.3.1", "language-tags": "^1.0.5", - "minimatch": "^3.0.4" - }, - "dependencies": { - "aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", - "requires": { - "@babel/runtime": "^7.10.2", - "@babel/runtime-corejs3": "^7.10.2" - } - } + "minimatch": "^3.1.2", + "semver": "^6.3.0" } }, "eslint-plugin-react": { - "version": "7.29.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.29.4.tgz", - "integrity": "sha512-CVCXajliVh509PcZYRFyu/BoUEz452+jtQJq2b3Bae4v3xBUWPLCmtmBM+ZinG4MzwmxJgJ2M5rMqhqLVn7MtQ==", + "version": "7.30.1", + "dev": true, "requires": { - "array-includes": "^3.1.4", - "array.prototype.flatmap": "^1.2.5", + "array-includes": "^3.1.5", + "array.prototype.flatmap": "^1.3.0", "doctrine": "^2.1.0", "estraverse": "^5.3.0", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", "object.entries": "^1.1.5", "object.fromentries": "^2.0.5", - "object.hasown": "^1.1.0", + "object.hasown": "^1.1.1", "object.values": "^1.1.5", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.3", "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.6" + "string.prototype.matchall": "^4.0.7" }, "dependencies": { - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "requires": { - "esutils": "^2.0.2" - } - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, "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==", + "version": "2.0.0-next.4", + "dev": true, "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } } } }, "eslint-plugin-react-hooks": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.4.0.tgz", - "integrity": "sha512-U3RVIfdzJaeKDQKEJbz5p3NW8/L80PCATJAfuojwbaEL+gBjfGdhUcGde+WGUW46Q5sr/NgxevsIiDtNXrvZaQ==", + "version": "4.6.0", + "dev": true, "requires": {} }, - "eslint-plugin-testing-library": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.3.1.tgz", - "integrity": "sha512-OfF4dlG/q6ck6DL3P8Z0FPdK0dU5K57gsBu7eUcaVbwYKaNzjgejnXiM9CCUevppORkvfek+9D3Uj/9ZZ8Vz8g==", - "requires": { - "@typescript-eslint/utils": "^5.13.0" - } - }, "eslint-scope": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, "requires": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -21192,332 +6968,242 @@ }, "eslint-utils": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, "requires": { "eslint-visitor-keys": "^2.0.0" }, "dependencies": { "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==" + "dev": true } } }, "eslint-visitor-keys": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==" - }, - "eslint-webpack-plugin": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.1.1.tgz", - "integrity": "sha512-xSucskTN9tOkfW7so4EaiFIkulWLXwCB/15H917lR6pTv0Zot6/fetFucmENRb7J5whVSFKIvwnrnsa78SG2yg==", - "requires": { - "@types/eslint": "^7.28.2", - "jest-worker": "^27.3.1", - "micromatch": "^4.0.4", - "normalize-path": "^3.0.0", - "schema-utils": "^3.1.1" - } + "dev": true }, "espree": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", - "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", + "version": "9.3.2", + "dev": true, "requires": { - "acorn": "^8.7.0", - "acorn-jsx": "^5.3.1", + "acorn": "^8.7.1", + "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.3.0" } }, - "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" } }, "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": { "estraverse": "^5.2.0" } }, "estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" + "dev": true }, "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" + "version": "2.0.2", + "dev": true }, "esutils": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + "dev": true }, "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true }, "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "version": "6.1.0", + "dev": true, "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" - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=" - }, - "expect": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", - "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", - "requires": { - "@jest/types": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1" + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^3.0.1", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "dependencies": { + "mimic-fn": { + "version": "4.0.0", + "dev": true + }, + "onetime": { + "version": "6.0.0", + "dev": true, + "requires": { + "mimic-fn": "^4.0.0" + } + } } }, "express": { - "version": "4.17.3", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz", - "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", + "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", + "dev": true, "requires": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.19.2", + "body-parser": "1.20.0", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.4.2", + "cookie": "0.5.0", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "~1.1.2", + "depd": "2.0.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "~1.1.2", + "finalhandler": "1.2.0", "fresh": "0.5.2", + "http-errors": "2.0.0", "merge-descriptors": "1.0.1", "methods": "~1.1.2", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", "proxy-addr": "~2.0.7", - "qs": "6.9.7", + "qs": "6.10.3", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", + "send": "0.18.0", + "serve-static": "1.15.0", "setprototypeof": "1.2.0", - "statuses": "~1.5.0", + "statuses": "2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" }, "dependencies": { - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + "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": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, "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 + }, + "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 }, "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==" + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "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-glob": { "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, "requires": { "@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" - }, - "dependencies": { - "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": { - "is-glob": "^4.0.1" - } - } } }, "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=" + "dev": true }, "fast-url-parser": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", - "integrity": "sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0=", + "dev": true, "requires": { "punycode": "^1.3.2" }, "dependencies": { "punycode": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + "dev": true } } }, "fastq": { "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, "requires": { "reusify": "^1.0.4" } }, - "faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "requires": { - "websocket-driver": ">=0.5.1" - } - }, - "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "requires": { - "bser": "2.1.1" - } - }, "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==", + "dev": true, "requires": { "flat-cache": "^3.0.4" } }, - "file-loader": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", - "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", - "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - } - }, - "filelist": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", - "requires": { - "minimatch": "^5.0.1" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "filesize": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", - "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==" - }, "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==", + "dev": true, "requires": { "to-regex-range": "^5.0.1" } }, "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, "requires": { "debug": "2.6.9", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", - "statuses": "~1.5.0", + "statuses": "2.0.1", "unpipe": "~1.0.0" }, "dependencies": { @@ -21525,279 +7211,128 @@ "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": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true } } }, - "find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "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==", - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, "flat-cache": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, "requires": { "flatted": "^3.1.0", "rimraf": "^3.0.2" } }, "flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==" - }, - "follow-redirects": { - "version": "1.14.8", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", - "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==" - }, - "fork-ts-checker-webpack-plugin": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.1.tgz", - "integrity": "sha512-x1wumpHOEf4gDROmKTaB6i4/Q6H3LwmjVO7fIX47vBwlZbtPjU33hgoMuD/Q/y6SU8bnuYSoN6ZQOLshGp0T/g==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@types/json-schema": "^7.0.5", - "chalk": "^4.1.0", - "chokidar": "^3.4.2", - "cosmiconfig": "^6.0.0", - "deepmerge": "^4.2.2", - "fs-extra": "^9.0.0", - "glob": "^7.1.6", - "memfs": "^3.1.2", - "minimatch": "^3.0.4", - "schema-utils": "2.7.0", - "semver": "^7.3.2", - "tapable": "^1.0.0" - }, - "dependencies": { - "cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - } - }, - "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==", - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", - "requires": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" - } - }, - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" - } - } - }, - "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } + "version": "3.2.6", + "dev": true }, "forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" - }, - "fraction.js": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.3.tgz", - "integrity": "sha512-pUHWWt6vHzZZiQJcM6S/0PXfS+g6FM4BF5rj9wZyreivhQPdsh5PpE25VtSNxq80wHS5RfY51Ii+8Z0Zl/pmzg==" + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true }, "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs-monkey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", - "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==" + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true }, "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==" + "dev": true + }, + "function.prototype.name": { + "version": "1.1.5", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } }, "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=" + "dev": true + }, + "functions-have-names": { + "version": "1.2.3", + "dev": true }, "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==" - }, - "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 }, "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "version": "1.1.2", + "dev": true, "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.3" } }, - "get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" - }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==" - }, "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" - } + "version": "6.0.1", + "dev": true }, "get-symbol-description": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, "requires": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.1" } }, "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "version": "7.2.3", + "dev": true, "requires": { "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" } }, "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "version": "5.1.2", + "dev": true, "requires": { - "is-glob": "^4.0.3" - } - }, - "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==" - }, - "global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "requires": { - "global-prefix": "^3.0.0" - } - }, - "global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" + "is-glob": "^4.0.1" } }, "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + "version": "13.16.0", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } }, "globby": { "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, "requires": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -21807,330 +7342,102 @@ "slash": "^3.0.0" } }, - "graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" - }, - "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==", - "requires": { - "duplexer": "^0.1.2" - } - }, - "handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" - }, - "harmony-reflect": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.1.tgz", - "integrity": "sha512-WJTeyp0JzGtHcuMsi7rw2VwtkvLa+JyfEKJCFyfcS0+CDkjQ5lHPu7zEhFZP+PDSRrEgXa5Ah0l1MbgbE41XjA==" - }, "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-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" + "version": "1.0.2", + "dev": true }, "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "version": "4.0.0", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.0", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } }, "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 }, "has-tostringtag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, "requires": { "has-symbols": "^1.0.2" } }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" - }, "history": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", - "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "version": "5.3.0", "requires": { - "@babel/runtime": "^7.1.2", - "loose-envify": "^1.2.0", - "resolve-pathname": "^3.0.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0", - "value-equal": "^1.0.1" + "@babel/runtime": "^7.7.6" } }, - "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" - } - }, - "hoopy": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", - "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==" - }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "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": { - "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" - } - }, - "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" - } - } - } - }, - "html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "requires": { - "whatwg-encoding": "^1.0.5" - } - }, - "html-entities": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.2.tgz", - "integrity": "sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==" - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" - }, - "html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", - "requires": { - "camel-case": "^4.1.2", - "clean-css": "^5.2.2", - "commander": "^8.3.0", - "he": "^1.2.0", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.10.0" - } - }, - "html-webpack-plugin": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", - "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", - "requires": { - "@types/html-minifier-terser": "^6.0.0", - "html-minifier-terser": "^6.0.2", - "lodash": "^4.17.21", - "pretty-error": "^4.0.0", - "tapable": "^2.0.0" - } - }, - "htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" - }, "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==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, "requires": { - "depd": "~1.1.2", + "depd": "2.0.0", "inherits": "2.0.4", "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", + "statuses": "2.0.1", "toidentifier": "1.0.1" } }, - "http-parser-js": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.5.tgz", - "integrity": "sha512-x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA==" - }, - "http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, - "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==", - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - } - }, - "http-proxy-middleware": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.3.tgz", - "integrity": "sha512-1bloEwnrHMnCoO/Gcwbz7eSVvW50KPES01PecpagI+YLNLci4AcuKJrujW4Mc3sBLpFxMSlsLNHS5Nl/lvrTPA==", - "requires": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - } - }, - "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": { - "agent-base": "6", - "debug": "4" - } - }, "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==" + "version": "3.0.1", + "dev": true + }, + "husky": { + "version": "8.0.1", + "dev": true }, "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==", + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - }, - "icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "requires": {} - }, - "idb": { - "version": "6.1.5", - "resolved": "https://registry.npmjs.org/idb/-/idb-6.1.5.tgz", - "integrity": "sha512-IJtugpKkiVXQn5Y+LteyBCNk1N8xpGV3wWZk9EVtZWH8DYkjBn0bX1XnGP9RkyZF0sAcywa6unHqSWKe7q4LGw==" - }, - "identity-obj-proxy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", - "integrity": "sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ=", - "requires": { - "harmony-reflect": "^1.4.6" + "safer-buffer": ">= 2.1.2 < 3" } }, "ignore": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" + "dev": true }, - "immer": { - "version": "9.0.12", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.12.tgz", - "integrity": "sha512-lk7UNmSbAukB5B6dh9fnh5D0bJTOFKxVg2cyJWTYrWRfhLrLMBquONcUs3aFq507hNoIZEDDh8lb8UtOizSMhA==" + "immutable": { + "version": "4.1.0", + "dev": true }, "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": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" - }, - "dependencies": { - "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==" - } - } - }, - "import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" } }, "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 }, "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" @@ -22138,68 +7445,44 @@ }, "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": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + "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" } }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, "ipaddr.js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", - "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==" - }, - "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==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + "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 }, "is-bigint": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, "requires": { "has-bigints": "^1.0.1" } }, "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": { "binary-extensions": "^2.0.0" } }, "is-boolean-object": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, "requires": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -22207,1491 +7490,404 @@ }, "is-callable": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" + "dev": true }, "is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "version": "2.9.0", + "dev": true, "requires": { "has": "^1.0.3" } }, "is-date-object": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, "requires": { "has-tostringtag": "^1.0.0" } }, "is-docker": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" + "dev": true }, "is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + "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==" - }, - "is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==" + "dev": true }, "is-glob": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, "requires": { "is-extglob": "^2.1.1" } }, - "is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=" - }, "is-negative-zero": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==" + "dev": true }, "is-number": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + "dev": true }, "is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "version": "1.0.7", + "dev": true, "requires": { "has-tostringtag": "^1.0.0" } }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" - }, - "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==" - }, - "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==" - }, - "is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==" - }, - "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-port-reachable": { + "version": "4.0.0", + "dev": true }, "is-regex": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, "requires": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" } }, - "is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=" - }, - "is-root": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", - "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==" - }, "is-shared-array-buffer": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, "requires": { "call-bind": "^1.0.2" } }, "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + "version": "3.0.0", + "dev": true }, "is-string": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, "requires": { "has-tostringtag": "^1.0.0" } }, "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" } }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, "is-weakref": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, "requires": { "call-bind": "^1.0.2" } }, "is-wsl": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, "requires": { "is-docker": "^2.0.0" } }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, "isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "dev": true }, - "istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==" - }, - "istanbul-lib-instrument": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", - "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", - "requires": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.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==" - }, - "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" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - } - }, - "istanbul-reports": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", - "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jake": { - "version": "10.8.5", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", - "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", - "requires": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.1", - "minimatch": "^3.0.4" - }, - "dependencies": { - "async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" - } - } - }, - "jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", - "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", - "requires": { - "@jest/core": "^27.5.1", - "import-local": "^3.0.2", - "jest-cli": "^27.5.1" - } - }, - "jest-changed-files": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", - "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", - "requires": { - "@jest/types": "^27.5.1", - "execa": "^5.0.0", - "throat": "^6.0.1" - }, - "dependencies": { - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "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==", - "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==" - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" - }, - "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==", - "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==" - }, - "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==", - "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==" - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "jest-circus": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", - "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", - "requires": { - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - } - }, - "jest-cli": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", - "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", - "requires": { - "@jest/core": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "prompts": "^2.0.1", - "yargs": "^16.2.0" - } - }, - "jest-config": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", - "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", - "requires": { - "@babel/core": "^7.8.0", - "@jest/test-sequencer": "^27.5.1", - "@jest/types": "^27.5.1", - "babel-jest": "^27.5.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.9", - "jest-circus": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-jasmine2": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "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==" - } - } - }, - "jest-diff": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", - "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - } - }, - "jest-docblock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", - "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", - "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", - "requires": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1" - } - }, - "jest-environment-jsdom": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", - "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", - "requires": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1", - "jsdom": "^16.6.0" - } - }, - "jest-environment-node": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", - "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", - "requires": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - } - }, - "jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==" - }, - "jest-haste-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", - "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", - "requires": { - "@jest/types": "^27.5.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^27.5.1", - "jest-serializer": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - } - }, - "jest-jasmine2": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", - "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", - "requires": { - "@jest/environment": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "throat": "^6.0.1" - } - }, - "jest-leak-detector": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", - "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", - "requires": { - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - } - }, - "jest-matcher-utils": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", - "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - } - }, - "jest-message-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", - "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.5.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-mock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", - "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*" - } - }, - "jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "jambonz-ui": { + "version": "0.0.19", + "resolved": "https://registry.npmjs.org/jambonz-ui/-/jambonz-ui-0.0.19.tgz", + "integrity": "sha512-rdn52N6zwaLqedvEypEO6114oZ6HanK0ezCkAlcLMCT11TvmWuiK4pvc2nYR8NqQ+oVaLBdQ4QpUxM4GSwtvgQ==", "requires": {} }, - "jest-regex-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", - "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==" - }, - "jest-resolve": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", - "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", - "requires": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - } - }, - "jest-resolve-dependencies": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", - "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", - "requires": { - "@jest/types": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-snapshot": "^27.5.1" - } - }, - "jest-runner": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", - "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", - "requires": { - "@jest/console": "^27.5.1", - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-leak-detector": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - } - }, - "jest-runtime": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", - "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", - "requires": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/globals": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "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==", - "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==" - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" - }, - "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==", - "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==" - }, - "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==", - "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==" - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "jest-serializer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", - "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.9" - } - }, - "jest-snapshot": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", - "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", - "requires": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "natural-compare": "^1.4.0", - "pretty-format": "^27.5.1", - "semver": "^7.3.2" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - } - }, - "jest-validate": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", - "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", - "requires": { - "@jest/types": "^27.5.1", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "leven": "^3.1.0", - "pretty-format": "^27.5.1" - } - }, - "jest-watch-typeahead": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.0.0.tgz", - "integrity": "sha512-jxoszalAb394WElmiJTFBMzie/RDCF+W7Q29n5LzOPtcoQoHWfdUtHFkbhgf5NwWe8uMOxvKb/g7ea7CshfkTw==", - "requires": { - "ansi-escapes": "^4.3.1", - "chalk": "^4.0.0", - "jest-regex-util": "^27.0.0", - "jest-watcher": "^27.0.0", - "slash": "^4.0.0", - "string-length": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" - }, - "char-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz", - "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==" - }, - "slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==" - }, - "string-length": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", - "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", - "requires": { - "char-regex": "^2.0.0", - "strip-ansi": "^7.0.1" - } - }, - "strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "requires": { - "ansi-regex": "^6.0.1" - } - } - } - }, - "jest-watcher": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", - "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", - "requires": { - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.5.1", - "string-length": "^4.0.1" - } - }, - "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==", - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.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==" - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "version": "4.0.0" }, "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==", + "version": "4.1.0", + "dev": true, "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "requires": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" + "argparse": "^2.0.1" } }, "jsesc": { "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - }, - "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==" - }, - "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==" - }, - "json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + "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-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=" - }, - "json2mq": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz", - "integrity": "sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==", - "requires": { - "string-convert": "^0.2.0" - } + "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==", - "requires": { - "minimist": "^1.2.5" - } - }, - "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", - "universalify": "^2.0.0" - } - }, - "jsonpointer": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.0.tgz", - "integrity": "sha512-PNYZIdMjVIvVgDSYKTT63Y+KZ6IZvGRNNWcxwD+GNnUz1MKPfv30J8ueCjdwcN0nDx2SlshgyB7Oy0epAzVRRg==" + "version": "2.2.1", + "dev": true }, "jsx-ast-utils": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.2.tgz", - "integrity": "sha512-HDAyJ4MNQBboGpUnHAVUNJs6X0lh058s6FuixsFGP7MgJYpD6Vasd6nzSG5iIfXu1zAYlHJ/zsOKNlrenTUBnw==", + "version": "3.3.2", + "dev": true, "requires": { - "array-includes": "^3.1.4", + "array-includes": "^3.1.5", "object.assign": "^4.1.2" } }, - "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==" - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" - }, - "klona": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", - "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==" - }, "language-subtag-registry": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz", - "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==" + "version": "0.3.22", + "dev": true }, "language-tags": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", - "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=", + "dev": true, "requires": { "language-subtag-registry": "~0.3.2" } }, - "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==" - }, "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" } }, "lilconfig": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz", - "integrity": "sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==" + "version": "2.0.5", + "dev": true }, - "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==" - }, - "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==" - }, - "loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "lint-staged": { + "version": "13.0.3", + "dev": true, "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" + "cli-truncate": "^3.1.0", + "colorette": "^2.0.17", + "commander": "^9.3.0", + "debug": "^4.3.4", + "execa": "^6.1.0", + "lilconfig": "2.0.5", + "listr2": "^4.0.5", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-inspect": "^1.12.2", + "pidtree": "^0.6.0", + "string-argv": "^0.3.1", + "yaml": "^2.1.1" } }, - "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==", + "listr2": { + "version": "4.0.5", + "dev": true, "requires": { - "p-locate": "^5.0.0" + "cli-truncate": "^2.1.0", + "colorette": "^2.0.16", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.5.5", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "cli-truncate": { + "version": "2.1.0", + "dev": true, + "requires": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + } + }, + "slice-ansi": { + "version": "3.0.0", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + } } }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" - }, "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==" + "dev": true }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" + "log-update": { + "version": "4.0.0", + "dev": true, + "requires": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "slice-ansi": { + "version": "4.0.0", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + } + } }, "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": { "js-tokens": "^3.0.0 || ^4.0.0" } }, - "lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "requires": { - "tslib": "^2.0.3" - } - }, "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" } }, - "lz-string": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", - "integrity": "sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==" - }, - "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==", - "requires": { - "sourcemap-codec": "^1.4.4" - } - }, - "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==", - "requires": { - "semver": "^6.0.0" - } - }, - "makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "requires": { - "tmpl": "1.0.5" - } - }, - "mdn-data": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", - "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" + "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 }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "memfs": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.1.tgz", - "integrity": "sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw==", - "requires": { - "fs-monkey": "1.0.3" - } - }, - "memoize-one": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", - "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true }, "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-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": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + "dev": true }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true }, "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "version": "4.0.5", + "dev": true, "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "braces": "^3.0.2", + "picomatch": "^2.3.1" } }, "mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true }, "mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" + "version": "1.52.0", + "dev": true }, "mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "version": "2.1.18", + "dev": true, "requires": { - "mime-db": "1.51.0" + "mime-db": "~1.33.0" + }, + "dependencies": { + "mime-db": { + "version": "1.33.0", + "dev": true + } } }, "mimic-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - }, - "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==" - }, - "mini-create-react-context": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz", - "integrity": "sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ==", - "requires": { - "@babel/runtime": "^7.12.1", - "tiny-warning": "^1.0.3" - } - }, - "mini-css-extract-plugin": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.5.3.tgz", - "integrity": "sha512-YseMB8cs8U/KCaAGQoqYmfUuhhGW0a9p9XvWXrxVOkE3/IiISTLw4ALNt7JR5B2eYauFM+PQGSbXMDmVbR7Tfw==", - "requires": { - "schema-utils": "^4.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "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==" - }, - "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - } - } - } - }, - "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 }, "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "3.1.2", + "dev": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "^1.2.5" - } - }, - "moment": { - "version": "2.29.4", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", - "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==" + "dev": true }, "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", - "requires": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" - } - }, - "multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=" + "version": "2.1.2", + "dev": true }, "nanoid": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", - "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.0.tgz", + "integrity": "sha512-IgBP8piMxe/gf73RTQx7hmnhwz0aaEXYakvqZyE302IXW3HyVNhdNGC+O2MwMAVhLEnvXlvKtGbtJf6wvHihCg==", + "dev": true }, "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.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" - }, - "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==" - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" - }, - "no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "requires": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" + "dev": true }, "node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==" + "version": "2.0.6", + "dev": true }, "normalize-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" - }, - "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": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "version": "5.1.0", + "dev": true, "requires": { - "path-key": "^2.0.0" + "path-key": "^4.0.0" + }, + "dependencies": { + "path-key": { + "version": "4.0.0", + "dev": true + } } }, - "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" - } - }, - "nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" - }, "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-hash": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", - "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==" + "version": "4.1.1" }, "object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" - }, - "object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } + "version": "1.12.2", + "dev": true }, "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 }, "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==", + "dev": true, "requires": { "call-bind": "^1.0.0", "define-properties": "^1.1.3", @@ -23701,8 +7897,7 @@ }, "object.entries": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", - "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -23711,18 +7906,7 @@ }, "object.fromentries": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", - "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "object.getownpropertydescriptors": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz", - "integrity": "sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==", + "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -23730,72 +7914,52 @@ } }, "object.hasown": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", - "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", + "version": "1.1.1", + "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" } }, "object.values": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", "es-abstract": "^1.19.1" } }, - "obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" - }, "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, "requires": { "ee-first": "1.1.1" } }, "on-headers": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + "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" } }, "onetime": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, "requires": { "mimic-fn": "^2.1.0" } }, - "open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", - "requires": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.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", @@ -23805,972 +7969,89 @@ "word-wrap": "^1.2.3" } }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "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==", - "requires": { - "p-limit": "^3.0.2" - } - }, "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" } }, - "p-retry": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz", - "integrity": "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==", - "requires": { - "@types/retry": "^0.12.0", - "retry": "^0.13.1" - } - }, - "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==" - }, - "param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, "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": { "callsites": "^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==", - "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" - } - }, - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "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==" + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true }, "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-is-inside": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" + "dev": true }, "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + "version": "3.1.1", + "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 }, "path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", - "requires": { - "isarray": "0.0.1" - } + "version": "2.2.1", + "dev": true }, "path-type": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + "dev": true }, "picocolors": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "dev": true }, "picomatch": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + "dev": true }, - "pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==" - }, - "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==", - "requires": { - "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==", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "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==", - "requires": { - "p-limit": "^2.2.0" - } - } - } - }, - "pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "requires": { - "find-up": "^3.0.0" - }, - "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==", - "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==", - "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==", - "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==", - "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=" - } - } - }, - "portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", - "requires": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - } - } + "pidtree": { + "version": "0.6.0", + "dev": true }, "postcss": { - "version": "8.4.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.6.tgz", - "integrity": "sha512-OovjwIzs9Te46vlEx7+uXB0PLijpwjXGKXjVGGPIGubGpq7uh5Xgf6D6FiJ/SzJMBosHDp6a2hiXOS97iBXcaA==", + "version": "8.4.14", + "dev": true, "requires": { - "nanoid": "^3.2.0", + "nanoid": "^3.3.4", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" - } - }, - "postcss-attribute-case-insensitive": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.0.tgz", - "integrity": "sha512-b4g9eagFGq9T5SWX4+USfVyjIb3liPnjhHHRMP7FMB2kFVpYyfEscV0wP3eaXhKlcHKUut8lt5BGoeylWA/dBQ==", - "requires": { - "postcss-selector-parser": "^6.0.2" - } - }, - "postcss-browser-comments": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz", - "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==", - "requires": {} - }, - "postcss-calc": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", - "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", - "requires": { - "postcss-selector-parser": "^6.0.9", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-clamp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.0.0.tgz", - "integrity": "sha512-FsMmeBZtymFN7Jtlnw9is8I4nB+qEEb/qS0ZLTIqcKiwZyHBq44Yhv29Q+VQsTGHYFqIr/s/9tqvNM7j+j1d+g==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-color-functional-notation": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.2.tgz", - "integrity": "sha512-DXVtwUhIk4f49KK5EGuEdgx4Gnyj6+t2jBSEmxvpIK9QI40tWrpS2Pua8Q7iIZWBrki2QOaeUdEaLPPa91K0RQ==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-color-hex-alpha": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.3.tgz", - "integrity": "sha512-fESawWJCrBV035DcbKRPAVmy21LpoyiXdPTuHUfWJ14ZRjY7Y7PA6P4g8z6LQGYhU1WAxkTxjIjurXzoe68Glw==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-color-rebeccapurple": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.0.2.tgz", - "integrity": "sha512-SFc3MaocHaQ6k3oZaFwH8io6MdypkUtEy/eXzXEB1vEQlO3S3oDc/FSZA8AsS04Z25RirQhlDlHLh3dn7XewWw==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-colormin": { - "version": "5.2.5", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.2.5.tgz", - "integrity": "sha512-+X30aDaGYq81mFqwyPpnYInsZQnNpdxMX0ajlY7AExCexEFkPVV+KrO7kXwayqEWL2xwEbNQ4nUO0ZsRWGnevg==", - "requires": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0", - "colord": "^2.9.1", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-convert-values": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.0.4.tgz", - "integrity": "sha512-bugzSAyjIexdObovsPZu/sBCTHccImJxLyFgeV0MmNBm/Lw5h5XnjfML6gzEmJ3A6nyfCW7hb1JXzcsA4Zfbdw==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-custom-media": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz", - "integrity": "sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g==", - "requires": {} - }, - "postcss-custom-properties": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.4.tgz", - "integrity": "sha512-i6AytuTCoDLJkWN/MtAIGriJz3j7UX6bV7Z5t+KgFz+dwZS15/mlTJY1S0kRizlk6ba0V8u8hN50Fz5Nm7tdZw==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-custom-selectors": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.0.tgz", - "integrity": "sha512-/1iyBhz/W8jUepjGyu7V1OPcGbc636snN1yXEQCinb6Bwt7KxsiU7/bLQlp8GwAXzCh7cobBU5odNn/2zQWR8Q==", - "requires": { - "postcss-selector-parser": "^6.0.4" - } - }, - "postcss-dir-pseudo-class": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.4.tgz", - "integrity": "sha512-I8epwGy5ftdzNWEYok9VjW9whC4xnelAtbajGv4adql4FIF09rnrxnA9Y8xSHN47y7gqFIv10C5+ImsLeJpKBw==", - "requires": { - "postcss-selector-parser": "^6.0.9" - } - }, - "postcss-discard-comments": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.0.3.tgz", - "integrity": "sha512-6W5BemziRoqIdAKT+1QjM4bNcJAQ7z7zk073730NHg4cUXh3/rQHHj7pmYxUB9aGhuRhBiUf0pXvIHkRwhQP0Q==", - "requires": {} - }, - "postcss-discard-duplicates": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.3.tgz", - "integrity": "sha512-vPtm1Mf+kp7iAENTG7jI1MN1lk+fBqL5y+qxyi4v3H+lzsXEdfS3dwUZD45KVhgzDEgduur8ycB4hMegyMTeRw==", - "requires": {} - }, - "postcss-discard-empty": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.0.3.tgz", - "integrity": "sha512-xGJugpaXKakwKI7sSdZjUuN4V3zSzb2Y0LOlmTajFbNinEjTfVs9PFW2lmKBaC/E64WwYppfqLD03P8l9BuueA==", - "requires": {} - }, - "postcss-discard-overridden": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.0.4.tgz", - "integrity": "sha512-3j9QH0Qh1KkdxwiZOW82cId7zdwXVQv/gRXYDnwx5pBtR1sTkU4cXRK9lp5dSdiM0r0OICO/L8J6sV1/7m0kHg==", - "requires": {} - }, - "postcss-double-position-gradients": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.0.tgz", - "integrity": "sha512-oz73I08yMN3oxjj0s8mED1rG+uOYoK3H8N9RjQofyg52KBRNmePJKg3fVwTpL2U5ZFbCzXoZBsUD/CvZdlqE4Q==", - "requires": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-env-function": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.5.tgz", - "integrity": "sha512-gPUJc71ji9XKyl0WSzAalBeEA/89kU+XpffpPxSaaaZ1c48OL36r1Ep5R6+9XAPkIiDlSvVAwP4io12q/vTcvA==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-flexbugs-fixes": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz", - "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==", - "requires": {} - }, - "postcss-focus-visible": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", - "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", - "requires": { - "postcss-selector-parser": "^6.0.9" - } - }, - "postcss-focus-within": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", - "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", - "requires": { - "postcss-selector-parser": "^6.0.9" - } - }, - "postcss-font-variant": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", - "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", - "requires": {} - }, - "postcss-gap-properties": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.3.tgz", - "integrity": "sha512-rPPZRLPmEKgLk/KlXMqRaNkYTUpE7YC+bOIQFN5xcu1Vp11Y4faIXv6/Jpft6FMnl6YRxZqDZG0qQOW80stzxQ==", - "requires": {} - }, - "postcss-image-set-function": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.6.tgz", - "integrity": "sha512-KfdC6vg53GC+vPd2+HYzsZ6obmPqOk6HY09kttU19+Gj1nC3S3XBVEXDHxkhxTohgZqzbUb94bKXvKDnYWBm/A==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-initial": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", - "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", - "requires": {} - }, - "postcss-js": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz", - "integrity": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==", - "requires": { - "camelcase-css": "^2.0.1" - } - }, - "postcss-lab-function": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.1.1.tgz", - "integrity": "sha512-j3Z0WQCimY2tMle++YcmygnnVbt6XdnrCV1FO2IpzaCSmtTF2oO8h4ZYUA1Q+QHYroIiaWPvNHt9uBR4riCksQ==", - "requires": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-load-config": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.3.tgz", - "integrity": "sha512-5EYgaM9auHGtO//ljHH+v/aC/TQ5LHXtL7bQajNAUBKUVKiYE8rYpFms7+V26D9FncaGe2zwCoPQsFKb5zF/Hw==", - "requires": { - "lilconfig": "^2.0.4", - "yaml": "^1.10.2" - } - }, - "postcss-loader": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", - "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", - "requires": { - "cosmiconfig": "^7.0.0", - "klona": "^2.0.5", - "semver": "^7.3.5" }, "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.0" - } + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true } } }, - "postcss-logical": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", - "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", - "requires": {} - }, - "postcss-media-minmax": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", - "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", - "requires": {} - }, - "postcss-merge-longhand": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.0.6.tgz", - "integrity": "sha512-rkmoPwQO6ymJSmWsX6l2hHeEBQa7C4kJb9jyi5fZB1sE8nSCv7sqchoYPixRwX/yvLoZP2y6FA5kcjiByeJqDg==", - "requires": { - "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.0.3" - } - }, - "postcss-merge-rules": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.6.tgz", - "integrity": "sha512-nzJWJ9yXWp8AOEpn/HFAW72WKVGD2bsLiAmgw4hDchSij27bt6TF+sIK0cJUBAYT3SGcjtGGsOR89bwkkMuMgQ==", - "requires": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^3.0.2", - "postcss-selector-parser": "^6.0.5" - } - }, - "postcss-minify-font-values": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.0.4.tgz", - "integrity": "sha512-RN6q3tyuEesvyCYYFCRGJ41J1XFvgV+dvYGHr0CeHv8F00yILlN8Slf4t8XW4IghlfZYCeyRrANO6HpJ948ieA==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-minify-gradients": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.6.tgz", - "integrity": "sha512-E/dT6oVxB9nLGUTiY/rG5dX9taugv9cbLNTFad3dKxOO+BQg25Q/xo2z2ddG+ZB1CbkZYaVwx5blY8VC7R/43A==", - "requires": { - "colord": "^2.9.1", - "cssnano-utils": "^3.0.2", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-minify-params": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.5.tgz", - "integrity": "sha512-YBNuq3Rz5LfLFNHb9wrvm6t859b8qIqfXsWeK7wROm3jSKNpO1Y5e8cOyBv6Acji15TgSrAwb3JkVNCqNyLvBg==", - "requires": { - "browserslist": "^4.16.6", - "cssnano-utils": "^3.0.2", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-minify-selectors": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.1.3.tgz", - "integrity": "sha512-9RJfTiQEKA/kZhMaEXND893nBqmYQ8qYa/G+uPdVnXF6D/FzpfI6kwBtWEcHx5FqDbA79O9n6fQJfrIj6M8jvQ==", - "requires": { - "postcss-selector-parser": "^6.0.5" - } - }, - "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==", - "requires": {} - }, - "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==", - "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==", - "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==", - "requires": { - "icss-utils": "^5.0.0" - } - }, - "postcss-nested": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz", - "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==", - "requires": { - "postcss-selector-parser": "^6.0.6" - } - }, - "postcss-nesting": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.1.2.tgz", - "integrity": "sha512-dJGmgmsvpzKoVMtDMQQG/T6FSqs6kDtUDirIfl4KnjMCiY9/ETX8jdKyCd20swSRAbUYkaBKV20pxkzxoOXLqQ==", - "requires": { - "postcss-selector-parser": "^6.0.8" - } - }, - "postcss-normalize": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-10.0.1.tgz", - "integrity": "sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==", - "requires": { - "@csstools/normalize.css": "*", - "postcss-browser-comments": "^4", - "sanitize.css": "*" - } - }, - "postcss-normalize-charset": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.0.3.tgz", - "integrity": "sha512-iKEplDBco9EfH7sx4ut7R2r/dwTnUqyfACf62Unc9UiyFuI7uUqZZtY+u+qp7g8Qszl/U28HIfcsI3pEABWFfA==", - "requires": {} - }, - "postcss-normalize-display-values": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.3.tgz", - "integrity": "sha512-FIV5FY/qs4Ja32jiDb5mVj5iWBlS3N8tFcw2yg98+8MkRgyhtnBgSC0lxU+16AMHbjX5fbSJgw5AXLMolonuRQ==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-positions": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.0.4.tgz", - "integrity": "sha512-qynirjBX0Lc73ROomZE3lzzmXXTu48/QiEzKgMeqh28+MfuHLsuqC9po4kj84igZqqFGovz8F8hf44hA3dPYmQ==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-repeat-style": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.4.tgz", - "integrity": "sha512-Innt+wctD7YpfeDR7r5Ik6krdyppyAg2HBRpX88fo5AYzC1Ut/l3xaxACG0KsbX49cO2n5EB13clPwuYVt8cMA==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-string": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.0.4.tgz", - "integrity": "sha512-Dfk42l0+A1CDnVpgE606ENvdmksttLynEqTQf5FL3XGQOyqxjbo25+pglCUvziicTxjtI2NLUR6KkxyUWEVubQ==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-timing-functions": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.3.tgz", - "integrity": "sha512-QRfjvFh11moN4PYnJ7hia4uJXeFotyK3t2jjg8lM9mswleGsNw2Lm3I5wO+l4k1FzK96EFwEVn8X8Ojrp2gP4g==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-unicode": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.4.tgz", - "integrity": "sha512-W79Regn+a+eXTzB+oV/8XJ33s3pDyFTND2yDuUCo0Xa3QSy1HtNIfRVPXNubHxjhlqmMFADr3FSCHT84ITW3ig==", - "requires": { - "browserslist": "^4.16.6", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-url": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.0.5.tgz", - "integrity": "sha512-Ws3tX+PcekYlXh+ycAt0wyzqGthkvVtZ9SZLutMVvHARxcpu4o7vvXcNoiNKyjKuWecnjS6HDI3fjBuDr5MQxQ==", - "requires": { - "normalize-url": "^6.0.1", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-whitespace": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.4.tgz", - "integrity": "sha512-wsnuHolYZjMwWZJoTC9jeI2AcjA67v4UuidDrPN9RnX8KIZfE+r2Nd6XZRwHVwUiHmRvKQtxiqo64K+h8/imaw==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-opacity-percentage": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.2.tgz", - "integrity": "sha512-lyUfF7miG+yewZ8EAk9XUBIlrHyUE6fijnesuz+Mj5zrIHIEw6KcIZSOk/elVMqzLvREmXB83Zi/5QpNRYd47w==" - }, - "postcss-ordered-values": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.0.5.tgz", - "integrity": "sha512-mfY7lXpq+8bDEHfP+muqibDPhZ5eP9zgBEF9XRvoQgXcQe2Db3G1wcvjbnfjXG6wYsl+0UIjikqq4ym1V2jGMQ==", - "requires": { - "cssnano-utils": "^3.0.2", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-overflow-shorthand": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.3.tgz", - "integrity": "sha512-CxZwoWup9KXzQeeIxtgOciQ00tDtnylYIlJBBODqkgS/PU2jISuWOL/mYLHmZb9ZhZiCaNKsCRiLp22dZUtNsg==", - "requires": {} - }, - "postcss-page-break": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", - "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", - "requires": {} - }, - "postcss-place": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.4.tgz", - "integrity": "sha512-MrgKeiiu5OC/TETQO45kV3npRjOFxEHthsqGtkh3I1rPbZSbXGD/lZVi9j13cYh+NA8PIAPyk6sGjT9QbRyvSg==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-preset-env": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.4.1.tgz", - "integrity": "sha512-UvBVvPJ2vb4odAtckSbryndyBz+Me1q8wawqq0qznpDXy188I+8W5Sa929sCPqw2/NSYnqpHJbo41BKso3+I9A==", - "requires": { - "@csstools/postcss-color-function": "^1.0.2", - "@csstools/postcss-font-format-keywords": "^1.0.0", - "@csstools/postcss-hwb-function": "^1.0.0", - "@csstools/postcss-ic-unit": "^1.0.0", - "@csstools/postcss-is-pseudo-class": "^2.0.0", - "@csstools/postcss-normalize-display-values": "^1.0.0", - "@csstools/postcss-oklab-function": "^1.0.1", - "@csstools/postcss-progressive-custom-properties": "^1.2.0", - "autoprefixer": "^10.4.2", - "browserslist": "^4.19.1", - "css-blank-pseudo": "^3.0.3", - "css-has-pseudo": "^3.0.4", - "css-prefers-color-scheme": "^6.0.3", - "cssdb": "^6.3.1", - "postcss-attribute-case-insensitive": "^5.0.0", - "postcss-clamp": "^4.0.0", - "postcss-color-functional-notation": "^4.2.2", - "postcss-color-hex-alpha": "^8.0.3", - "postcss-color-rebeccapurple": "^7.0.2", - "postcss-custom-media": "^8.0.0", - "postcss-custom-properties": "^12.1.4", - "postcss-custom-selectors": "^6.0.0", - "postcss-dir-pseudo-class": "^6.0.4", - "postcss-double-position-gradients": "^3.1.0", - "postcss-env-function": "^4.0.5", - "postcss-focus-visible": "^6.0.4", - "postcss-focus-within": "^5.0.4", - "postcss-font-variant": "^5.0.0", - "postcss-gap-properties": "^3.0.3", - "postcss-image-set-function": "^4.0.6", - "postcss-initial": "^4.0.1", - "postcss-lab-function": "^4.1.1", - "postcss-logical": "^5.0.4", - "postcss-media-minmax": "^5.0.0", - "postcss-nesting": "^10.1.2", - "postcss-opacity-percentage": "^1.1.2", - "postcss-overflow-shorthand": "^3.0.3", - "postcss-page-break": "^3.0.4", - "postcss-place": "^7.0.4", - "postcss-pseudo-class-any-link": "^7.1.1", - "postcss-replace-overflow-wrap": "^4.0.0", - "postcss-selector-not": "^5.0.0" - } - }, - "postcss-pseudo-class-any-link": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.1.tgz", - "integrity": "sha512-JRoLFvPEX/1YTPxRxp1JO4WxBVXJYrSY7NHeak5LImwJ+VobFMwYDQHvfTXEpcn+7fYIeGkC29zYFhFWIZD8fg==", - "requires": { - "postcss-selector-parser": "^6.0.9" - } - }, - "postcss-reduce-initial": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.0.3.tgz", - "integrity": "sha512-c88TkSnQ/Dnwgb4OZbKPOBbCaauwEjbECP5uAuFPOzQ+XdjNjRH7SG0dteXrpp1LlIFEKK76iUGgmw2V0xeieA==", - "requires": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0" - } - }, - "postcss-reduce-transforms": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.4.tgz", - "integrity": "sha512-VIJB9SFSaL8B/B7AXb7KHL6/GNNbbCHslgdzS9UDfBZYIA2nx8NLY7iD/BXFSO/1sRUILzBTfHCoW5inP37C5g==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-replace-overflow-wrap": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", - "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", - "requires": {} - }, - "postcss-selector-not": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-5.0.0.tgz", - "integrity": "sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ==", - "requires": { - "balanced-match": "^1.0.0" - } - }, - "postcss-selector-parser": { - "version": "6.0.9", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz", - "integrity": "sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==", - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "postcss-svgo": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.0.4.tgz", - "integrity": "sha512-yDKHvULbnZtIrRqhZoA+rxreWpee28JSRH/gy9727u0UCgtpv1M/9WEWY3xySlFa0zQJcqf6oCBJPR5NwkmYpg==", - "requires": { - "postcss-value-parser": "^4.2.0", - "svgo": "^2.7.0" - }, - "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==" - }, - "css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "requires": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - } - }, - "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==" - }, - "svgo": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", - "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", - "requires": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" - } - } - } - }, - "postcss-unique-selectors": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.0.4.tgz", - "integrity": "sha512-5ampwoSDJCxDPoANBIlMgoBcYUHnhaiuLYJR5pj1DLnYQvMRVyFuTA5C3Bvt+aHtiqWpJkD/lXT50Vo1D0ZsAQ==", - "requires": { - "postcss-selector-parser": "^6.0.5" - } - }, - "postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" - }, "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 }, - "pretty-bytes": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", - "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==" - }, - "pretty-error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", - "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", - "requires": { - "lodash": "^4.17.20", - "renderkid": "^3.0.0" - } - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "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==" - }, - "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==" - } - } - }, - "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==" - }, - "promise": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz", - "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==", - "requires": { - "asap": "~2.0.6" - } - }, - "prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } + "prettier": { + "version": "2.7.1", + "dev": true }, "prop-types": { "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", "requires": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -24781,85 +8062,41 @@ "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": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" - }, - "dependencies": { - "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==" - } - } - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "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==" - }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" + "dev": true }, "qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==" + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } }, "queue-microtask": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" - }, - "quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" - }, - "raf": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", - "requires": { - "performance-now": "^2.1.0" - } - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "requires": { - "safe-buffer": "^5.1.0" - } + "dev": true }, "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==" + "version": "1.2.0", + "dev": true }, "raw-body": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz", - "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, "requires": { "bytes": "3.1.2", - "http-errors": "1.8.1", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" }, @@ -24867,1118 +8104,240 @@ "bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true } } }, "rc": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, "requires": { "deep-extend": "^0.6.0", "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" - } - }, - "rc-align": { - "version": "4.0.12", - "resolved": "https://registry.npmjs.org/rc-align/-/rc-align-4.0.12.tgz", - "integrity": "sha512-3DuwSJp8iC/dgHzwreOQl52soj40LchlfUHtgACOUtwGuoFIOVh6n/sCpfqCU8kO5+iz6qR0YKvjgB8iPdE3aQ==", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "dom-align": "^1.7.0", - "lodash": "^4.17.21", - "rc-util": "^5.3.0", - "resize-observer-polyfill": "^1.5.1" - } - }, - "rc-cascader": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.6.0.tgz", - "integrity": "sha512-p9qwt8E8ZICzPIzyfXF5y7/lbJhRowFj8YhWpdytMomHUZ568duFNwA4H5QVqdC6hg/HIV1YEawOE5jlxSpeww==", - "requires": { - "@babel/runtime": "^7.12.5", - "array-tree-filter": "^2.1.0", - "classnames": "^2.3.1", - "rc-select": "~14.1.0", - "rc-tree": "~5.6.3", - "rc-util": "^5.6.1" - } - }, - "rc-checkbox": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-2.3.2.tgz", - "integrity": "sha512-afVi1FYiGv1U0JlpNH/UaEXdh6WUJjcWokj/nUN2TgG80bfG+MDdbfHKlLcNNba94mbjy2/SXJ1HDgrOkXGAjg==", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.1" - } - }, - "rc-collapse": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/rc-collapse/-/rc-collapse-3.3.0.tgz", - "integrity": "sha512-nkxjhpYAAwEVbBvZ/qoatLecD0PpRtQ5ja9G+FP1QmsWhs/4VCruhjvRdSpMn9vfluKUnePe3PEy8eeqTeuE0g==", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "rc-motion": "^2.3.4", - "rc-util": "^5.2.1", - "shallowequal": "^1.1.0" - } - }, - "rc-dialog": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/rc-dialog/-/rc-dialog-8.8.2.tgz", - "integrity": "sha512-n1waqBDDKqCCcPCDGycahfawF00WqgtXTXUwxrLStUpfQAo7nzkAvTq9voT78X2qN83UYvrMg1TWCuTueBp+sg==", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.6", - "rc-motion": "^2.3.0", - "rc-util": "^5.21.0" - } - }, - "rc-drawer": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-4.4.3.tgz", - "integrity": "sha512-FYztwRs3uXnFOIf1hLvFxIQP9MiZJA+0w+Os8dfDh/90X7z/HqP/Yg+noLCIeHEbKln1Tqelv8ymCAN24zPcfQ==", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.6", - "rc-util": "^5.7.0" - } - }, - "rc-dropdown": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/rc-dropdown/-/rc-dropdown-4.0.1.tgz", - "integrity": "sha512-OdpXuOcme1rm45cR0Jzgfl1otzmU4vuBVb+etXM8vcaULGokAKVpKlw8p6xzspG7jGd/XxShvq+N3VNEfk/l5g==", - "requires": { - "@babel/runtime": "^7.18.3", - "classnames": "^2.2.6", - "rc-trigger": "^5.3.1", - "rc-util": "^5.17.0" }, "dependencies": { - "@babel/runtime": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.3.tgz", - "integrity": "sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==", - "requires": { - "regenerator-runtime": "^0.13.4" - } + "strip-json-comments": { + "version": "2.0.1", + "dev": true } } }, - "rc-field-form": { - "version": "1.26.7", - "resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-1.26.7.tgz", - "integrity": "sha512-CIb7Gw+DG9R+g4HxaDGYHhOjhjQoU2mGU4y+UM2+KQ3uRz9HrrNgTspGvNynn3UamsYcYcaPWZJmiJ6VklkT/w==", - "requires": { - "@babel/runtime": "^7.18.0", - "async-validator": "^4.1.0", - "rc-util": "^5.8.0" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.3.tgz", - "integrity": "sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - } - } - }, - "rc-image": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/rc-image/-/rc-image-5.6.2.tgz", - "integrity": "sha512-qhKOVvivCZkd6CrzS/4ST2+Auu16mtPSFVqVzwE7sELWfuvzcLGTzGv8UsVvm6qRNIz6SeaueUetqi4Ii16XQA==", - "requires": { - "@babel/runtime": "^7.11.2", - "classnames": "^2.2.6", - "rc-dialog": "~8.8.0", - "rc-util": "^5.0.6" - } - }, - "rc-input": { - "version": "0.0.1-alpha.7", - "resolved": "https://registry.npmjs.org/rc-input/-/rc-input-0.0.1-alpha.7.tgz", - "integrity": "sha512-eozaqpCYWSY5LBMwlHgC01GArkVEP+XlJ84OMvdkwUnJBSv83Yxa15pZpn7vACAj84uDC4xOA2CoFdbLuqB08Q==", - "requires": { - "@babel/runtime": "^7.11.1", - "classnames": "^2.2.1", - "rc-util": "^5.18.1" - } - }, - "rc-input-number": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-7.3.4.tgz", - "integrity": "sha512-W9uqSzuvJUnz8H8vsVY4kx+yK51SsAxNTwr8SNH4G3XqQNocLVmKIibKFRjocnYX1RDHMND9FFbgj2h7E7nvGA==", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.5", - "rc-util": "^5.9.8" - } - }, - "rc-mentions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/rc-mentions/-/rc-mentions-1.8.0.tgz", - "integrity": "sha512-ch7yfMMvx2UXy+EvE4axm0Vp6VlVZ30WLrZtLtV/Eb1ty7rQQRzNzCwAHAMyw6tNKTMs9t9sF68AVjAzQ0rvJw==", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.6", - "rc-menu": "~9.6.0", - "rc-textarea": "^0.3.0", - "rc-trigger": "^5.0.4", - "rc-util": "^5.0.1" - } - }, - "rc-menu": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-9.6.0.tgz", - "integrity": "sha512-d26waws42U/rVwW/+rOE2FN9pX6wUc9bDy38vVQYoie6gE85auWIpl5oChGlnW6nE2epnTwUsgWl8ipOPgmnUA==", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "rc-motion": "^2.4.3", - "rc-overflow": "^1.2.0", - "rc-trigger": "^5.1.2", - "rc-util": "^5.12.0", - "shallowequal": "^1.1.0" - } - }, - "rc-motion": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/rc-motion/-/rc-motion-2.6.0.tgz", - "integrity": "sha512-1MDWA9+i174CZ0SIDenSYm2Wb9YbRkrexjZWR0CUFu7D6f23E8Y0KsTgk9NGOLJsGak5ELZK/Y5lOlf5wQdzbw==", - "requires": { - "@babel/runtime": "^7.11.1", - "classnames": "^2.2.1", - "rc-util": "^5.21.0" - } - }, - "rc-notification": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/rc-notification/-/rc-notification-4.6.0.tgz", - "integrity": "sha512-xF3MKgIoynzjQAO4lqsoraiFo3UXNYlBfpHs0VWvwF+4pimen9/H1DYLN2mfRWhHovW6gRpla73m2nmyIqAMZQ==", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "rc-motion": "^2.2.0", - "rc-util": "^5.20.1" - } - }, - "rc-overflow": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/rc-overflow/-/rc-overflow-1.2.6.tgz", - "integrity": "sha512-YqbocgzuQxfq2wZy72vdAgrgzzEuM/5d4gF9TBEodCpXPbUeXGrUXNm1J6G1MSkCU2N0ePIgCEu5qD/0Ldi63Q==", - "requires": { - "@babel/runtime": "^7.11.1", - "classnames": "^2.2.1", - "rc-resize-observer": "^1.0.0", - "rc-util": "^5.19.2" - } - }, - "rc-pagination": { - "version": "3.1.16", - "resolved": "https://registry.npmjs.org/rc-pagination/-/rc-pagination-3.1.16.tgz", - "integrity": "sha512-GFcHXJ7XxeJDf9B+ndP4PRDt46maSSgYhiwofBMiIGKIlBhJ0wfu8DMCEvaWJJLpI2u4Gb6zF1dHpiqPFrosPg==", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.1" - } - }, - "rc-picker": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-2.6.9.tgz", - "integrity": "sha512-yH3UYXCADf7REtOAB5cwe1cyFKtB0p204RCN8JdZGG4uuSOZ1IPTkk/GJS6HOpxspZeJCLGzzajuQMDwck9dsw==", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.1", - "date-fns": "2.x", - "dayjs": "1.x", - "moment": "^2.24.0", - "rc-trigger": "^5.0.4", - "rc-util": "^5.4.0", - "shallowequal": "^1.1.0" - } - }, - "rc-progress": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/rc-progress/-/rc-progress-3.3.3.tgz", - "integrity": "sha512-MDVNVHzGanYtRy2KKraEaWeZLri2ZHWIRyaE1a9MQ2MuJ09m+Wxj5cfcaoaR6z5iRpHpA59YeUxAlpML8N4PJw==", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.6", - "rc-util": "^5.16.1" - } - }, - "rc-rate": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/rc-rate/-/rc-rate-2.9.2.tgz", - "integrity": "sha512-SaiZFyN8pe0Fgphv8t3+kidlej+cq/EALkAJAc3A0w0XcPaH2L1aggM8bhe1u6GAGuQNAoFvTLjw4qLPGRKV5g==", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.5", - "rc-util": "^5.0.1" - } - }, - "rc-resize-observer": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/rc-resize-observer/-/rc-resize-observer-1.2.0.tgz", - "integrity": "sha512-6W+UzT3PyDM0wVCEHfoW3qTHPTvbdSgiA43buiy8PzmeMnfgnDeb9NjdimMXMl3/TcrvvWl5RRVdp+NqcR47pQ==", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.1", - "rc-util": "^5.15.0", - "resize-observer-polyfill": "^1.5.1" - } - }, - "rc-segmented": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/rc-segmented/-/rc-segmented-2.1.0.tgz", - "integrity": "sha512-hUlonro+pYoZcwrH6Vm56B2ftLfQh046hrwif/VwLIw1j3zGt52p5mREBwmeVzXnSwgnagpOpfafspzs1asjGw==", - "requires": { - "@babel/runtime": "^7.11.1", - "classnames": "^2.2.1", - "rc-motion": "^2.4.4", - "rc-util": "^5.17.0" - } - }, - "rc-select": { - "version": "14.1.5", - "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.1.5.tgz", - "integrity": "sha512-CvcmylICKSrPWCJMgGiHqozVhco9kJpQSj/x5wqLN9JStpDFD1oMNYiJYfkMjQ1LxZkN/eZpL1D2KUXJhXd8rw==", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "rc-motion": "^2.0.1", - "rc-overflow": "^1.0.0", - "rc-trigger": "^5.0.4", - "rc-util": "^5.16.1", - "rc-virtual-list": "^3.2.0" - } - }, - "rc-slider": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-10.0.0.tgz", - "integrity": "sha512-Bk54UIKWW4wyhHcL8ehAxt+wX+n69dscnHTX6Uv0FMxSke/TGrlkZz1LSIWblCpfE2zr/dwR2Ca8nZGk3U+Tbg==", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.5", - "rc-tooltip": "^5.0.1", - "rc-util": "^5.18.1", - "shallowequal": "^1.1.0" - } - }, - "rc-steps": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/rc-steps/-/rc-steps-4.1.4.tgz", - "integrity": "sha512-qoCqKZWSpkh/b03ASGx1WhpKnuZcRWmvuW+ZUu4mvMdfvFzVxblTwUM+9aBd0mlEUFmt6GW8FXhMpHkK3Uzp3w==", - "requires": { - "@babel/runtime": "^7.10.2", - "classnames": "^2.2.3", - "rc-util": "^5.0.1" - } - }, - "rc-switch": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/rc-switch/-/rc-switch-3.2.2.tgz", - "integrity": "sha512-+gUJClsZZzvAHGy1vZfnwySxj+MjLlGRyXKXScrtCTcmiYNPzxDFOxdQ/3pK1Kt/0POvwJ/6ALOR8gwdXGhs+A==", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.1", - "rc-util": "^5.0.1" - } - }, - "rc-table": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.24.2.tgz", - "integrity": "sha512-yefqhtc4V3BeWG2bnDhWYxWX1MOckvW2KU1J55pntZmIGrov5Hx8tQn2gcs6OM0fJ6NgEwUvVEknsCsWI24zUg==", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.5", - "rc-resize-observer": "^1.1.0", - "rc-util": "^5.14.0", - "shallowequal": "^1.1.0" - } - }, - "rc-tabs": { - "version": "11.16.0", - "resolved": "https://registry.npmjs.org/rc-tabs/-/rc-tabs-11.16.0.tgz", - "integrity": "sha512-CIDPv3lHaXSHTJevmFP2eHoD3Hq9psfKbOZYf6D4FYPACloNGHpz44y3RGeJgataQ7omFLrGBm3dOBMUki87tA==", - "requires": { - "@babel/runtime": "^7.11.2", - "classnames": "2.x", - "rc-dropdown": "~4.0.0", - "rc-menu": "~9.6.0", - "rc-resize-observer": "^1.0.0", - "rc-util": "^5.5.0" - } - }, - "rc-textarea": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/rc-textarea/-/rc-textarea-0.3.7.tgz", - "integrity": "sha512-yCdZ6binKmAQB13hc/oehh0E/QRwoPP1pjF21aHBxlgXO3RzPF6dUu4LG2R4FZ1zx/fQd2L1faktulrXOM/2rw==", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.1", - "rc-resize-observer": "^1.0.0", - "rc-util": "^5.7.0", - "shallowequal": "^1.1.0" - } - }, - "rc-tooltip": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-5.1.1.tgz", - "integrity": "sha512-alt8eGMJulio6+4/uDm7nvV+rJq9bsfxFDCI0ljPdbuoygUscbsMYb6EQgwib/uqsXQUvzk+S7A59uYHmEgmDA==", - "requires": { - "@babel/runtime": "^7.11.2", - "rc-trigger": "^5.0.0" - } - }, - "rc-tree": { - "version": "5.6.5", - "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-5.6.5.tgz", - "integrity": "sha512-Bnyen46B251APyRZ9D/jYeTnSqbSEvK2AkU5B4vWkNYgUJNPrxO+VMgcDRedP/8N7YcsgdDT9hxqVvNOq7oCAQ==", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "rc-motion": "^2.0.1", - "rc-util": "^5.16.1", - "rc-virtual-list": "^3.4.8" - } - }, - "rc-tree-select": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-5.4.0.tgz", - "integrity": "sha512-reRbOqC7Ic/nQocJAJeCl4n6nJUY3NoqiwRXKvhjgZJU7NGr9vIccXEsY+Lghkw5UMpPoxGsIJB0jiAvM18XYA==", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "rc-select": "~14.1.0", - "rc-tree": "~5.6.1", - "rc-util": "^5.16.1" - } - }, - "rc-trigger": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/rc-trigger/-/rc-trigger-5.3.1.tgz", - "integrity": "sha512-5gaFbDkYSefZ14j2AdzucXzlWgU2ri5uEjkHvsf1ynRhdJbKxNOnw4PBZ9+FVULNGFiDzzlVF8RJnR9P/xrnKQ==", - "requires": { - "@babel/runtime": "^7.18.3", - "classnames": "^2.2.6", - "rc-align": "^4.0.0", - "rc-motion": "^2.0.0", - "rc-util": "^5.19.2" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.3.tgz", - "integrity": "sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - } - } - }, - "rc-upload": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/rc-upload/-/rc-upload-4.3.4.tgz", - "integrity": "sha512-uVbtHFGNjHG/RyAfm9fluXB6pvArAGyAx8z7XzXXyorEgVIWj6mOlriuDm0XowDHYz4ycNK0nE0oP3cbFnzxiQ==", - "requires": { - "@babel/runtime": "^7.18.3", - "classnames": "^2.2.5", - "rc-util": "^5.2.0" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.3.tgz", - "integrity": "sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - } - } - }, - "rc-util": { - "version": "5.21.5", - "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.21.5.tgz", - "integrity": "sha512-ip7HqX37Cy/RDl9MlrFp+FbcKnsWZ22sF5MS5eSpYLtg5MpC0TMqGb5ukBatoOhgjnLL+eJGR6e7YAJ/dhK09A==", - "requires": { - "@babel/runtime": "^7.18.3", - "react-is": "^16.12.0", - "shallowequal": "^1.1.0" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.3.tgz", - "integrity": "sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - } - } - }, - "rc-virtual-list": { - "version": "3.4.8", - "resolved": "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.4.8.tgz", - "integrity": "sha512-qSN+Rv4i/E7RCTvTMr1uZo7f3crJJg/5DekoCagydo9zsXrxj07zsFSxqizqW+ldGA16lwa8So/bIbV9Ofjddg==", - "requires": { - "classnames": "^2.2.6", - "rc-resize-observer": "^1.0.0", - "rc-util": "^5.15.0" - } - }, "react": { - "version": "16.14.0", - "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", - "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", + "version": "18.2.0", "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" + "loose-envify": "^1.1.0" } }, - "react-app-polyfill": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz", - "integrity": "sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w==", + "react-blockies": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/react-blockies/-/react-blockies-1.4.1.tgz", + "integrity": "sha512-4N015X5oPNnD3xQPsiqolOFzPZSSWyc5mJhJUZShUCHtiGUxVN+1qsWTcglkHMNySux9hUofaispqcw9QkWP5Q==", "requires": { - "core-js": "^3.19.2", - "object-assign": "^4.1.1", - "promise": "^8.1.0", - "raf": "^3.4.1", - "regenerator-runtime": "^0.13.9", - "whatwg-fetch": "^3.6.2" - } - }, - "react-dev-utils": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", - "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", - "requires": { - "@babel/code-frame": "^7.16.0", - "address": "^1.1.2", - "browserslist": "^4.18.1", - "chalk": "^4.1.2", - "cross-spawn": "^7.0.3", - "detect-port-alt": "^1.1.6", - "escape-string-regexp": "^4.0.0", - "filesize": "^8.0.6", - "find-up": "^5.0.0", - "fork-ts-checker-webpack-plugin": "^6.5.0", - "global-modules": "^2.0.0", - "globby": "^11.0.4", - "gzip-size": "^6.0.0", - "immer": "^9.0.7", - "is-root": "^2.1.0", - "loader-utils": "^3.2.0", - "open": "^8.4.0", - "pkg-up": "^3.1.0", - "prompts": "^2.4.2", - "react-error-overlay": "^6.0.11", - "recursive-readdir": "^2.2.2", - "shell-quote": "^1.7.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.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==", - "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==" - }, - "loader-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", - "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==" - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "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==", - "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==" - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - } + "prop-types": "^15.5.10" } }, "react-dom": { - "version": "16.14.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", - "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", + "version": "18.2.0", "requires": { "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.19.1" + "scheduler": "^0.23.0" } }, - "react-error-overlay": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", - "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" + "react-feather": { + "version": "2.0.10", + "requires": { + "prop-types": "^15.7.2" + } }, "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==" + "version": "16.13.1" }, "react-refresh": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", - "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==" + "version": "0.13.0", + "dev": true }, "react-router": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.3.tgz", - "integrity": "sha512-mzQGUvS3bM84TnbtMYR8ZjKnuPJ71IjSzR+DE6UkUqvN4czWIqEs17yLL8xkAycv4ev0AiN+IGrWu88vJs/p2w==", + "version": "6.3.0", "requires": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "hoist-non-react-statics": "^3.1.0", - "loose-envify": "^1.3.1", - "mini-create-react-context": "^0.4.0", - "path-to-regexp": "^1.7.0", - "prop-types": "^15.6.2", - "react-is": "^16.6.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" + "history": "^5.2.0" } }, "react-router-dom": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.3.tgz", - "integrity": "sha512-Ov0tGPMBgqmbu5CDmN++tv2HQ9HlWDuWIIqn4b88gjlAN5IHI+4ZUZRcpz9Hl0azFIwihbLDYw1OiHGRo7ZIng==", + "version": "6.3.0", "requires": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "loose-envify": "^1.3.1", - "prop-types": "^15.6.2", - "react-router": "5.3.3", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - } - }, - "react-scripts": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz", - "integrity": "sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==", - "requires": { - "@babel/core": "^7.16.0", - "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", - "@svgr/webpack": "^5.5.0", - "babel-jest": "^27.4.2", - "babel-loader": "^8.2.3", - "babel-plugin-named-asset-import": "^0.3.8", - "babel-preset-react-app": "^10.0.1", - "bfj": "^7.0.2", - "browserslist": "^4.18.1", - "camelcase": "^6.2.1", - "case-sensitive-paths-webpack-plugin": "^2.4.0", - "css-loader": "^6.5.1", - "css-minimizer-webpack-plugin": "^3.2.0", - "dotenv": "^10.0.0", - "dotenv-expand": "^5.1.0", - "eslint": "^8.3.0", - "eslint-config-react-app": "^7.0.1", - "eslint-webpack-plugin": "^3.1.1", - "file-loader": "^6.2.0", - "fs-extra": "^10.0.0", - "fsevents": "^2.3.2", - "html-webpack-plugin": "^5.5.0", - "identity-obj-proxy": "^3.0.0", - "jest": "^27.4.3", - "jest-resolve": "^27.4.2", - "jest-watch-typeahead": "^1.0.0", - "mini-css-extract-plugin": "^2.4.5", - "postcss": "^8.4.4", - "postcss-flexbugs-fixes": "^5.0.2", - "postcss-loader": "^6.2.1", - "postcss-normalize": "^10.0.1", - "postcss-preset-env": "^7.0.1", - "prompts": "^2.4.2", - "react-app-polyfill": "^3.0.0", - "react-dev-utils": "^12.0.1", - "react-refresh": "^0.11.0", - "resolve": "^1.20.0", - "resolve-url-loader": "^4.0.0", - "sass-loader": "^12.3.0", - "semver": "^7.3.5", - "source-map-loader": "^3.0.0", - "style-loader": "^3.3.1", - "tailwindcss": "^3.0.2", - "terser-webpack-plugin": "^5.2.5", - "webpack": "^5.64.4", - "webpack-dev-server": "^4.6.0", - "webpack-manifest-plugin": "^4.0.2", - "workbox-webpack-plugin": "^6.4.1" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.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==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "history": "^5.2.0", + "react-router": "6.3.0" } }, "readdirp": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, "requires": { "picomatch": "^2.2.1" } }, - "recursive-readdir": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", - "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", - "requires": { - "minimatch": "3.0.4" - } - }, - "redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "requires": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - } - }, - "regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" - }, - "regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", - "requires": { - "regenerate": "^1.4.2" - } - }, "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==" - }, - "regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", - "requires": { - "@babel/runtime": "^7.8.4" - } - }, - "regex-parser": { - "version": "2.2.11", - "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", - "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==" + "version": "0.13.9" }, "regexp.prototype.flags": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz", - "integrity": "sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==", + "version": "1.4.3", + "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" } }, "regexpp": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==" - }, - "regexpu-core": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", - "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", - "requires": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" - } + "dev": true }, "registry-auth-token": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", - "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", + "dev": true, "requires": { "rc": "^1.1.6", "safe-buffer": "^5.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "dev": true + } } }, "registry-url": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", - "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", + "dev": true, "requires": { "rc": "^1.0.1" } }, - "regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==" - }, - "regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" - } - } - }, - "relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" - }, - "renderkid": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", - "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", - "requires": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^6.0.1" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, "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==" - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, - "resize-observer-polyfill": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", - "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" + "dev": true }, "resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "version": "1.22.1", + "dev": true, "requires": { - "is-core-module": "^2.8.1", + "is-core-module": "^2.9.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "requires": { - "resolve-from": "^5.0.0" - } - }, "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" - }, - "resolve-pathname": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", - "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" - }, - "resolve-url-loader": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", - "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==", + "dev": true + }, + "restore-cursor": { + "version": "3.1.0", + "dev": true, "requires": { - "adjust-sourcemap-loader": "^4.0.0", - "convert-source-map": "^1.7.0", - "loader-utils": "^2.0.0", - "postcss": "^7.0.35", - "source-map": "0.6.1" - }, - "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" - }, - "postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - } - } + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" } }, - "resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==" - }, - "retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==" - }, "reusify": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + "dev": true + }, + "rfdc": { + "version": "1.3.0", + "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" } }, "rollup": { - "version": "2.67.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.67.2.tgz", - "integrity": "sha512-hoEiBWwZtf1QdK3jZIq59L0FJj4Fiv4RplCO4pvCRC86qsoFurWB4hKQIjoRf3WvJmk5UZ9b0y5ton+62fC7Tw==", + "version": "2.76.0", + "dev": true, "requires": { "fsevents": "~2.3.2" } }, - "rollup-plugin-terser": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", - "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", - "requires": { - "@babel/code-frame": "^7.10.4", - "jest-worker": "^26.2.1", - "serialize-javascript": "^4.0.0", - "terser": "^5.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==" - }, - "jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - } - }, - "serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "requires": { - "randombytes": "^2.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==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, "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==", + "dev": true, "requires": { "queue-microtask": "^1.2.2" } }, + "rxjs": { + "version": "7.5.6", + "dev": true, + "requires": { + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "dev": true + } + } + }, "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==" + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true }, - "sanitize.css": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-13.0.0.tgz", - "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==" - }, - "sass-loader": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", - "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", + "sass": { + "version": "1.53.0", + "dev": true, "requires": { - "klona": "^2.0.4", - "neo-async": "^2.6.2" - } - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "requires": { - "xmlchars": "^2.2.0" + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" } }, "scheduler": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", - "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "version": "0.23.0", "requires": { - "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==", - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "scroll-into-view-if-needed": { - "version": "2.2.29", - "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.29.tgz", - "integrity": "sha512-hxpAR6AN+Gh53AdAimHM6C8oTN1ppwVZITihix+WqalywBeFcQ6LdQP5ABNl26nX8GTEL7VT+b8lKpdqq65wXg==", - "requires": { - "compute-scroll-into-view": "^1.0.17" - } - }, - "select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" - }, - "selfsigned": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.0.tgz", - "integrity": "sha512-cUdFiCbKoa1mZ6osuJs2uDHrs0k0oprsKveFiiaBKCNq3SYyb5gs2HxhQyDNLCmL51ZZThqi4YNDpCK6GOP1iQ==", - "requires": { - "node-forge": "^1.2.0" + "loose-envify": "^1.1.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 }, "send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, "requires": { "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", + "depd": "2.0.0", + "destroy": "1.2.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.8.1", + "http-errors": "2.0.0", "mime": "1.6.0", "ms": "2.1.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "range-parser": "~1.2.1", - "statuses": "~1.5.0" + "statuses": "2.0.1" }, "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" }, @@ -25986,79 +8345,65 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "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==" + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "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 } } }, - "serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "requires": { - "randombytes": "^2.1.0" - } - }, "serve": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/serve/-/serve-13.0.2.tgz", - "integrity": "sha512-71R6fKvNgKrqARAag6lYJNnxDzpH7DCNrMuvPY5PLVaC2PDhJsGTj/34o4o4tPWhTuLgEXqvgnAWbATQ9zGZTQ==", + "version": "14.0.1", + "dev": true, "requires": { - "@zeit/schemas": "2.6.0", - "ajv": "6.12.6", - "arg": "2.0.0", - "boxen": "5.1.2", - "chalk": "2.4.1", - "clipboardy": "2.3.0", - "compression": "1.7.3", + "@zeit/schemas": "2.21.0", + "ajv": "8.11.0", + "arg": "5.0.2", + "boxen": "7.0.0", + "chalk": "5.0.1", + "chalk-template": "0.4.0", + "clipboardy": "3.0.0", + "compression": "1.7.4", + "is-port-reachable": "4.0.0", "serve-handler": "6.1.3", - "update-check": "1.5.2" + "update-check": "1.5.4" }, "dependencies": { + "ajv": { + "version": "8.11.0", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } + "version": "5.0.1", + "dev": true }, - "compression": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.3.tgz", - "integrity": "sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==", - "requires": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.14", - "debug": "2.6.9", - "on-headers": "~1.0.1", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } + "json-schema-traverse": { + "version": "1.0.0", + "dev": true } } }, "serve-handler": { "version": "6.1.3", - "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.3.tgz", - "integrity": "sha512-FosMqFBNrLyeiIDvP1zgO6YoTzFYHxLDEIavhlmQ+knB2Z7l1t+kGLHkZIDN7UVWqQAmKI3D20A6F6jo3nDd4w==", + "dev": true, "requires": { "bytes": "3.0.0", "content-disposition": "0.5.2", @@ -26070,124 +8415,47 @@ "range-parser": "1.2.0" }, "dependencies": { - "content-disposition": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" - }, - "mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" - }, - "mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "minimatch": { + "version": "3.0.4", + "dev": true, "requires": { - "mime-db": "~1.33.0" + "brace-expansion": "^1.1.7" } - }, - "path-to-regexp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", - "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==" - }, - "range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" - } - } - }, - "serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "requires": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" } } }, "serve-static": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, "requires": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.17.2" + "send": "0.18.0" } }, "setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "shallowequal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true }, "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "version": "2.0.0", + "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "^3.0.0" } }, "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - }, - "shell-quote": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", - "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==" + "version": "3.0.0", + "dev": true }, "side-channel": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, "requires": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", @@ -26195,181 +8463,48 @@ } }, "signal-exit": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", - "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==" - }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + "version": "3.0.7", + "dev": true }, "slash": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + "dev": true }, - "sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "slice-ansi": { + "version": "5.0.0", + "dev": true, "requires": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "6.1.0", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "4.0.0", + "dev": true + } } }, - "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==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, "source-map-js": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" - }, - "source-map-loader": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.1.tgz", - "integrity": "sha512-Vp1UsfyPvgujKQzi4pyDiTOnE3E4H+yHvkVRN3c/9PJmQS4CQJExvcDvaX/D+RV+xQben9HJ56jMJS3CgUeWyA==", - "requires": { - "abab": "^2.0.5", - "iconv-lite": "^0.6.3", - "source-map-js": "^1.0.1" - } - }, - "source-map-resolve": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" - } - }, - "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==", - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" - }, - "sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" - }, - "spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "requires": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - } - }, - "spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "requires": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" - }, - "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "requires": { - "escape-string-regexp": "^2.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" - } - } - }, - "stackframe": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.1.tgz", - "integrity": "sha512-h88QkzREN/hy8eRdyNhhsO7RSJ5oyTqxxmmn0dzBIMUclZsjpfmrsg81vp8mjjAs2vAZ72nyWxRUwSwmh0e4xg==" + "dev": true }, "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true }, - "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==", - "requires": { - "safe-buffer": "~5.2.0" - }, - "dependencies": { - "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==" - } - } - }, - "string-convert": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz", - "integrity": "sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==" - }, - "string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - } - }, - "string-natural-compare": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", - "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==" + "string-argv": { + "version": "0.3.1", + "dev": true }, "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": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -26378,623 +8513,196 @@ "dependencies": { "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 } } }, "string.prototype.matchall": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz", - "integrity": "sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==", + "version": "4.0.7", + "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", "es-abstract": "^1.19.1", "get-intrinsic": "^1.1.1", - "has-symbols": "^1.0.2", + "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.3.1", + "regexp.prototype.flags": "^1.4.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==", + "version": "1.0.5", + "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" } }, "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==", + "version": "1.0.5", + "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "requires": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" } }, "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" } }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==" - }, - "strip-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", - "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==" - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" - }, "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==" - }, - "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": { - "min-indent": "^1.0.0" - } + "dev": true }, "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=" - }, - "style-loader": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.1.tgz", - "integrity": "sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==", - "requires": {} - }, - "styled-components": { - "version": "5.3.5", - "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.5.tgz", - "integrity": "sha512-ndETJ9RKaaL6q41B69WudeqLzOpY1A/ET/glXkNZ2T7dPjPqpPCXXQjDFYZWwNnE5co0wX+gTCqx9mfxTmSIPg==", - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/traverse": "^7.4.5", - "@emotion/is-prop-valid": "^1.1.0", - "@emotion/stylis": "^0.8.4", - "@emotion/unitless": "^0.7.4", - "babel-plugin-styled-components": ">= 1.12.0", - "css-to-react-native": "^3.0.0", - "hoist-non-react-statics": "^3.0.0", - "shallowequal": "^1.1.0", - "supports-color": "^5.5.0" - } - }, - "stylehacks": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.0.3.tgz", - "integrity": "sha512-ENcUdpf4yO0E1rubu8rkxI+JGQk4CgjchynZ4bDBJDfqdy+uhTRSWb8/F3Jtu+Bw5MW45Po3/aQGeIyyxgQtxg==", - "requires": { - "browserslist": "^4.16.6", - "postcss-selector-parser": "^6.0.4" - } + "version": "3.1.1", + "dev": true }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "7.2.0", + "dev": true, "requires": { - "has-flag": "^3.0.0" - } - }, - "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==", - "requires": { - "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==" - }, - "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" - } - } + "has-flag": "^4.0.0" } }, "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==" - }, - "svg-parser": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", - "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" - }, - "svgo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", - "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", - "requires": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - }, - "dependencies": { - "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" - } - }, - "css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", - "requires": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "css-what": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", - "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==" - }, - "dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "requires": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - } - }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - }, - "dependencies": { - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" - } - } - }, - "nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "requires": { - "boolbase": "~1.0.0" - } - } - } - }, - "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==" - }, - "tailwindcss": { - "version": "3.0.23", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.23.tgz", - "integrity": "sha512-+OZOV9ubyQ6oI2BXEhzw4HrqvgcARY38xv3zKcjnWtMIZstEsXdI9xftd1iB7+RbOnj2HOEzkA0OyB5BaSxPQA==", - "requires": { - "arg": "^5.0.1", - "chalk": "^4.1.2", - "chokidar": "^3.5.3", - "color-name": "^1.1.4", - "cosmiconfig": "^7.0.1", - "detective": "^5.2.0", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.2.11", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "normalize-path": "^3.0.0", - "object-hash": "^2.2.0", - "postcss": "^8.4.6", - "postcss-js": "^4.0.0", - "postcss-load-config": "^3.1.0", - "postcss-nested": "5.0.6", - "postcss-selector-parser": "^6.0.9", - "postcss-value-parser": "^4.2.0", - "quick-lru": "^5.1.1", - "resolve": "^1.22.0" - }, - "dependencies": { - "arg": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz", - "integrity": "sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==" - }, - "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==" - } - } - }, - "tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==" - }, - "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==" - }, - "tempy": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", - "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", - "requires": { - "is-stream": "^2.0.0", - "temp-dir": "^2.0.0", - "type-fest": "^0.16.0", - "unique-string": "^2.0.0" - }, - "dependencies": { - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" - }, - "type-fest": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", - "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==" - } - } - }, - "terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - } - }, - "terser": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz", - "integrity": "sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==", - "requires": { - "commander": "^2.20.0", - "source-map": "~0.7.2", - "source-map-support": "~0.5.20" - }, - "dependencies": { - "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==" - }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" - } - } - }, - "terser-webpack-plugin": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz", - "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==", - "requires": { - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1", - "terser": "^5.7.2" - } - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } + "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 }, - "throat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==" - }, - "thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" - }, - "timsort": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=" - }, - "tiny-invariant": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.2.0.tgz", - "integrity": "sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg==" - }, - "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==" - }, - "tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" + "through": { + "version": "2.3.8", + "dev": true }, "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 }, "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==", + "dev": true, "requires": { "is-number": "^7.0.0" } }, - "toggle-selection": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", - "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==" - }, "toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true }, - "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==", + "ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, "requires": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" }, "dependencies": { - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - } - } - }, - "tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "requires": { - "punycode": "^2.1.1" - } - }, - "tryer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", - "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==" - }, - "tsconfig-paths": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "^1.2.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true } } }, "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + "version": "1.14.1", + "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" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } } }, "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-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" - }, "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==" + "version": "0.20.2", + "dev": true }, "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": { "media-typer": "0.3.0", "mime-types": "~2.1.24" - } - }, - "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==", - "requires": { - "is-typedarray": "^1.0.0" + }, + "dependencies": { + "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==", + "dev": true, + "requires": { + "mime-db": "1.52.0" + } + } } }, "typescript": { - "version": "4.8.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.2.tgz", - "integrity": "sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==", - "peer": true + "version": "4.7.4", + "dev": true }, "unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "version": "1.0.2", + "dev": true, "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", "which-boxed-primitive": "^1.0.2" } }, - "unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==" - }, - "unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "requires": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==" - }, - "unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==" - }, - "unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "requires": { - "crypto-random-string": "^2.0.0" - } - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" - }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true }, - "unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" + "update-browserslist-db": { + "version": "1.0.4", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } }, "update-check": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/update-check/-/update-check-1.5.2.tgz", - "integrity": "sha512-1TrmYLuLj/5ZovwUS7fFd1jMH3NnFDN1y1A8dboedIDt7zs/zJMo6TwwlhYKkSeEwzleeiSBV5/3c9ufAQWDaQ==", + "version": "1.5.4", + "dev": true, "requires": { "registry-auth-token": "3.3.2", "registry-url": "3.1.0" @@ -27002,400 +8710,54 @@ }, "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=" - }, - "util.promisify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", - "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.2", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.0" - } - }, - "utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" - }, "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true }, "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 }, - "v8-to-istanbul": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", - "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "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==" - } - } - }, - "value-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", - "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" + "v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true }, "vary": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + "dev": true }, - "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==", + "vite": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-3.0.0.tgz", + "integrity": "sha512-M7phQhY3+fRZa0H+1WzI6N+/onruwPTBTMvaj7TzgZ0v2TE+N2sdLKxJOfOv9CckDWt5C4HmyQP81xB4dwRKzA==", + "dev": true, "requires": { - "browser-process-hrtime": "^1.0.0" - } - }, - "w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "requires": { - "xml-name-validator": "^3.0.0" - } - }, - "walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "requires": { - "makeerror": "1.0.12" - } - }, - "watchpack": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", - "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", - "requires": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - } - }, - "wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "requires": { - "minimalistic-assert": "^1.0.0" - } - }, - "webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==" - }, - "webpack": { - "version": "5.69.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.69.0.tgz", - "integrity": "sha512-E5Fqu89Gu8fR6vejRqu26h8ld/k6/dCVbeGUcuZjc+goQHDfCPU9rER71JmdtBYGmci7Ec2aFEATQ2IVXKy2wg==", - "requires": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.4.1", - "acorn-import-assertions": "^1.7.6", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.9.0", - "es-module-lexer": "^0.9.0", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.3.1", - "webpack-sources": "^3.2.3" - }, - "dependencies": { - "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==", - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - } - } - }, - "webpack-dev-middleware": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.1.tgz", - "integrity": "sha512-81EujCKkyles2wphtdrnPg/QqegC/AtqNH//mQkBYSMqwFVCQrxM6ktB2O/SPlZy7LqeEfTbV3cZARGQz6umhg==", - "requires": { - "colorette": "^2.0.10", - "memfs": "^3.4.1", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "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==" - }, - "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - } - } - } - }, - "webpack-dev-server": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.7.4.tgz", - "integrity": "sha512-nfdsb02Zi2qzkNmgtZjkrMOcXnYZ6FLKcQwpxT7MvmHKc+oTtDsBju8j+NMyAygZ9GW1jMEUpy3itHtqgEhe1A==", - "requires": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.2.2", - "ansi-html-community": "^0.0.8", - "bonjour": "^3.5.0", - "chokidar": "^3.5.3", - "colorette": "^2.0.10", - "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", - "default-gateway": "^6.0.3", - "del": "^6.0.0", - "express": "^4.17.1", - "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.0", - "ipaddr.js": "^2.0.1", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "portfinder": "^1.0.28", - "schema-utils": "^4.0.0", - "selfsigned": "^2.0.0", - "serve-index": "^1.9.1", - "sockjs": "^0.3.21", - "spdy": "^4.0.2", - "strip-ansi": "^7.0.0", - "webpack-dev-middleware": "^5.3.1", - "ws": "^8.4.2" - }, - "dependencies": { - "ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" - }, - "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==" - }, - "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - } - }, - "strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "requires": { - "ansi-regex": "^6.0.1" - } - }, - "ws": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", - "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", - "requires": {} - } - } - }, - "webpack-manifest-plugin": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz", - "integrity": "sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==", - "requires": { - "tapable": "^2.0.0", - "webpack-sources": "^2.2.0" - }, - "dependencies": { - "webpack-sources": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz", - "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==", - "requires": { - "source-list-map": "^2.0.1", - "source-map": "^0.6.1" - } - } - } - }, - "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==" - }, - "websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "requires": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - } - }, - "websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==" - }, - "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "requires": { - "iconv-lite": "0.4.24" - }, - "dependencies": { - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - } - } - }, - "whatwg-fetch": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", - "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" - }, - "whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" - }, - "whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "requires": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" + "esbuild": "^0.14.47", + "fsevents": "~2.3.2", + "postcss": "^8.4.14", + "resolve": "^1.22.1", + "rollup": "^2.75.6" } }, "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "version": "2.0.2", + "dev": true, "requires": { "isexe": "^2.0.0" } }, "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", @@ -27405,393 +8767,64 @@ } }, "widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "version": "4.0.1", + "dev": true, "requires": { - "string-width": "^4.0.0" + "string-width": "^5.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "dev": true + }, + "string-width": { + "version": "5.1.2", + "dev": true, + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + }, + "strip-ansi": { + "version": "7.0.1", + "dev": true, + "requires": { + "ansi-regex": "^6.0.1" + } + } } }, "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==" - }, - "workbox-background-sync": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.4.2.tgz", - "integrity": "sha512-P7c8uG5X2k+DMICH9xeSA9eUlCOjHHYoB42Rq+RtUpuwBxUOflAXR1zdsMWj81LopE4gjKXlTw7BFd1BDAHo7g==", - "requires": { - "idb": "^6.1.4", - "workbox-core": "6.4.2" - } - }, - "workbox-broadcast-update": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.4.2.tgz", - "integrity": "sha512-qnBwQyE0+PWFFc/n4ISXINE49m44gbEreJUYt2ldGH3+CNrLmJ1egJOOyUqqu9R4Eb7QrXcmB34ClXG7S37LbA==", - "requires": { - "workbox-core": "6.4.2" - } - }, - "workbox-build": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.4.2.tgz", - "integrity": "sha512-WMdYLhDIsuzViOTXDH+tJ1GijkFp5khSYolnxR/11zmfhNDtuo7jof72xPGFy+KRpsz6tug39RhivCj77qqO0w==", - "requires": { - "@apideck/better-ajv-errors": "^0.3.1", - "@babel/core": "^7.11.1", - "@babel/preset-env": "^7.11.0", - "@babel/runtime": "^7.11.2", - "@rollup/plugin-babel": "^5.2.0", - "@rollup/plugin-node-resolve": "^11.2.1", - "@rollup/plugin-replace": "^2.4.1", - "@surma/rollup-plugin-off-main-thread": "^2.2.3", - "ajv": "^8.6.0", - "common-tags": "^1.8.0", - "fast-json-stable-stringify": "^2.1.0", - "fs-extra": "^9.0.1", - "glob": "^7.1.6", - "lodash": "^4.17.20", - "pretty-bytes": "^5.3.0", - "rollup": "^2.43.1", - "rollup-plugin-terser": "^7.0.0", - "source-map": "^0.8.0-beta.0", - "source-map-url": "^0.4.0", - "stringify-object": "^3.3.0", - "strip-comments": "^2.0.1", - "tempy": "^0.6.0", - "upath": "^1.2.0", - "workbox-background-sync": "6.4.2", - "workbox-broadcast-update": "6.4.2", - "workbox-cacheable-response": "6.4.2", - "workbox-core": "6.4.2", - "workbox-expiration": "6.4.2", - "workbox-google-analytics": "6.4.2", - "workbox-navigation-preload": "6.4.2", - "workbox-precaching": "6.4.2", - "workbox-range-requests": "6.4.2", - "workbox-recipes": "6.4.2", - "workbox-routing": "6.4.2", - "workbox-strategies": "6.4.2", - "workbox-streams": "6.4.2", - "workbox-sw": "6.4.2", - "workbox-window": "6.4.2" - }, - "dependencies": { - "@apideck/better-ajv-errors": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.3.tgz", - "integrity": "sha512-9o+HO2MbJhJHjDYZaDxJmSDckvDpiuItEsrIShV0DXeCshXWRHhqYyU/PKHMkuClOmFnZhRd6wzv4vpDu/dRKg==", - "requires": { - "json-schema": "^0.4.0", - "jsonpointer": "^5.0.0", - "leven": "^3.1.0" - } - }, - "ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "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==", - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "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==" - }, - "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==", - "requires": { - "whatwg-url": "^7.0.0" - } - }, - "tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", - "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==" - }, - "whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - } - } - }, - "workbox-cacheable-response": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.4.2.tgz", - "integrity": "sha512-9FE1W/cKffk1AJzImxgEN0ceWpyz1tqNjZVtA3/LAvYL3AC5SbIkhc7ZCO82WmO9IjTfu8Vut2X/C7ViMSF7TA==", - "requires": { - "workbox-core": "6.4.2" - } - }, - "workbox-core": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.4.2.tgz", - "integrity": "sha512-1U6cdEYPcajRXiboSlpJx6U7TvhIKbxRRerfepAJu2hniKwJ3DHILjpU/zx3yvzSBCWcNJDoFalf7Vgd7ey/rw==" - }, - "workbox-expiration": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.4.2.tgz", - "integrity": "sha512-0hbpBj0tDnW+DZOUmwZqntB/8xrXOgO34i7s00Si/VlFJvvpRKg1leXdHHU8ykoSBd6+F2KDcMP3swoCi5guLw==", - "requires": { - "idb": "^6.1.4", - "workbox-core": "6.4.2" - } - }, - "workbox-google-analytics": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.4.2.tgz", - "integrity": "sha512-u+gxs3jXovPb1oul4CTBOb+T9fS1oZG+ZE6AzS7l40vnyfJV79DaLBvlpEZfXGv3CjMdV1sT/ltdOrKzo7HcGw==", - "requires": { - "workbox-background-sync": "6.4.2", - "workbox-core": "6.4.2", - "workbox-routing": "6.4.2", - "workbox-strategies": "6.4.2" - } - }, - "workbox-navigation-preload": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.4.2.tgz", - "integrity": "sha512-viyejlCtlKsbJCBHwhSBbWc57MwPXvUrc8P7d+87AxBGPU+JuWkT6nvBANgVgFz6FUhCvRC8aYt+B1helo166g==", - "requires": { - "workbox-core": "6.4.2" - } - }, - "workbox-precaching": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.4.2.tgz", - "integrity": "sha512-CZ6uwFN/2wb4noHVlALL7UqPFbLfez/9S2GAzGAb0Sk876ul9ukRKPJJ6gtsxfE2HSTwqwuyNVa6xWyeyJ1XSA==", - "requires": { - "workbox-core": "6.4.2", - "workbox-routing": "6.4.2", - "workbox-strategies": "6.4.2" - } - }, - "workbox-range-requests": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.4.2.tgz", - "integrity": "sha512-SowF3z69hr3Po/w7+xarWfzxJX/3Fo0uSG72Zg4g5FWWnHpq2zPvgbWerBZIa81zpJVUdYpMa3akJJsv+LaO1Q==", - "requires": { - "workbox-core": "6.4.2" - } - }, - "workbox-recipes": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.4.2.tgz", - "integrity": "sha512-/oVxlZFpAjFVbY+3PoGEXe8qyvtmqMrTdWhbOfbwokNFtUZ/JCtanDKgwDv9x3AebqGAoJRvQNSru0F4nG+gWA==", - "requires": { - "workbox-cacheable-response": "6.4.2", - "workbox-core": "6.4.2", - "workbox-expiration": "6.4.2", - "workbox-precaching": "6.4.2", - "workbox-routing": "6.4.2", - "workbox-strategies": "6.4.2" - } - }, - "workbox-routing": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.4.2.tgz", - "integrity": "sha512-0ss/n9PAcHjTy4Ad7l2puuod4WtsnRYu9BrmHcu6Dk4PgWeJo1t5VnGufPxNtcuyPGQ3OdnMdlmhMJ57sSrrSw==", - "requires": { - "workbox-core": "6.4.2" - } - }, - "workbox-strategies": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.4.2.tgz", - "integrity": "sha512-YXh9E9dZGEO1EiPC3jPe2CbztO5WT8Ruj8wiYZM56XqEJp5YlGTtqRjghV+JovWOqkWdR+amJpV31KPWQUvn1Q==", - "requires": { - "workbox-core": "6.4.2" - } - }, - "workbox-streams": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.4.2.tgz", - "integrity": "sha512-ROEGlZHGVEgpa5bOZefiJEVsi5PsFjJG9Xd+wnDbApsCO9xq9rYFopF+IRq9tChyYzhBnyk2hJxbQVWphz3sog==", - "requires": { - "workbox-core": "6.4.2", - "workbox-routing": "6.4.2" - } - }, - "workbox-sw": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.4.2.tgz", - "integrity": "sha512-A2qdu9TLktfIM5NE/8+yYwfWu+JgDaCkbo5ikrky2c7r9v2X6DcJ+zSLphNHHLwM/0eVk5XVf1mC5HGhYpMhhg==" - }, - "workbox-webpack-plugin": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.4.2.tgz", - "integrity": "sha512-CiEwM6kaJRkx1cP5xHksn13abTzUqMHiMMlp5Eh/v4wRcedgDTyv6Uo8+Hg9MurRbHDosO5suaPyF9uwVr4/CQ==", - "requires": { - "fast-json-stable-stringify": "^2.1.0", - "pretty-bytes": "^5.4.1", - "source-map-url": "^0.4.0", - "upath": "^1.2.0", - "webpack-sources": "^1.4.3", - "workbox-build": "6.4.2" - }, - "dependencies": { - "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - } - } - }, - "workbox-window": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.4.2.tgz", - "integrity": "sha512-KVyRKmrJg7iB+uym/B/CnEUEFG9CvnTU1Bq5xpXHbtgD9l+ShDekSl1wYpqw/O0JfeeQVOFb8CiNfvnwWwqnWQ==", - "requires": { - "@types/trusted-types": "^2.0.2", - "workbox-core": "6.4.2" - } + "dev": true }, "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": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.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==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "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": { - "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==" - } } }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "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==", - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "ws": { - "version": "7.5.7", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", - "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", - "requires": {} - }, - "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" - }, - "xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + "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 }, "yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" + "version": "2.1.1", + "dev": true }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "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==" - }, - "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==" + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true } } } diff --git a/package.json b/package.json index dd46921..f438f96 100644 --- a/package.json +++ b/package.json @@ -1,43 +1,121 @@ { "name": "jambonz-webapp", + "description": "Simple provisioning webapp for jambonz", "version": "v0.7.6", - "dependencies": { - "@testing-library/jest-dom": "^5.16.4", - "@testing-library/react": "^12.1.5", - "@testing-library/user-event": "^7.2.1", - "antd": "^4.21.0", - "axios": "^0.21.1", - "moment": "^2.29.4", - "prop-types": "^15.7.2", - "react": "^16.13.1", - "react-dom": "^16.13.1", - "react-router-dom": "^5.1.2", - "react-scripts": "^5.0.0", - "serve": "^13.0.2", - "styled-components": "^5.0.1" + "license": "MIT", + "type": "module", + "engines": { + "node": ">=14.18" }, + "contributors": [ + { + "name": "Brandon Lee Kitajchuk", + "email": "bk@kitajchuk.com", + "url": "https://www.kitajchuk.com" + }, + { + "name": "Lê Hàn Minh Khang", + "email": "mkhangle20@gmail.com" + }, + { + "name": "Dave Horton", + "email": "daveh@drachtio.org", + "url": "https://drachtio.org" + } + ], "scripts": { - "start": "PORT=${HTTP_PORT:-3001} react-scripts start", - "build": "react-scripts build", - "test": "react-scripts test", - "eject": "react-scripts eject", - "serve": "serve -s build -l ${HTTP_PORT:-3001}", + "prepare": "husky install", + "postinstall": "rm -rf public/fonts && cp -R node_modules/jambonz-ui/public/fonts public/fonts", + "start": "npm run dev", + "dev": "vite --port 3001", + "dev:server": "ts-node --esm server/dev.server.ts", + "prebuild": "rm -rf ./dist", + "build": "tsc && vite build", + "preview": "vite preview", + "lint": "eslint . --ext ts,tsx --max-warnings=0", + "format": "prettier --check .", + "test": "echo 'need to setup testing'", + "serve": "serve -s dist -l ${HTTP_PORT:-3001}", "pm2": "pm2 start npm --name \"jambonz-webapp\" -- run serve", "deploy": "npm i && npm run build && npm run pm2" }, - "eslintConfig": { - "extends": "react-app" + "dependencies": { + "dayjs": "^1.11.5", + "jambonz-ui": "^0.0.19", + "react": "^18.0.0", + "react-blockies": "^1.4.1", + "react-dom": "^18.0.0", + "react-feather": "^2.0.10", + "react-router-dom": "^6.3.0" }, - "browserslist": { - "production": [ - ">0.2%", - "not dead", - "not op_mini all" + "devDependencies": { + "@types/cors": "^2.8.12", + "@types/express": "^4.17.13", + "@types/node": "^18.6.1", + "@types/react": "^18.0.0", + "@types/react-blockies": "^1.4.1", + "@types/react-dom": "^18.0.0", + "@typescript-eslint/eslint-plugin": "^5.30.6", + "@typescript-eslint/parser": "^5.30.6", + "@vitejs/plugin-react": "^1.3.0", + "cors": "^2.8.5", + "eslint": "^8.19.0", + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-jsx-a11y": "^6.6.0", + "eslint-plugin-react": "^7.30.1", + "eslint-plugin-react-hooks": "^4.6.0", + "express": "^4.18.1", + "husky": "^8.0.1", + "lint-staged": "^13.0.3", + "nanoid": "^4.0.0", + "prettier": "^2.7.1", + "sass": "^1.53.0", + "serve": "^14.0.1", + "ts-node": "^10.9.1", + "typescript": "^4.6.3", + "vite": "^3.0.0" + }, + "lint-staged": { + "*.{ts,tsx}": "eslint --max-warnings=0", + "*.{ts,tsx,json,md,html,scss,css,yml}": "prettier --write" + }, + "eslintConfig": { + "root": true, + "extends": [ + "plugin:@typescript-eslint/recommended", + "plugin:react/recommended", + "plugin:jsx-a11y/recommended", + "prettier" ], - "development": [ - "last 1 chrome version", - "last 1 firefox version", - "last 1 safari version" + "plugins": [ + "@typescript-eslint", + "react-hooks", + "jsx-a11y", + "react" + ], + "rules": { + "react/jsx-key": [ + "error", + { + "checkFragmentShorthand": true + } + ], + "react/prop-types": [ + 0 + ], + "@typescript-eslint/no-non-null-assertion": [ + 0 + ] + }, + "parser": "@typescript-eslint/parser", + "settings": { + "react": { + "version": "detect" + } + }, + "ignorePatterns": [ + "dist", + "node_modules" ] } } diff --git a/public/favicon.ico b/public/favicon.ico index baf1340b8a528e656630bbe10c36e67d3e376a55..a12e3ef902f8b3f4d7fd76508ec69a2d51aba035 100644 GIT binary patch literal 1891 zcmV-p2b}ncP)00009a7bBm000XU z000XU0RWnu7ytkV6-h)vRA_)wDhL%kidxMcIX2hkv_DAyf->)| zORNfJ<7PLo-weyL^WMz&GoSB0VOWL*449+`%diY!05fR?Wd0_tfD(WL3n(#AU;!lt z3M`<+K!F967{~}IOEL$TTnw;}+D>4ANdN$ly#|JzVRAQGtG3#v)LUS{U?Zm{0s$Bg z0J^ckT6wynAqK@R6z)YzCzNjpyN-F5R~gF)6-5ky1>ha`k~G%(klF@AaVW*0n1E6T zl!tKSYH-Iq&i6PQD=+{+wj6TTj^JnlN^zp}0M>?ago24dF^$v<{AL%+QFAIH04!O* z%o6BEN)m<=Q0hg>Eur~@cf}Fc;_oWfrBJw?U>L!Xy=8NVlYk-u0LbU(zEuNQYZb&E zq_pr&Q%$ZcwpU#9dyx_o#D1iHUA`tys^eH>%m=}P;P^vB$O6#<@7Ndh|@xY zH79frCIHWSc)1VsXXC5va9JP9ZzVW<}=XZ#KHN5C*f@@2iXstbkV#I$~>c!^%U zxB$#Fd6K%7OWi1Z*5638FFm!~9K06XnL^=KK^(@B!>-!m@&Q0TIbb-?Z~6yE?^W*k z*t?9La0A@S6vb zMiW8@3=Lo{Y@bo2dEh}d*u$>cUZiv*B~Bb8h2$iZREMs8zAGY-GXPqy83B93yJ7@K zle+4<_MK3^7TmeQB1}w42gU(`!DD@$=RS@f~D1R70t_{NkcVxyQLp>xM4InLzRH}WFMA&SKNFn(gzfrPR+klZ0NMTGj zxjclN2?L<7f7iX_E{@VBnD+AL{2NbtS048+|Ehe=Z+z2Dp*e-ZLpYMH4H z3^YIVASI2|Q{}6jEVtSA%)ga;PggYLW>PrV*^0fIat%>;Pw;@Ct;`q z%1g}pjcG6Tzr}z795DRKZ|p%zI}F_xcE9JYyBgd%h%;4p3Wd8!_dJXvuR9myU`1mC zkZs3kKiPwnU;G=4q~(3|r5UEuSVsHfPAFdq?l1!bG}=G&t)h;RBnS1PpZ)8p_8{K? z>dbsQiSGSK`@;9a<8Dc{Iq0kzK>F~aAE{rK*Jm&Cf#ADoRsb8A0C5Jhn~%OZwbw$pb!VK)@+|n&+fKQzai|(hSxSiLK>+%Y*WW-MY;HZ zhqcg|N|IFn)Cb5+ML)9R^=U@e#lV&xq{N`uiO$d5fvt5MKYAQ(0fyc7>DPlhdq|T>+5>f+wUVxp9MzwA zSGMp?aVQO7tskqp{SZFCtyufyn&b$8TG5hGd7xX5F!DF$FCKC&I_RADzPs*sep6Zx zmwHz~!{uuv!i>I+85ri6yqaU?Dc|ZF!mcz@hj8T2z;-K1(qIB+qX(Qd!#F}`p!69J zdZVe*z?Z7gSB+UN#Dx9h)?%p zZSekh{X$^NtFHO)8$P-39K0!j=NSU`z^0t+ZHPy`IH dll2g literal 1150 zcmZQzU<5(|0R|wcz>vYhz#zuJz@P!dKp~(AL>x$A1;)n4tfHc#JU~f79v&VsOW_u? zFsZXEqhzjLiIKVaAB3Z&uRacwIyK8(bXhP+4Idw$5J(S5uZ)ZgCr~fHCSQUoP|a+Z z9$YlY93}QBRRJIX=>?gi!=I*%Y#%PYF!4yKD_2z5JR1*DrcXtP%z4 zWd`X7Vir${d7{8PFd3!>7Y(u(s+R>Au8csvAONC4=CFoJopuGOi2;T!%nXoypl}Y5 V-l_)jFHjvbl3pN}JkS8N6#&QE8CL)R diff --git a/public/favicon.svg b/public/favicon.svg new file mode 100644 index 0000000..6b4e4a3 --- /dev/null +++ b/public/favicon.svg @@ -0,0 +1,14 @@ + + + + diff --git a/public/icon.png b/public/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..549b4105ef1f79d7dd8c81eef145aa7208b5d4cc GIT binary patch literal 13587 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 BJ>mcW literal 0 HcmV?d00001 diff --git a/public/icon1024.png b/public/icon1024.png new file mode 100644 index 0000000000000000000000000000000000000000..5c687ec7ad0091ed22a2d7a53cca8a0d813245eb GIT binary patch literal 24472 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 DkbVXE literal 0 HcmV?d00001 diff --git a/public/icon192.png b/public/icon192.png new file mode 100644 index 0000000000000000000000000000000000000000..80109e5b2165739cc4daeb1e278e4789b6b5b741 GIT binary patch literal 5933 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�( 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 - - - - - - - Jambonz | Open Source CPAAS - - - -

- - diff --git a/public/manifest.json b/public/manifest.json new file mode 100644 index 0000000..14d59b4 --- /dev/null +++ b/public/manifest.json @@ -0,0 +1,36 @@ +{ + "short_name": "jambonz-webapp", + "name": "jambonz-webapp", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "icon192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "icon384.png", + "type": "image/png", + "sizes": "384x384" + }, + { + "src": "icon512.png", + "type": "image/png", + "sizes": "512x512", + "purpose": "any maskable" + }, + { + "src": "icon1024.png", + "type": "image/png", + "sizes": "1024x1024" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/public/robots.txt b/public/robots.txt index eb05362..6f27bb6 100644 --- a/public/robots.txt +++ b/public/robots.txt @@ -1,2 +1,2 @@ User-agent: * -Disallow: +Disallow: \ No newline at end of file diff --git a/public/svg/jambonz--light.svg b/public/svg/jambonz--light.svg new file mode 100644 index 0000000..7ac15be --- /dev/null +++ b/public/svg/jambonz--light.svg @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/public/svg/jambonz.svg b/public/svg/jambonz.svg new file mode 100644 index 0000000..261de32 --- /dev/null +++ b/public/svg/jambonz.svg @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/server/dev.server.ts b/server/dev.server.ts new file mode 100644 index 0000000..391e58c --- /dev/null +++ b/server/dev.server.ts @@ -0,0 +1,235 @@ +import fs from "fs"; +import path from "path"; +import cors from "cors"; +import express from "express"; +import { nanoid } from "nanoid"; + +import type { Request, Response } from "express"; +import type { + Alert, + RecentCall, + PageQuery, + CallQuery, + PagedResponse, +} from "../src/api/types"; + +const app = express(); +const port = 3002; + +app.use(cors()); + +/** RecentCalls mock API responses for local dev */ +app.get( + "/api/Accounts/:account_sid/RecentCalls", + (req: Request, res: Response) => { + const data: RecentCall[] = []; + const points = 500; + const start = new Date(Date.now() - 30 * 24 * 60 * 60 * 1000); + const now = new Date(); + const increment = (now.getTime() - start.getTime()) / points; + + for (let i = 0; i < 500; i++) { + const attempted_at = new Date(start.getTime() + i * increment); + const failed = 0 === i % 5; + const call: RecentCall = { + account_sid: req.params.account_sid, + call_sid: nanoid(), + from: "15083084809", + to: "18882349999", + answered: !failed, + sip_callid: `${nanoid()}@192.168.1.100`, + sip_status: 200, + duration: failed ? 0 : 45, + attempted_at: attempted_at.getTime(), + answered_at: attempted_at.getTime() + 3000, + terminated_at: attempted_at.getTime() + 45000, + termination_reason: "caller hungup", + host: "192.168.1.100", + remote_host: "3.55.24.34", + direction: 0 === i % 2 ? "inbound" : "outbound", + trunk: 0 === i % 2 ? "twilio" : "user", + }; + data.push(call); + } + + const query: CallQuery = { + ...req.query, + page: Number(req.query.page), + count: Number(req.query.count), + }; + + let filtered = data; + + if (query.start) { + filtered = filtered.filter((call) => { + return call.attempted_at >= new Date(query.start!).getTime(); + }); + } + + console.log("RecentCalls: filtered", filtered.length); + + if (query.days) { + filtered = filtered.filter((call) => { + return ( + call.attempted_at >= + new Date(Date.now() - query.days! * 24 * 60 * 60 * 1000).getTime() + ); + }); + } + + console.log("RecentCalls: filtered", filtered.length); + + if (query.direction) { + filtered = filtered.filter((call) => { + return call.direction === query.direction; + }); + } + + console.log("RecentCalls: filtered", filtered.length); + + if (query.answered) { + filtered = filtered.filter((call) => { + return call.answered.toString() === query.answered; + }); + } + + console.log("RecentCalls: filtered", filtered.length); + + const begin = (query.page - 1) * query.count; + const end = begin + query.count; + const paged = filtered.slice(begin, end); + + console.log("RecentCalls: paged", paged.length); + console.log("---"); + + res.status(200).json(>{ + page_size: query.count, + total: filtered.length, + page: query.page, + data: paged, + }); + } +); + +app.get( + "/api/Accounts/:account_sid/RecentCalls/:call_sid", + (req: Request, res: Response) => { + res.status(200).json({ total: Math.random() > 0.5 ? 1 : 0 }); + } +); + +app.get( + "/api/Accounts/:account_sid/RecentCalls/:call_sid/pcap", + (req: Request, res: Response) => { + /** Sample pcap file from: https://wiki.wireshark.org/SampleCaptures#sip-and-rtp */ + const pcap: Buffer = fs.readFileSync( + path.resolve(process.cwd(), "server", "sample-sip-rtp-traffic.pcap") + ); + + res + .status(200) + .set({ + "Content-Type": "application/octet-stream", + "Content-Disposition": "attachment", + }) + .send(pcap); // server: Buffer => client: Blob + } +); + +/** Alerts mock API responses for local dev */ +app.get("/api/Accounts/:account_sid/Alerts", (req: Request, res: Response) => { + const data: Alert[] = []; + const points = 500; + const start = new Date(Date.now() - 30 * 24 * 60 * 60 * 1000); + const now = new Date(); + const increment = (now.getTime() - start.getTime()) / points; + const url = "http://foo.bar"; + const vendor = "google"; + const count = 500; + + for (let i = 0; i < 500; i++) { + const time = new Date(start.getTime() + i * increment); + const scenario = i % 5; + let alert_type = ""; + let message = ""; + + switch (scenario) { + case 0: + alert_type = "webhook-failure"; + message = `${url} returned 404`; + break; + case 1: + alert_type = "webhook-connection-failure"; + message = `failed to connect to ${url}`; + break; + case 2: + alert_type = "no-tts"; + message = `text to speech credentials for ${vendor} have not been provisioned`; + break; + case 3: + alert_type = "no-carrier"; + message = "outbound call failure: no carriers have been provisioned"; + break; + case 4: + alert_type = "call-limit"; + message = `you have exceeded your provisioned call limit of ${count}; please consider upgrading your plan`; + break; + default: + break; + } + + const alert: Alert = { + account_sid: req.params.account_sid, + time: time.getTime(), + alert_type, + message, + detail: "", + }; + data.push(alert); + } + + const query: PageQuery = { + ...req.query, + page: Number(req.query.page), + count: Number(req.query.count), + }; + + let filtered = data; + + if (query.start) { + filtered = filtered.filter((call) => { + return call.time >= new Date(query.start!).getTime(); + }); + } + + console.log("Alerts: filtered", filtered.length); + + if (query.days) { + filtered = filtered.filter((call) => { + return ( + call.time >= + new Date(Date.now() - query.days! * 24 * 60 * 60 * 1000).getTime() + ); + }); + } + + console.log("Alerts: filtered", filtered.length); + + const begin = (query.page - 1) * query.count; + const end = begin + query.count; + const paged = filtered.slice(begin, end); + + console.log("Alerts: paged", paged.length); + console.log("---"); + + res.status(200).json(>{ + page_size: query.count, + total: filtered.length, + page: query.page, + data: paged, + }); +}); + +app.listen(port, () => { + console.log(`express server listening on port ${port}`); +}); diff --git a/server/sample-sip-rtp-traffic.pcap b/server/sample-sip-rtp-traffic.pcap new file mode 100644 index 0000000000000000000000000000000000000000..6e47833bd955ade1642a82e8966c43bcf2da8c6a GIT binary patch literal 111077 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 - - + {modal && ( + +
+ + setName(e.target.value)} + /> +
+
+ )} + + ); +}; diff --git a/src/containers/internal/navi/items.ts b/src/containers/internal/navi/items.ts new file mode 100644 index 0000000..1b56146 --- /dev/null +++ b/src/containers/internal/navi/items.ts @@ -0,0 +1,74 @@ +import { + ROUTE_INTERNAL_ACCOUNTS, + ROUTE_INTERNAL_SETTINGS, + ROUTE_INTERNAL_ALERTS, + ROUTE_INTERNAL_RECENT_CALLS, + ROUTE_INTERNAL_APPLICATIONS, + ROUTE_INTERNAL_CARRIERS, + ROUTE_INTERNAL_SPEECH, + ROUTE_INTERNAL_PHONE_NUMBERS, + ROUTE_INTERNAL_MS_TEAMS_TENANTS, +} from "src/router/routes"; +import { Icons } from "src/components"; + +import type { Icon } from "react-feather"; +import type { ACL } from "src/store/types"; + +export interface NaviItem { + label: string; + icon: Icon; + route: string; + acl?: keyof ACL; +} + +export const naviTop: NaviItem[] = [ + { + label: "Settings", + icon: Icons.Settings, + route: ROUTE_INTERNAL_SETTINGS, + }, + { + label: "Accounts", + icon: Icons.Activity, + route: ROUTE_INTERNAL_ACCOUNTS, + }, + { + label: "Applications", + icon: Icons.Grid, + route: ROUTE_INTERNAL_APPLICATIONS, + }, + { + label: "Recent Calls", + icon: Icons.List, + route: ROUTE_INTERNAL_RECENT_CALLS, + }, + { + label: "Alerts", + icon: Icons.AlertCircle, + route: ROUTE_INTERNAL_ALERTS, + }, +]; + +export const naviByo: NaviItem[] = [ + { + label: "Carriers", + icon: Icons.Server, + route: ROUTE_INTERNAL_CARRIERS, + }, + { + label: "Speech", + icon: Icons.MessageCircle, + route: ROUTE_INTERNAL_SPEECH, + }, + { + label: "Phone Numbers", + icon: Icons.Phone, + route: ROUTE_INTERNAL_PHONE_NUMBERS, + }, + { + label: "MS Teams Tenants", + icon: Icons.Users, + route: ROUTE_INTERNAL_MS_TEAMS_TENANTS, + acl: "hasMSTeamsFqdn", + }, +]; diff --git a/src/containers/internal/navi/styles.scss b/src/containers/internal/navi/styles.scss new file mode 100644 index 0000000..ea169e5 --- /dev/null +++ b/src/containers/internal/navi/styles.scss @@ -0,0 +1,139 @@ +@use "src/styles/vars"; +@use "src/styles/mixins"; +@use "jambonz-ui/src/styles/vars" as ui-vars; +@use "jambonz-ui/src/styles/mixins" as ui-mixins; + +.navi { + width: 100%; + max-width: vars.$widthnavi; + height: 100vh; + background-color: ui-vars.$dark; + padding-left: ui-vars.$px03; + padding-right: ui-vars.$px03; + display: flex; + flex-direction: column; + overflow-y: auto; + position: sticky; + top: 0; + + > * + * { + border-top: 1px solid vars.$darkgrey; + } + + @include mixins.mobile() { + opacity: 0; + pointer-events: none; + z-index: -1; + position: fixed; + left: 0; + top: 0; + width: 100%; + height: 100%; + max-width: 100%; + overflow-y: auto; + } + + @include mixins.small() { + padding-left: ui-vars.$px02; + padding-right: ui-vars.$px02; + } + + &.active { + @include mixins.mobile() { + pointer-events: auto; + opacity: 1; + z-index: 999; + } + } + + &__top { + display: none; + padding-top: ui-vars.$px03; + padding-bottom: ui-vars.$px03; + + @include mixins.mobile() { + display: flex; + } + + .ico { + @include mixins.icosize(); + } + } + + &__sps { + padding-top: ui-vars.$px03; + padding-bottom: ui-vars.$px03; + display: flex; + grid-gap: ui-vars.$px01; + + button[type="button"] { + cursor: pointer; + + svg { + @include mixins.pluscircle(); + } + } + } + + &__user { + padding-top: ui-vars.$px02; + padding-bottom: ui-vars.$px02; + display: flex; + justify-content: space-between; + align-items: center; + + .avatar { + border-radius: vars.$ico03; + } + + .adduser { + cursor: pointer; + + svg { + @include mixins.pluscircle(); + } + } + } + + &__routes { + padding-top: ui-vars.$px03; + padding-bottom: ui-vars.$px03; + + ul li + li { + margin-top: ui-vars.$px02; + } + } + + &__link { + @include ui-mixins.ms(); + display: flex; + align-items: center; + padding: ui-vars.$px00 ui-vars.$px01; + width: 100%; + border-radius: ui-vars.$px01; + + &.active { + background-color: #333; + color: ui-vars.$pink; + } + + svg { + width: vars.$ico0N; + height: vars.$ico0N; + stroke-width: vars.$stroke00; + margin-right: ui-vars.$px02; + } + } + + &__byo { + margin-top: auto; + color: ui-vars.$grey; + border-top: 0; + padding-bottom: ui-vars.$px02; + } + + &__logo { + padding-top: ui-vars.$px03; + padding-bottom: ui-vars.$px03; + } +} diff --git a/src/containers/internal/styles.scss b/src/containers/internal/styles.scss new file mode 100644 index 0000000..8db3c47 --- /dev/null +++ b/src/containers/internal/styles.scss @@ -0,0 +1,59 @@ +@use "src/styles/vars"; +@use "src/styles/mixins"; +@use "jambonz-ui/src/styles/vars" as ui-vars; +@use "jambonz-ui/src/styles/mixins" as ui-mixins; + +.internal { + display: flex; + + header { + padding: ui-vars.$px03; + display: flex; + justify-content: flex-end; + align-items: center; + + @include mixins.mobile() { + padding-bottom: ui-vars.$px04; + } + + @include mixins.small() { + padding-left: ui-vars.$px02; + padding-right: ui-vars.$px02; + } + + .ico { + display: none; + @include mixins.icosize(); + + @include mixins.mobile() { + display: flex; + } + } + } + + main { + width: calc(100% - #{vars.$widthnavi}); + + @include mixins.mobile() { + width: 100%; + } + + article { + padding: 0 ui-vars.$px03 ui-vars.$px04; + + @include mixins.small() { + padding-left: ui-vars.$px02; + padding-right: ui-vars.$px02; + } + } + + footer { + background-color: rgba(255, 255, 255, 0.9); + margin-top: ui-vars.$px01; + padding-top: ui-vars.$px02; + padding-bottom: ui-vars.$px02; + position: sticky; + bottom: 0; + } + } +} diff --git a/src/containers/internal/views/accounts/add.tsx b/src/containers/internal/views/accounts/add.tsx new file mode 100644 index 0000000..a699b70 --- /dev/null +++ b/src/containers/internal/views/accounts/add.tsx @@ -0,0 +1,15 @@ +import React from "react"; +import { H1 } from "jambonz-ui"; + +import { AccountForm } from "./form"; + +export const AddAccount = () => { + return ( + <> +

Add an account

+ + + ); +}; + +export default AddAccount; diff --git a/src/containers/internal/views/accounts/delete.tsx b/src/containers/internal/views/accounts/delete.tsx new file mode 100644 index 0000000..5de1924 --- /dev/null +++ b/src/containers/internal/views/accounts/delete.tsx @@ -0,0 +1,169 @@ +import React, { useEffect, useState } from "react"; +import { P } from "jambonz-ui"; + +import { ModalClose, Modal } from "src/components"; +import { getFetch } from "src/api"; +import { + API_BASE_URL, + API_APPLICATIONS, + API_PHONE_NUMBERS, + API_MS_TEAMS_TENANTS, +} from "src/api/constants"; +import { getObscured, hasLength } from "src/utils"; + +import type { + ApiKey, + Account, + Application, + PhoneNumber, + MSTeamsTenant, +} from "src/api/types"; + +type DeleteProps = { + account: Account; + handleCancel: () => void; + handleSubmit: () => void; +}; + +type InUseProps = { + items: Application[] | PhoneNumber[] | MSTeamsTenant[] | ApiKey[]; + sidKey: string; + labelKey: string; + itemsLabel: string; +}; + +interface InUse { + apps: Application[]; + phones: PhoneNumber[]; + teams: MSTeamsTenant[]; + apiKeys: ApiKey[]; +} + +const InUseItems = ({ items, itemsLabel, sidKey, labelKey }: InUseProps) => { + return ( +
    +
  • + {itemsLabel}: +
  • + {items.map((item) => { + return ( +
  • + {labelKey === "token" + ? getObscured((item as ApiKey).token) + : item[labelKey as keyof typeof item]} +
  • + ); + })} +
+ ); +}; + +export const DeleteAccount = ({ + account, + handleCancel, + handleSubmit, +}: DeleteProps) => { + const [inUse, setInUse] = useState(); + const [isDeletable, setIsDeletable] = useState(false); + + /** Fetch data to see if account can be deleted */ + useEffect(() => { + let ignore = false; + + Promise.all([ + getFetch(API_APPLICATIONS), + getFetch(API_PHONE_NUMBERS), + getFetch(API_MS_TEAMS_TENANTS), + getFetch( + `${API_BASE_URL}/Accounts/${account.account_sid}/ApiKeys` + ), + ]).then(([appsRes, phonesRes, teamsRes, apiKeysRes]) => { + if (!ignore) { + const used = { + apps: appsRes.json.filter( + (app) => app.account_sid === account.account_sid + ), + phones: phonesRes.json.filter( + (phone) => phone.account_sid === account.account_sid + ), + teams: teamsRes.json.filter( + (team) => team.account_sid === account.account_sid + ), + apiKeys: apiKeysRes.json, + }; + const deletable = + Object.keys(used).reduce((acc, key) => { + return acc + used[key as keyof InUse].length; + }, 0) === 0; + + if (deletable) { + setIsDeletable(deletable); + } else { + setInUse(used); + } + } + }); + + return function cleanup() { + ignore = true; + }; + }, []); + + return ( + <> + {isDeletable && ( + +

+ Are you sure you want to delete the account{" "} + {account.name}? +

+
+ )} + {inUse && ( + +

+ In order to delete the account it cannot be in use by any{" "} + Applications ({inUse.apps.length}),{" "} + Phone Numbers ({inUse.phones.length}), or{" "} + MS Teams Tenants ({inUse.teams.length}) or have any{" "} + Api Keys ({inUse.apiKeys.length}). +

+ {hasLength(inUse.apps) && ( + + )} + {hasLength(inUse.phones) && ( + + )} + {hasLength(inUse.teams) && ( + + )} + {hasLength(inUse.apiKeys) && ( + + )} +
+ )} + + ); +}; + +export default DeleteAccount; diff --git a/src/containers/internal/views/accounts/edit.tsx b/src/containers/internal/views/accounts/edit.tsx new file mode 100644 index 0000000..0d05441 --- /dev/null +++ b/src/containers/internal/views/accounts/edit.tsx @@ -0,0 +1,46 @@ +import React, { useEffect } from "react"; +import { H1 } from "jambonz-ui"; +import { useParams } from "react-router-dom"; + +import { ApiKeys } from "src/containers/internal/api-keys"; +import { useApiData } from "src/api"; +import { toastError } from "src/store"; +import { AccountForm } from "./form"; + +import type { Account, Application, Limit } from "src/api/types"; + +export const EditAccount = () => { + const params = useParams(); + const [data, refetch, error] = useApiData( + `Accounts/${params.account_sid}` + ); + const [limitsData, refetchLimits] = useApiData( + `Accounts/${params.account_sid}/Limits` + ); + const [apps] = useApiData("Applications"); + + /** Handle error toast at top level... */ + useEffect(() => { + if (error) { + toastError(error.msg); + } + }, [error]); + + return ( + <> +

Edit account

+ + + + ); +}; + +export default EditAccount; diff --git a/src/containers/internal/views/accounts/form.tsx b/src/containers/internal/views/accounts/form.tsx new file mode 100644 index 0000000..6041f1d --- /dev/null +++ b/src/containers/internal/views/accounts/form.tsx @@ -0,0 +1,468 @@ +import React, { useState, useEffect } from "react"; +import { P, Button, ButtonGroup, MS } from "jambonz-ui"; +import { Link, useNavigate } from "react-router-dom"; + +import { toastError, toastSuccess, useSelectState } from "src/store"; +import { + putAccount, + postAccount, + getAccountWebhook, + useApiData, + postAccountLimit, + deleteAccountLimit, +} from "src/api"; +import { ClipBoard, Icons, Modal, Section, Tooltip } from "src/components"; +import { + Selector, + Checkzone, + Passwd, + Message, + ApplicationSelect, + LocalLimits, +} from "src/components/forms"; +import { ROUTE_INTERNAL_ACCOUNTS } from "src/router/routes"; +import { DEFAULT_WEBHOOK, WEBHOOK_METHODS } from "src/api/constants"; +import { MSG_REQUIRED_FIELDS, MSG_WEBHOOK_FIELDS } from "src/constants"; + +import type { + WebHook, + Account, + Application, + WebhookMethod, + UseApiDataMap, + Limit, +} from "src/api/types"; +import { hasLength } from "src/utils"; + +type AccountFormProps = { + apps?: Application[]; + limits?: UseApiDataMap; + account?: UseApiDataMap; +}; + +export const AccountForm = ({ apps, limits, account }: AccountFormProps) => { + const navigate = useNavigate(); + const currentServiceProvider = useSelectState("currentServiceProvider"); + const [accounts] = useApiData("Accounts"); + const [name, setName] = useState(""); + const [realm, setRealm] = useState(""); + const [appId, setAppId] = useState(""); + const [recId, setRecId] = useState(""); + const [regHook, setRegHook] = useState(DEFAULT_WEBHOOK); + const [queueHook, setQueueHook] = useState(DEFAULT_WEBHOOK); + const [modal, setModal] = useState(false); + const [message, setMessage] = useState(""); + const [initialRegHook, setInitialRegHook] = useState(false); + const [initialQueueHook, setInitialQueueHook] = useState(false); + const [localLimits, setLocalLimits] = useState([]); + + /** This lets us map and render the same UI for each... */ + const webhooks = [ + { + label: "Registration", + prefix: "registration_hook", + stateVal: regHook, + stateSet: setRegHook, + initialCheck: initialRegHook, + }, + { + label: "Queue event", + prefix: "queue_event_hook", + stateVal: queueHook, + stateSet: setQueueHook, + initialCheck: initialQueueHook, + }, + ]; + const applications = [ + { + id: "device_calling_application_sid", + label: "Application for SIP device calls", + tooltip: + "This application is used to handle incoming calls from SIP users who have registered to the Account's SIP Realm.", + stateVal: appId, + stateSet: setAppId, + }, + { + id: "siprec_hook_sid", + label: "Application for SIPREC calls", + stateVal: recId, + stateSet: setRecId, + }, + ]; + + const handleConfirm = (e: React.FormEvent) => { + e.preventDefault(); + e.stopPropagation(); + setModal(true); + }; + + const handleCancel = () => { + setModal(false); + }; + + const handleRefresh = () => { + if (account && account.data) { + getAccountWebhook(account.data.account_sid) + .then(() => { + account.refetch(); + setModal(false); + toastSuccess("Webhook signing secret was successfully generated"); + }) + .catch((error) => { + toastError(error.msg); + }); + } + }; + + const updateLimits = (sid: string) => { + if (hasLength(localLimits)) { + Promise.all( + localLimits.map((limit) => { + return limit.quantity === "" + ? deleteAccountLimit(sid, limit.category) + : postAccountLimit(sid, limit); + }) + ) + .then(() => { + if (limits) { + limits.refetch(); + } + }) + .catch((error) => { + toastError(error.msg); + }); + } + }; + + const handleSubmit = (e: React.FormEvent) => { + e.preventDefault(); + + setMessage(""); + + if (accounts) { + const filtered = + account && account.data + ? accounts.filter((a) => a.account_sid !== account.data!.account_sid) + : accounts; + + if (filtered.find((a) => a.name === name)) { + setMessage( + "The name you have entered is already in use on another one of your accounts." + ); + return; + } + + if (filtered.find((a) => a.sip_realm === realm)) { + setMessage( + "The SIP Realm you have entered is already in use on another one of your accounts." + ); + return; + } + } + + if (account && account.data) { + putAccount(account.data.account_sid, { + name, + sip_realm: realm || null, + webhook_secret: account.data.webhook_secret, + siprec_hook_sid: recId || null, + queue_event_hook: queueHook || account.data.queue_event_hook, + registration_hook: regHook || account.data.registration_hook, + device_calling_application_sid: appId || null, + }) + .then(() => { + account.refetch(); + toastSuccess("Account updated successfully"); + }) + .catch((error) => { + toastError(error.msg); + }); + + updateLimits(account.data.account_sid); + } else if (currentServiceProvider) { + postAccount({ + name, + sip_realm: realm || null, + queue_event_hook: queueHook || null, + registration_hook: regHook || null, + service_provider_sid: currentServiceProvider.service_provider_sid, + }) + .then(({ json }) => { + toastSuccess("Account created successfully"); + navigate(`${ROUTE_INTERNAL_ACCOUNTS}/${json.sid}/edit`); + updateLimits(json.sid); + }) + .catch((error) => { + toastError(error.msg); + }); + } + }; + + /** Set current account data values if applicable -- e.g. "edit mode" */ + useEffect(() => { + if (account && account.data) { + setName(account.data.name); + + if (account.data.sip_realm) { + setRealm(account.data.sip_realm); + } + + if (account.data.device_calling_application_sid) { + setAppId(account.data.device_calling_application_sid); + } + + if (account.data.siprec_hook_sid) { + setRecId(account.data.siprec_hook_sid); + } + + if (account.data.registration_hook) { + setRegHook(account.data.registration_hook); + + if ( + account.data.registration_hook.username || + account.data.registration_hook.password + ) { + setInitialRegHook(true); + } else { + setInitialRegHook(false); + } + } + + if (account.data.queue_event_hook) { + setQueueHook(account.data.queue_event_hook); + + if ( + account.data.queue_event_hook.username || + account.data.queue_event_hook.password + ) { + setInitialQueueHook(true); + } else { + setInitialQueueHook(false); + } + } + } + }, [account]); + + return ( + <> +
+
+
+ {MSG_REQUIRED_FIELDS} +
+ {account && account.data && ( +
+ + +
+ )} +
+ + setName(e.target.value)} + /> +
+
+ +
+
+ + setRealm(e.target.value)} + /> +
+ {account && account.data && ( +
+ + +
+ )} + {account && + account.data && + apps && + applications.map((application) => { + return ( +
+ + {application.label} + + ) : ( + application.label + ) + } + defaultOption="None" + application={[application.stateVal, application.stateSet]} + applications={apps.filter( + (app) => app.account_sid === account.data!.account_sid + )} + /> +
+ ); + })} + {webhooks.map((webhook) => { + const selectOptions = WEBHOOK_METHODS.filter((wm) => + webhook.prefix === "queue_event_hook" ? wm.name !== "GET" : true + ); + + return ( +
+
+
+ + { + webhook.stateSet({ + ...webhook.stateVal, + url: e.target.value, + }); + }} + /> +
+
+ + { + webhook.stateSet({ + ...webhook.stateVal, + method: e.target.value as WebhookMethod, + }); + }} + options={selectOptions} + /> +
+
+
+ +
+
+ ); + })} + {message && ( +
+ +
+ )} +
+ + + + +
+
+
+ {modal && ( + +

+ Confirm generating a new webhook signing secret. Note: this will + immediately invalidate the old webhook signing secret. +

+
+ )} + + ); +}; diff --git a/src/containers/internal/views/accounts/index.tsx b/src/containers/internal/views/accounts/index.tsx new file mode 100644 index 0000000..70a3812 --- /dev/null +++ b/src/containers/internal/views/accounts/index.tsx @@ -0,0 +1,117 @@ +import React, { useState } from "react"; +import { H1, M, Button, Icon } from "jambonz-ui"; +import { Link } from "react-router-dom"; + +import { useServiceProviderData, deleteAccount } from "src/api"; +import { ROUTE_INTERNAL_ACCOUNTS } from "src/router/routes"; +import { Section, Icons, Spinner, SearchFilter } from "src/components"; +import { DeleteAccount } from "./delete"; +import { toastError, toastSuccess } from "src/store"; +import { hasLength, hasValue, useFilteredResults } from "src/utils"; + +import type { Account } from "src/api/types"; + +export const Accounts = () => { + const [accounts, refetch] = useServiceProviderData("Accounts"); + const [account, setAccount] = useState(null); + const [filter, setFilter] = useState(""); + + const filteredAccounts = useFilteredResults(filter, accounts); + + const handleDelete = () => { + if (account) { + deleteAccount(account.account_sid) + .then(() => { + refetch(); + setAccount(null); + toastSuccess( + <> + Deleted account {account.name} + + ); + }) + .catch((error) => { + toastError(error.msg); + }); + } + }; + + return ( + <> +
+

Accounts

+ + + + + +
+
+ +
+
+
+ {!hasValue(accounts) && } + {hasLength(filteredAccounts) ? ( + filteredAccounts.map((account) => { + return ( +
+
+
+ + {account.name} + + +
+
+ SID: {account.account_sid} +
+
+
+ + + + +
+
+ ); + }) + ) : ( + No Accounts. + )} +
+
+
+ +
+ {account && ( + setAccount(null)} + handleSubmit={handleDelete} + /> + )} + + ); +}; + +export default Accounts; diff --git a/src/containers/internal/views/alerts/index.tsx b/src/containers/internal/views/alerts/index.tsx new file mode 100644 index 0000000..6b49348 --- /dev/null +++ b/src/containers/internal/views/alerts/index.tsx @@ -0,0 +1,127 @@ +import React, { useEffect, useState } from "react"; +import { ButtonGroup, H1, M, MS } from "jambonz-ui"; +import dayjs from "dayjs"; + +import { getAlerts, useServiceProviderData } from "src/api"; +import { DATE_SELECTION, PER_PAGE_SELECTION } from "src/api/constants"; +import { toastError } from "src/store"; +import { hasLength, hasValue } from "src/utils"; +import { + AccountFilter, + Pagination, + Section, + SelectFilter, + Spinner, + Icons, +} from "src/components"; + +import type { Account, Alert, PageQuery } from "src/api/types"; + +export const Alerts = () => { + const [accounts] = useServiceProviderData("Accounts"); + const [accountSid, setAccountSid] = useState(""); + const [dateFilter, setDateFilter] = useState("today"); + + const [pageNumber, setPageNumber] = useState(1); + const [perPageFilter, setPerPageFilter] = useState("25"); + const [maxPageNumber, setMaxPageNumber] = useState(1); + + const [alerts, setAlerts] = useState(); + const [alertsTotal, setAlertsTotal] = useState(0); + + const handleFilterChange = () => { + const payload: Partial = { + page: pageNumber, + count: Number(perPageFilter), + ...(dateFilter === "today" + ? { start: dayjs().startOf("date").toISOString() } + : { days: Number(dateFilter) }), + }; + + getAlerts(accountSid, payload) + .then(({ json }) => { + setAlerts(json.data); + setAlertsTotal(json.total); + setMaxPageNumber(Math.ceil(json.total / Number(perPageFilter))); + }) + .catch((error) => { + toastError(error.msg); + }); + }; + + useEffect(() => { + if (accountSid) { + handleFilterChange(); + } + }, [accountSid, pageNumber, dateFilter]); + + return ( + <> +
+

Alerts

+
+
+ + +
+
+
+ {!hasValue(alerts) && } + {hasLength(alerts) ? ( + alerts.map((alert) => ( +
+
+
+ + {dayjs + .unix(alert.time / 1000) + .format("YYYY MM.DD hh:mm a")} + +
+
+
+ + {alert.message} +
+
+
+
+ )) + ) : ( + No data + )} +
+
+
+ + + Total: {alertsTotal} record{alertsTotal === 1 ? "" : "s"} + + {hasLength(alerts) && ( + + )} + setPageNumber(1)} + /> + +
+ + ); +}; + +export default Alerts; diff --git a/src/containers/internal/views/applications/add.tsx b/src/containers/internal/views/applications/add.tsx new file mode 100644 index 0000000..32eea29 --- /dev/null +++ b/src/containers/internal/views/applications/add.tsx @@ -0,0 +1,15 @@ +import React from "react"; +import { H1 } from "jambonz-ui"; + +import { ApplicationForm } from "./form"; + +export const AddApplication = () => { + return ( + <> +

Add an application

+ + + ); +}; + +export default AddApplication; diff --git a/src/containers/internal/views/applications/delete.tsx b/src/containers/internal/views/applications/delete.tsx new file mode 100644 index 0000000..22e62aa --- /dev/null +++ b/src/containers/internal/views/applications/delete.tsx @@ -0,0 +1,132 @@ +import React, { useEffect, useState } from "react"; +import { P } from "jambonz-ui"; + +import { Modal, ModalClose } from "src/components"; +import { getFetch } from "src/api"; + +import type { Application, Account, MSTeamsTenant } from "src/api/types"; +import { API_ACCOUNTS, API_MS_TEAMS_TENANTS } from "src/api/constants"; + +type DeleteProps = { + application: Application; + handleCancel: () => void; + handleSubmit: () => void; +}; + +type InUseProps = { + items: Account[] | MSTeamsTenant[]; + sidKey: string; + labelKey: string; + itemsLabel: string; +}; + +interface InUse { + accounts: Account[]; + teams: MSTeamsTenant[]; +} + +const InUseItems = ({ items, itemsLabel, sidKey, labelKey }: InUseProps) => { + return ( +
    +
  • + {itemsLabel}: +
  • + {items.map((item, index) => { + return ( +
  • + {item[labelKey as keyof typeof item]} +
  • + ); + })} +
+ ); +}; + +export const DeleteApplication = ({ + application, + handleCancel, + handleSubmit, +}: DeleteProps) => { + const [inUse, setInUse] = useState(); + const [isDeletable, setIsDeletable] = useState(false); + + useEffect(() => { + let ignore = false; + + Promise.all([ + getFetch(API_ACCOUNTS), + getFetch(API_MS_TEAMS_TENANTS), + ]).then(([accountRes, msteamRes]) => { + if (!ignore) { + const used = { + accounts: accountRes.json.filter( + (account) => + account.device_calling_application_sid === + application.application_sid || + account.siprec_hook_sid === application.application_sid + ), + teams: msteamRes.json.filter( + (team) => team.application_sid === application.application_sid + ), + }; + const deletable = + Object.keys(used).reduce((acc, key) => { + return acc + used[key as keyof InUse].length; + }, 0) === 0; + + if (deletable) { + setIsDeletable(deletable); + } else { + setInUse(used); + } + } + }); + + return function cleanup() { + ignore = true; + }; + }, []); + + return ( + <> + {isDeletable && ( + +

+ Are you sure you want to delete the application{" "} + {application.name}? +

+
+ )} + {inUse && ( + +

+ In order to delete the account it cannot be in use by any{" "} + Accounts ({inUse.accounts.length}) , or{" "} + Microsoft Teams Tenant ({inUse.teams.length}). +

+ {inUse.accounts.length > 0 && ( + + )} + {inUse.teams.length > 0 && ( + + )} +
+ )} + + ); +}; + +export default DeleteApplication; diff --git a/src/containers/internal/views/applications/edit.tsx b/src/containers/internal/views/applications/edit.tsx new file mode 100644 index 0000000..167a2e1 --- /dev/null +++ b/src/containers/internal/views/applications/edit.tsx @@ -0,0 +1,31 @@ +import React, { useEffect } from "react"; +import { H1 } from "jambonz-ui"; +import { useParams } from "react-router-dom"; + +import { useApiData } from "src/api"; +import { toastError } from "src/store"; +import { ApplicationForm } from "./form"; + +import type { Application } from "src/api/types"; + +export const EditApplication = () => { + const params = useParams(); + const [data, refetch, error] = useApiData( + `Applications/${params.application_sid}` + ); + + useEffect(() => { + if (error) { + toastError(error.msg); + } + }, [error]); + + return ( + <> +

Edit Application

+ + + ); +}; + +export default EditApplication; diff --git a/src/containers/internal/views/applications/form.tsx b/src/containers/internal/views/applications/form.tsx new file mode 100644 index 0000000..e88dbda --- /dev/null +++ b/src/containers/internal/views/applications/form.tsx @@ -0,0 +1,528 @@ +import React, { useEffect, useState } from "react"; +import { Button, ButtonGroup, MS } from "jambonz-ui"; +import { Link, useNavigate } from "react-router-dom"; + +import { toastError, toastSuccess } from "src/store"; +import { ClipBoard, Section } from "src/components"; +import { + Selector, + Checkzone, + Passwd, + Message, + AccountSelect, +} from "src/components/forms"; +import { + vendors, + LANG_EN_US, + VENDOR_GOOGLE, + LANG_EN_US_STANDARD_C, + VENDOR_AWS, + VENDOR_WELLSAID, + useSpeechVendors, +} from "src/vendor"; +import { + postApplication, + putApplication, + useServiceProviderData, + useApiData, +} from "src/api"; +import { + ROUTE_INTERNAL_ACCOUNTS, + ROUTE_INTERNAL_APPLICATIONS, +} from "src/router/routes"; +import { DEFAULT_WEBHOOK, WEBHOOK_METHODS } from "src/api/constants"; + +import type { + RecognizerVendors, + SynthesisVendors, + Voice, + VoiceLanguage, + Language, +} from "src/vendor/types"; + +import type { + Account, + WebHook, + Application, + WebhookMethod, + UseApiDataMap, +} from "src/api/types"; +import { MSG_REQUIRED_FIELDS, MSG_WEBHOOK_FIELDS } from "src/constants"; +import { useRedirect } from "src/utils"; + +type ApplicationFormProps = { + application?: UseApiDataMap; +}; + +export const ApplicationForm = ({ application }: ApplicationFormProps) => { + const navigate = useNavigate(); + const { synthesis, recognizers } = useSpeechVendors(); + const [accounts] = useServiceProviderData("Accounts"); + const [applications] = useApiData("Applications"); + const [applicationName, setApplicationName] = useState(""); + const [accountSid, setAccountSid] = useState(""); + const [callWebhook, setCallWebhook] = useState(DEFAULT_WEBHOOK); + const [initialCallWebhook, setInitialCallWebhook] = useState(false); + const [statusWebhook, setStatusWebhook] = useState(DEFAULT_WEBHOOK); + const [initialStatusWebhook, setInitialStatusWebhook] = useState(false); + const [messageWebhook, setMessageWebhook] = + useState(DEFAULT_WEBHOOK); + const [initialMessageWebhook, setInitialMessageWebhook] = useState(false); + const [synthVendor, setSynthVendor] = + useState(VENDOR_GOOGLE); + const [synthLang, setSynthLang] = useState(LANG_EN_US); + const [synthVoice, setSynthVoice] = useState(LANG_EN_US_STANDARD_C); + const [recogVendor, setRecogVendor] = + useState(VENDOR_GOOGLE); + const [recogLang, setRecogLang] = useState(LANG_EN_US); + const [message, setMessage] = useState(""); + + /** This lets us map and render the same UI for each... */ + const webhooks = [ + { + label: "Calling", + prefix: "call_webhook", + stateVal: callWebhook, + stateSet: setCallWebhook, + initialCheck: initialCallWebhook, + required: true, + }, + { + label: "Call Status", + prefix: "status_webhook", + stateVal: statusWebhook, + stateSet: setStatusWebhook, + initialCheck: initialStatusWebhook, + required: true, + }, + { + label: "Messaging", + prefix: "message_webhook", + stateVal: messageWebhook, + stateSet: setMessageWebhook, + initialCheck: initialMessageWebhook, + required: false, + }, + ]; + + useRedirect( + accounts, + ROUTE_INTERNAL_ACCOUNTS, + "You must create an account before you can create an application." + ); + + const handleSubmit = (e: React.FormEvent) => { + e.preventDefault(); + + setMessage(""); + + if (applications) { + if ( + applications.find( + (a) => + a.name === applicationName && + (!application || + !application.data || + a.application_sid !== application.data.application_sid) + ) + ) { + setMessage( + "The name you have entered is already in use on another one of your applications." + ); + return; + } + } + + const payload = { + name: applicationName, + call_hook: callWebhook || null, + account_sid: accountSid || null, + messaging_hook: messageWebhook || null, + call_status_hook: statusWebhook || null, + speech_synthesis_vendor: synthVendor || null, + speech_synthesis_language: synthLang || null, + speech_synthesis_voice: synthVoice || null, + speech_recognizer_vendor: recogVendor || null, + speech_recognizer_language: recogLang || null, + }; + + if (application && application.data) { + putApplication(application.data.application_sid, payload) + .then(() => { + application.refetch(); + toastSuccess("Application updated successfully"); + }) + .catch((error) => { + toastError(error.msg); + }); + } else { + postApplication(payload) + .then(({ json }) => { + toastSuccess("Application created successfully"); + navigate(`${ROUTE_INTERNAL_APPLICATIONS}/${json.sid}/edit`); + }) + .catch((error) => { + toastError(error.msg); + }); + } + }; + + useEffect(() => { + if (application && application.data) { + setApplicationName(application.data.name); + + if (application.data.call_hook) { + setCallWebhook(application.data.call_hook); + + if ( + application.data.call_hook.username || + application.data.call_hook.password + ) + setInitialCallWebhook(true); + else setInitialCallWebhook(false); + } + + if (application.data.call_status_hook) { + setStatusWebhook(application.data.call_status_hook); + + if ( + application.data.call_status_hook.username || + application.data.call_status_hook.password + ) + setInitialStatusWebhook(true); + else setInitialStatusWebhook(false); + } + + if (application.data.messaging_hook) { + setMessageWebhook(application.data.messaging_hook); + + if ( + application.data.messaging_hook.username || + application.data.messaging_hook.password + ) + setInitialMessageWebhook(true); + else setInitialMessageWebhook(false); + } + + if (application.data.account_sid) + setAccountSid(application.data.account_sid); + + if (application.data.messaging_hook) + setMessageWebhook(application.data.messaging_hook); + + if (application.data.speech_synthesis_vendor) + setSynthVendor( + application.data.speech_synthesis_vendor as keyof SynthesisVendors + ); + + if (application.data.speech_synthesis_language) + setSynthLang( + application.data.speech_synthesis_language as keyof RecognizerVendors + ); + + if (application.data.speech_synthesis_voice) + setSynthVoice(application.data.speech_synthesis_voice); + + if (application.data.speech_recognizer_vendor) + setRecogVendor( + application.data.speech_recognizer_vendor as keyof RecognizerVendors + ); + + if (application.data.speech_recognizer_language) + setRecogLang(application.data.speech_recognizer_language); + } + }, [application]); + + return ( +
+
+
+ {MSG_REQUIRED_FIELDS} +
+ {application && application.data && ( +
+ + +
+ )} +
+ + setApplicationName(e.target.value)} + /> +
+
+ +
+ {webhooks.map((webhook) => { + return ( +
+
+
+ + { + webhook.stateSet({ + ...webhook.stateVal, + url: e.target.value, + }); + }} + /> +
+
+ + { + webhook.stateSet({ + ...webhook.stateVal, + method: e.target.value as WebhookMethod, + }); + }} + options={WEBHOOK_METHODS} + /> +
+
+ +
+ ); + })} + {synthesis && ( +
+ + { + const vendor = e.target.value as keyof SynthesisVendors; + setSynthVendor(vendor); + + /** When using Google and en-US, ensure "Standard-C" is used as default */ + if ( + e.target.value === VENDOR_GOOGLE && + synthLang === LANG_EN_US + ) { + setSynthVoice(LANG_EN_US_STANDARD_C); + return; + } + + /** Google and AWS have different language lists */ + /** If the new language doesn't map then default to "en-US" */ + let newLang = synthesis[vendor].find( + (lang) => lang.code === synthLang + ); + + if (newLang) { + setSynthVoice(newLang.voices[0].value); + return; + } + + newLang = synthesis[vendor].find( + (lang) => lang.code === LANG_EN_US + ); + + setSynthLang(LANG_EN_US); + setSynthVoice(newLang!.voices[0].value); + }} + /> + {synthVendor && synthLang && ( + <> + + ({ + name: lang.name, + value: lang.code, + }) + )} + onChange={(e) => { + const language = e.target.value; + setSynthLang(language); + + /** When using Google and en-US, ensure "Standard-C" is used as default */ + if ( + synthVendor === VENDOR_GOOGLE && + language === LANG_EN_US + ) { + setSynthVoice(LANG_EN_US_STANDARD_C); + return; + } + + const newLang = synthesis[ + synthVendor as keyof SynthesisVendors + ].find((lang) => lang.code === language); + + setSynthVoice(newLang!.voices[0].value); + }} + /> + + lang.code === synthLang) + .flatMap((lang: VoiceLanguage) => + lang.voices.map((voice: Voice) => ({ + name: voice.name, + value: voice.value, + })) + ) as Voice[] + } + onChange={(e) => setSynthVoice(e.target.value)} + /> + + )} +
+ )} + {recognizers && ( +
+ + vendor.value != VENDOR_WELLSAID + )} + onChange={(e) => { + const vendor = e.target.value as keyof RecognizerVendors; + setRecogVendor(vendor); + + /** Google and AWS have different language lists */ + /** If the new language doesn't map then default to "en-US" */ + const newLang = recognizers[vendor].find( + (lang: Language) => lang.code === recogLang + ); + + if ( + (vendor === VENDOR_GOOGLE || vendor === VENDOR_AWS) && + !newLang + ) { + setRecogLang(LANG_EN_US); + } + }} + /> + {recogVendor && recogLang && ( + <> + + ({ + name: lang.name, + value: lang.code, + }))} + onChange={(e) => { + setRecogLang(e.target.value); + }} + /> + + )} +
+ )} + {message &&
{}
} +
+ + + + +
+
+
+ ); +}; + +export default ApplicationForm; diff --git a/src/containers/internal/views/applications/index.tsx b/src/containers/internal/views/applications/index.tsx new file mode 100644 index 0000000..ba42b8e --- /dev/null +++ b/src/containers/internal/views/applications/index.tsx @@ -0,0 +1,191 @@ +import React, { useEffect, useState } from "react"; +import { H1, M, Button, Icon } from "jambonz-ui"; +import { Link } from "react-router-dom"; + +import { deleteApplication, getFetch, useServiceProviderData } from "src/api"; +import { API_ACCOUNTS } from "src/api/constants"; +import { + ROUTE_INTERNAL_APPLICATIONS, + ROUTE_INTERNAL_ACCOUNTS, +} from "src/router/routes"; +import { + Icons, + Section, + Spinner, + AccountFilter, + SearchFilter, +} from "src/components"; +import { DeleteApplication } from "./delete"; +import { toastError, toastSuccess, useSelectState } from "src/store"; +import { hasLength, hasValue, useFilteredResults } from "src/utils"; + +import type { Application, Account } from "src/api/types"; + +export const Applications = () => { + const currentServiceProvider = useSelectState("currentServiceProvider"); + const [accounts] = useServiceProviderData("Accounts"); + const [accountSid, setAccountSid] = useState(""); + const [application, setApplication] = useState(null); + const [applications, setApplications] = useState(); + const [filter, setFilter] = useState(""); + + const filteredApplications = useFilteredResults( + filter, + applications + ); + + const getApplications = () => { + getFetch(`${API_ACCOUNTS}/${accountSid}/Applications`) + .then(({ json }) => setApplications(json)) + .catch((error) => { + toastError(error.msg); + }); + }; + + const handleDelete = () => { + if (application) { + deleteApplication(application.application_sid) + .then(() => { + getApplications(); + setApplication(null); + toastSuccess( + <> + Deleted application {application.name} + + ); + }) + .catch((error) => { + toastError(error.msg); + }); + } + }; + + useEffect(() => { + if (accountSid) { + getApplications(); + } else if (accounts && !accounts.length) { + setApplications([]); + } + }, [accountSid, accounts]); + + useEffect(() => { + return function cleanup() { + setAccountSid(""); + setApplications(undefined); + }; + }, [currentServiceProvider]); + + return ( + <> +
+

Applications

+ {accountSid && ( + + + + + + )} +
+
+ + +
+
+
+ {!hasValue(applications) && } + {hasLength(filteredApplications) ? ( + filteredApplications.map((application) => { + return ( +
+
+
+ + {application.name} + + +
+
+
+
+ + + { + accounts?.find( + (acct) => + acct.account_sid === application.account_sid + )?.name + } + +
+
+
+
+
+ + + + +
+
+ ); + }) + ) : accountSid ? ( + No applications. + ) : ( + + You must{" "} + + create an account + {" "} + before you can create an application. + + )} +
+
+ {accountSid && ( +
+ +
+ )} + {application && ( + setApplication(null)} + handleSubmit={handleDelete} + /> + )} + + ); +}; + +export default Applications; diff --git a/src/containers/internal/views/carriers/add.tsx b/src/containers/internal/views/carriers/add.tsx new file mode 100644 index 0000000..075dc95 --- /dev/null +++ b/src/containers/internal/views/carriers/add.tsx @@ -0,0 +1,15 @@ +import React from "react"; +import { H1 } from "jambonz-ui"; + +import { CarrierForm } from "./form"; + +export const AddCarrier = () => { + return ( + <> +

Add a carrier

+ + + ); +}; + +export default AddCarrier; diff --git a/src/containers/internal/views/carriers/delete.tsx b/src/containers/internal/views/carriers/delete.tsx new file mode 100644 index 0000000..8f53ee4 --- /dev/null +++ b/src/containers/internal/views/carriers/delete.tsx @@ -0,0 +1,74 @@ +import React, { useEffect, useState } from "react"; +import { P } from "jambonz-ui"; + +import { Modal, ModalClose } from "src/components"; +import { getFetch } from "src/api"; +import { API_PHONE_NUMBERS } from "src/api/constants"; +import { formatPhoneNumber, hasLength } from "src/utils"; + +import type { Carrier, PhoneNumber } from "src/api/types"; + +type DeleteProps = { + carrier: Carrier; + handleCancel: () => void; + handleSubmit: () => void; +}; + +export const DeleteCarrier = ({ + carrier, + handleCancel, + handleSubmit, +}: DeleteProps) => { + const [phoneNumbers, setPhoneNumbers] = useState(); + + useEffect(() => { + let ignore = false; + + getFetch(API_PHONE_NUMBERS).then(({ json }) => { + if (!ignore) { + setPhoneNumbers( + json.filter( + (phone) => phone.voip_carrier_sid === carrier.voip_carrier_sid + ) + ); + } + }); + + return function cleanup() { + ignore = true; + }; + }, []); + + return ( + <> + {phoneNumbers && !hasLength(phoneNumbers) && ( + +

+ Are you sure you want to delete carrier{" "} + {carrier.name}? +

+
+ )} + {hasLength(phoneNumbers) && ( + +

+ In order to delete the carrier it cannot be in use by any{" "} + Phone Numbers ({phoneNumbers.length}). +

+
    +
  • + Phone Numbers: +
  • + {phoneNumbers.map((phone) => { + return ( +
  • + {formatPhoneNumber(phone.number)} +
  • + ); + })} +
+
+ )} + + ); +}; diff --git a/src/containers/internal/views/carriers/edit.tsx b/src/containers/internal/views/carriers/edit.tsx new file mode 100644 index 0000000..edce6a1 --- /dev/null +++ b/src/containers/internal/views/carriers/edit.tsx @@ -0,0 +1,47 @@ +import React, { useEffect } from "react"; +import { H1 } from "jambonz-ui"; +import { useParams } from "react-router-dom"; + +import { useApiData } from "src/api"; +import { toastError } from "src/store"; +import { CarrierForm } from "./form"; + +import { Carrier, SipGateway, SmppGateway } from "src/api/types"; + +export const EditCarrier = () => { + const params = useParams(); + const [data, refetch, error] = useApiData( + `VoipCarriers/${params.voip_carrier_sid}` + ); + const [sipGateways, sipGatewaysRefetch] = useApiData( + `SipGateways?voip_carrier_sid=${params.voip_carrier_sid}` + ); + const [smppGateways, smppGatewaysRefetch] = useApiData( + `SmppGateways?voip_carrier_sid=${params.voip_carrier_sid}` + ); + + useEffect(() => { + if (error) { + toastError(error.msg); + } + }, [error]); + + return ( + <> +

Edit carrier

+ + + ); +}; + +export default EditCarrier; diff --git a/src/containers/internal/views/carriers/form.tsx b/src/containers/internal/views/carriers/form.tsx new file mode 100644 index 0000000..e52a6c6 --- /dev/null +++ b/src/containers/internal/views/carriers/form.tsx @@ -0,0 +1,1247 @@ +import React, { useEffect, useRef, useState } from "react"; +import { Link, useNavigate } from "react-router-dom"; +import { Button, ButtonGroup, Icon, MS, MXS, Tab, Tabs } from "jambonz-ui"; + +import { + deleteSipGateway, + deleteSmppGateway, + postCarrier, + postSipGateway, + postSmppGateway, + putCarrier, + putSipGateway, + putSmppGateway, + useApiData, + useServiceProviderData, +} from "src/api"; +import { + DEFAULT_SIP_GATEWAY, + DEFAULT_SMPP_GATEWAY, + FQDN, + FQDN_TOP_LEVEL, + INVALID, + NETMASK_OPTIONS, + TCP_MAX_PORT, + TECH_PREFIX_MINLENGTH, +} from "src/api/constants"; +import { Icons, Section } from "src/components"; +import { + Checkzone, + Message, + Passwd, + Selector, + AccountSelect, + ApplicationSelect, +} from "src/components/forms"; +import { MSG_REQUIRED_FIELDS } from "src/constants"; +import { ROUTE_INTERNAL_CARRIERS } from "src/router/routes"; +import { toastError, toastSuccess, useSelectState } from "src/store"; +import { getIpValidationType, hasLength, isValidPort } from "src/utils"; + +import type { + Account, + UseApiDataMap, + Carrier, + SipGateway, + SmppGateway, + PredefinedCarriers, + Sbc, + Smpp, + Application, +} from "src/api/types"; + +type CarrierFormProps = { + carrier?: UseApiDataMap; + carrierSipGateways?: UseApiDataMap; + carrierSmppGateways?: UseApiDataMap; +}; + +export const CarrierForm = ({ + carrier, + carrierSipGateways, + carrierSmppGateways, +}: CarrierFormProps) => { + const navigate = useNavigate(); + const currentServiceProvider = useSelectState("currentServiceProvider"); + + const refSipIp = useRef([]); + const refSipPort = useRef([]); + const refSmppIp = useRef([]); + const refSmppPort = useRef([]); + + const [sbcs] = useApiData("Sbcs"); + const [smpps] = useApiData("Smpps"); + const [applications] = useServiceProviderData("Applications"); + const [accounts] = useServiceProviderData("Accounts"); + const [predefinedCarriers] = + useApiData("PredefinedCarriers"); + + const [activeTab, setActiveTab] = useState(""); + const [predefinedName, setPredefinedName] = useState(""); + + const [carrierName, setCarrierName] = useState(""); + const [isActive, setIsActive] = useState(true); + const [e164, setE164] = useState(false); + const [applicationSid, setApplicationSid] = useState(""); + const [accountSid, setAccountSid] = useState(""); + + const [sipRegister, setSipRegister] = useState(false); + const [sipUser, setSipUser] = useState(""); + const [sipPass, setSipPass] = useState(""); + const [sipRealm, setSipRealm] = useState(""); + const [initialRegister, setInitialRegister] = useState(false); + + const [prefix, setPrefix] = useState(""); + const [initialPrefix, setInitialPrefix] = useState(false); + const [diversion, setDiversion] = useState(""); + const [initialDiversion, setInitialDiversion] = useState(false); + + const [smppSystemId, setSmppSystemId] = useState(""); + const [smppPass, setSmppPass] = useState(""); + const [smppInboundSystemId, setSmppInboundSystemId] = useState(""); + const [smppInboundPass, setSmppInboundPass] = useState(""); + + const [sipGateways, setSipGateways] = useState([ + DEFAULT_SIP_GATEWAY, + ]); + const [smppGateways, setSmppGateways] = useState([ + { + ...DEFAULT_SMPP_GATEWAY, + inbound: 0, + }, + { + ...DEFAULT_SMPP_GATEWAY, + outbound: 0, + }, + ]); + + const [sipMessage, setSipMessage] = useState(""); + const [smppInboundMessage, setSmppInboundMessage] = useState(""); + const [smppOutboundMessage, setSmppOutboundMessage] = useState(""); + + const setCarrierStates = (obj: Carrier) => { + if (obj) { + if (obj.name) { + setCarrierName(obj.name); + } + if (obj.e164_leading_plus) { + setE164(obj.e164_leading_plus); + } + if (obj.application_sid) { + setApplicationSid(obj.application_sid); + } + if (obj.account_sid) { + setAccountSid(obj.account_sid); + } + + if (obj.requires_register) { + setSipRegister(obj.requires_register); + } + if (obj.register_username) { + setSipUser(obj.register_username); + } + if (obj.register_password) { + setSipPass(obj.register_password); + } + if (obj.register_sip_realm) { + setSipRealm(obj.register_sip_realm); + } + + if ( + obj.requires_register || + obj.register_username || + obj.register_password || + obj.register_sip_realm + ) { + setInitialRegister(true); + } else { + setInitialRegister(false); + } + + if (obj.tech_prefix) { + setPrefix(obj.tech_prefix); + setInitialPrefix(true); + } else { + setInitialPrefix(false); + } + if (obj.diversion) { + setDiversion(obj.diversion); + setInitialDiversion(true); + } else { + setInitialDiversion(false); + } + + if (obj.smpp_system_id) { + setSmppSystemId(obj.smpp_system_id); + } + if (obj.smpp_password) { + setSmppPass(obj.smpp_password); + } + if (obj.smpp_inbound_system_id) { + setSmppInboundSystemId(obj.smpp_inbound_system_id); + } + if (obj.smpp_inbound_password) { + setSmppInboundPass(obj.smpp_inbound_password); + } + } + }; + + const addSipGateway = () => { + setSipGateways((curr) => [...curr, DEFAULT_SIP_GATEWAY]); + }; + + const addSmppGateway = (obj: Partial) => { + setSmppGateways((curr) => [ + ...curr, + { + ...DEFAULT_SMPP_GATEWAY /** { inbound: 1, outbound: 1 } */, + ...obj /** pass the values: e.g. { outbound: 1, inbound: 0 } */, + }, + ]); + }; + + const updateSipGateways = ( + index: number, + key: string, + value: typeof sipGateways[number][keyof SipGateway] + ) => { + setSipGateways( + sipGateways.map((g, i) => (i === index ? { ...g, [key]: value } : g)) + ); + }; + + const updateSmppGateways = ( + index: number, + key: string, + value: typeof smppGateways[number][keyof SmppGateway] + ) => { + setSmppGateways( + smppGateways.map((g, i) => (i === index ? { ...g, [key]: value } : g)) + ); + }; + + const handleSipGatewayPutPost = (voip_carrier_sid: string) => { + Promise.all( + sipGateways.map(({ sip_gateway_sid, ...g }: SipGateway) => + sip_gateway_sid + ? putSipGateway(sip_gateway_sid, g) + : postSipGateway({ ...g, voip_carrier_sid }) + ) + ).then(() => { + if (carrierSipGateways) { + carrierSipGateways.refetch(); + } + }); + }; + + const handleSmppGatewayPutPost = (voip_carrier_sid: string) => { + Promise.all( + smppGateways + /** Ensure the empty UI fields don't actually save in the background... */ + .filter((g) => g.ipv4.trim() !== "" && isValidPort(g.port)) + .map(({ smpp_gateway_sid, ...g }: SmppGateway) => { + smpp_gateway_sid + ? putSmppGateway(smpp_gateway_sid, g) + : postSmppGateway({ ...g, voip_carrier_sid }); + }) + ).then(() => { + if (carrierSmppGateways) { + carrierSmppGateways.refetch(); + } + }); + }; + + const handleSipGatewayDelete = (g?: SipGateway) => { + if (g && g.sip_gateway_sid) { + deleteSipGateway(g.sip_gateway_sid).then(() => + toastSuccess("SIP gateway successfully deleted") + ); + } + }; + + const handleSmppGatewayDelete = (g?: SmppGateway) => { + if (g && g.smpp_gateway_sid) { + deleteSmppGateway(g.smpp_gateway_sid).then(() => + toastSuccess( + `SMPP ${ + g.outbound ? "outbound" : "inbound" + } gateway successfully deleted` + ) + ); + } + }; + + const hasEmptySmppGateways = (type: keyof SmppGateway) => { + const filtered = smppGateways.filter((g) => g[type]); + return ( + hasLength(filtered) && + filtered.reduce((acc, g) => { + return acc + g.ipv4.trim(); + }, "") === "" + ); + }; + + const getSipValidation = () => { + if (!hasLength(sipGateways)) { + return "You must provide at least one SIP Gateway."; + } + + for (let i = 0; i < sipGateways.length; i++) { + const gateway = sipGateways[i]; + const type = getIpValidationType(gateway.ipv4); + + if (type === FQDN_TOP_LEVEL) { + refSipIp.current[i].focus(); + return "When using an FQDN, you must use a subdomain (e.g. sip.example.com)."; + } else if (type === FQDN && (!gateway.outbound || gateway.inbound)) { + refSipIp.current[i].focus(); + return "A fully qualified domain name may only be used for outbound calls."; + } else if (type === INVALID) { + refSipIp.current[i].focus(); + return "Please provide a valid IP address or fully qualified domain name."; + } + + /** Duplicates validation */ + const dupeSipGateway = sipGateways.find((g) => { + return ( + g !== gateway && + gateway.ipv4 && + g.ipv4 === gateway.ipv4 && + g.port === gateway.port + ); + }); + + if (dupeSipGateway) { + refSipIp.current[i].focus(); + return "Each SIP gateway must have a unique IP address."; + } + } + }; + + const getSmppValidation = () => { + for (let i = 0; i < smppGateways.length; i++) { + const gateway = smppGateways[i]; + const gatewayType = gateway.inbound ? "inbound" : "outbound"; + const type = getIpValidationType(gateway.ipv4); + + if (type === FQDN_TOP_LEVEL) { + refSmppIp.current[i].focus(); + return { + msg: "When using an FQDN, you must use a subdomain (e.g. sip.example.com).", + type: gatewayType, + }; + } else if (type === FQDN && (!gateway.outbound || gateway.inbound)) { + refSmppIp.current[i].focus(); + return { + msg: "A fully qualified domain name may only be used for outbound calls.", + type: gatewayType, + }; + } else if (type === INVALID && gateway.ipv4.trim() !== "") { + refSmppIp.current[i].focus(); + return { + msg: `Please provide a valid ${gatewayType} IP address or fully qualified domain name.`, + type: gatewayType, + }; + } + + /** Duplicates validation */ + const dupeSmppGateway = smppGateways.find((g) => { + return ( + g !== gateway && + gateway.ipv4 && + g[gatewayType] === gateway[gatewayType] && + g.ipv4 === gateway.ipv4 && + g.port === gateway.port + ); + }); + + if (dupeSmppGateway) { + refSmppIp.current[i].focus(); + return { + msg: `Each ${gatewayType} SMPP gateway must have a unique IP address.`, + type: gatewayType, + }; + } + } + }; + + const shouldValidateSmpp = () => { + return ( + smppSystemId || + smppPass || + smppInboundPass || + !hasEmptySmppGateways("outbound") || + !hasEmptySmppGateways("inbound") + ); + }; + + const handleActiveTab = () => { + /** When to switch to `sip` tab */ + + const emptySipIp = sipGateways.find((g) => g.ipv4.trim() === ""); + const invalidSipPort = sipGateways.find((g) => !isValidPort(g.port)); + const sipGatewayValidation = getSipValidation(); + + /** Empty SIP gateway */ + /** Invalid SIP port number */ + /** Outbound auth conditionals */ + if ( + emptySipIp || + invalidSipPort || + sipGatewayValidation || + (sipUser && !sipPass) || + (sipPass && !sipUser) || + (sipRegister && (!sipRealm || !sipPass || !sipUser)) || + (prefix && prefix.length < TECH_PREFIX_MINLENGTH) + ) { + setActiveTab("sip"); + return; /** Important so browser contstraints work properly */ + } + + /** When to switch to the `smpp` tab */ + + const invalidSmppPort = smppGateways + .filter((g) => g.outbound) + .find((g) => !isValidPort(g.port)); + const smppGatewayValidation = shouldValidateSmpp() && getSmppValidation(); + + /** Outbound user/pass filled out but no gateways */ + /** Inbound gateways but no inbound pass */ + /** Invalid SMPP port number */ + if ( + invalidSmppPort || + smppGatewayValidation || + (smppSystemId && smppPass && hasEmptySmppGateways("outbound")) || + (!smppInboundPass && !hasEmptySmppGateways("inbound")) + ) { + setActiveTab("smpp"); + } + }; + + const handleSubmit = (e: React.FormEvent) => { + e.preventDefault(); + + setSipMessage(""); + setSmppInboundMessage(""); + setSmppOutboundMessage(""); + + const sipGatewayValidation = getSipValidation(); + + if (sipGatewayValidation) { + setSipMessage(sipGatewayValidation); + return; + } + + /** Conditions to validate SMPP gateway fields... */ + if (shouldValidateSmpp()) { + const smppGatewayValidation = getSmppValidation(); + + if (smppGatewayValidation) { + if (smppGatewayValidation.type === "outbound") { + setSmppOutboundMessage(smppGatewayValidation.msg); + } else { + setSmppInboundMessage(smppGatewayValidation.msg); + } + return; + } + } + + if (currentServiceProvider) { + const carrierPayload: Partial = { + name: carrierName.trim(), + e164_leading_plus: e164, + application_sid: applicationSid || null, + account_sid: accountSid || null, + requires_register: sipRegister, + register_username: sipUser.trim() || null, + register_password: sipPass.trim() || null, + register_sip_realm: sipRealm.trim() || null, + tech_prefix: prefix.trim() || null, + diversion: diversion.trim() || null, + is_active: isActive, + smpp_system_id: smppSystemId.trim() || null, + smpp_password: smppPass.trim() || null, + smpp_inbound_system_id: smppInboundSystemId.trim() || null, + smpp_inbound_password: smppInboundPass.trim() || null, + }; + + if (carrier && carrier.data) { + putCarrier( + currentServiceProvider.service_provider_sid, + carrier.data.voip_carrier_sid, + carrierPayload + ) + .then(() => { + if (carrier.data?.voip_carrier_sid) { + handleSipGatewayPutPost(carrier.data.voip_carrier_sid); + handleSmppGatewayPutPost(carrier.data.voip_carrier_sid); + } + + toastSuccess("Carrier updated successfully"); + carrier.refetch(); + }) + .catch((error) => { + toastError(error.msg); + }); + } else { + postCarrier(currentServiceProvider.service_provider_sid, { + ...carrierPayload, + service_provider_sid: currentServiceProvider.service_provider_sid, + }) + .then(({ json }) => { + handleSipGatewayPutPost(json.sid); + handleSmppGatewayPutPost(json.sid); + + toastSuccess("Carrier created successfully"); + navigate(`${ROUTE_INTERNAL_CARRIERS}/${json.sid}/edit`); + }) + .catch((error) => { + toastError(error.msg); + }); + } + } + }; + + useEffect(() => { + if (predefinedName && predefinedCarriers && hasLength(predefinedCarriers)) { + setCarrierStates( + predefinedCarriers?.filter((a) => a.name === predefinedName)[0] + ); + } + }, [predefinedName]); + + useEffect(() => { + if (carrier && carrier.data) { + setCarrierStates(carrier.data); + } + }, [carrier]); + + /** This fixes a re-rendering glitch when we used useEffect that was annoying but not breaking */ + /** https://beta.reactjs.org/learn/you-might-not-need-an-effect#adjusting-some-state-when-a-prop-changes */ + const [prevSipGateways, setPrevSipGateways] = useState(); + const [prevSmppGateways, setPrevSmppGateways] = useState(); + + if ( + carrierSipGateways && + hasLength(carrierSipGateways.data) && + carrierSipGateways.data !== prevSipGateways + ) { + setPrevSipGateways(carrierSipGateways.data); /** Deadly important */ + setSipGateways(carrierSipGateways.data); + } + + if ( + carrierSmppGateways && + hasLength(carrierSmppGateways.data) && + carrierSmppGateways.data !== prevSmppGateways + ) { + const inbound = carrierSmppGateways.data.filter((g) => g.inbound); + const outbound = carrierSmppGateways.data.filter((g) => g.outbound); + + setPrevSmppGateways(carrierSmppGateways.data); /** Deadly important */ + setSmppGateways(carrierSmppGateways.data); + + if (inbound.length <= 0) { + addSmppGateway({ inbound: 1, outbound: 0 }); + } + + if (outbound.length <= 0) { + addSmppGateway({ outbound: 1, inbound: 0 }); + } + } + + return ( +
+
+
+ {MSG_REQUIRED_FIELDS} +
+
+
+
+ + setCarrierName(e.target.value)} + /> +
+ {!carrier && ( +
+ + ({ + name: carrier.name, + value: carrier.name, + }) + ) + : [] + )} + onChange={(e) => setPredefinedName(e.target.value)} + /> +
+ )} +
+ +
+ + +
+
+ + Have your carriers whitelist our SIP signaling IPs + + {hasLength(sbcs) && + sbcs.map((sbc) => { + return ( + + {sbc.ipv4}:{sbc.port} + + ); + })} +
+
+
+ + + Prepend a leading + on origination attempts. + + + {accountSid && hasLength(applications) && ( + <> + application.account_sid === accountSid + )} + /> + + )} +
+
+ +
+
+ +
+
+ +
+
+ + + At least one SIP gateway is required. + + + {sipMessage && } + {hasLength(sipGateways) && + sipGateways.map((g, i) => ( +
+
+
+ { + updateSipGateways(i, "ipv4", e.target.value); + }} + ref={(ref: HTMLInputElement) => + (refSipIp.current[i] = ref) + } + /> +
+
+ { + updateSipGateways( + i, + "port", + Number(e.target.value) + ); + }} + ref={(ref: HTMLInputElement) => + (refSipPort.current[i] = ref) + } + /> +
+
+ { + updateSipGateways(i, "netmask", e.target.value); + }} + /> +
+
+
+
+ +
+
+ +
+
+ +
+ ))} + + + +
+
+ +
+
+ + Have your carriers whitelist our SMPP signaling IPs + + {hasLength(smpps) && + smpps.map((smpp) => { + return ( + + {smpp.ipv4}:{smpp.port} + {smpp.use_tls && " (TLS)"} + + ); + })} +
+
+
+ + + { + setSmppSystemId(e.target.value); + }} + /> + + { + setSmppPass(e.target.value); + }} + /> + + + + At least one outbound gateway is required when using system ID + or password above. + + + + {smppOutboundMessage && } + {hasLength(smppGateways.filter((g) => g.outbound)) && + smppGateways.map((g, i) => { + return g.outbound ? ( +
+
+
+ + updateSmppGateways(i, "ipv4", e.target.value) + } + ref={(ref: HTMLInputElement) => + (refSmppIp.current[i] = ref) + } + /> +
+
+ + updateSmppGateways( + i, + "port", + Number(e.target.value) + ) + } + ref={(ref: HTMLInputElement) => + (refSmppPort.current[i] = ref) + } + /> +
+
+ +
+
+ +
+ ) : null; + })} + + + +
+
+ + + { + setSmppInboundSystemId(e.target.value); + }} + /> + + + + Password is required if whitelisting carrier IP address(es) + below. + + + { + setSmppInboundPass(e.target.value); + }} + /> + + + + Fully qualified domain names (e.g. sip.example.com) may only + be used for outbound calls above. + + + + {smppInboundMessage && } + {hasLength(smppGateways.filter((g) => g.inbound)) && + smppGateways.map((g, i) => { + return g.inbound ? ( +
+
+
+ + updateSmppGateways(i, "ipv4", e.target.value) + } + ref={(ref: HTMLInputElement) => + (refSmppIp.current[i] = ref) + } + /> +
+
+ + updateSmppGateways(i, "netmask", e.target.value) + } + /> +
+
+ +
+ ) : null; + })} + + + +
+
+
+
+ + + + +
+
+
+ ); +}; + +export default CarrierForm; diff --git a/src/containers/internal/views/carriers/gateways.tsx b/src/containers/internal/views/carriers/gateways.tsx new file mode 100644 index 0000000..70a6d79 --- /dev/null +++ b/src/containers/internal/views/carriers/gateways.tsx @@ -0,0 +1,59 @@ +import React from "react"; + +import { Icons, Spinner } from "src/components"; +import { useApiData } from "src/api"; +import { hasLength } from "src/utils"; + +import type { Carrier, SipGateway } from "src/api/types"; + +type GatewaysProps = { + carrier: Carrier; +}; + +export const Gateways = ({ carrier }: GatewaysProps) => { + const [gateways, , error] = useApiData( + `SipGateways?voip_carrier_sid=${carrier.voip_carrier_sid}` + ); + + const renderGateways = () => { + if (gateways) { + const inbound = gateways.filter((g) => g.inbound); + const outbound = gateways.filter((g) => g.outbound); + + return ( + <> +
+
+ + {inbound.length} inbound +
+
+
+
+ + {outbound.length} outbound +
+
+ + ); + } + }; + + return ( + <> + {!error && !gateways && ( +
+ + Checking gateways... +
+ )} + {error && ( +
+ + Gateways error +
+ )} + {hasLength(gateways) && renderGateways()} + + ); +}; diff --git a/src/containers/internal/views/carriers/index.tsx b/src/containers/internal/views/carriers/index.tsx new file mode 100644 index 0000000..e293abd --- /dev/null +++ b/src/containers/internal/views/carriers/index.tsx @@ -0,0 +1,191 @@ +import React, { useState, useMemo } from "react"; +import { Link } from "react-router-dom"; +import { Button, H1, Icon, M } from "jambonz-ui"; +import { + deleteCarrier, + deleteSipGateway, + deleteSmppGateway, + getFetch, + useServiceProviderData, +} from "src/api"; +import { toastSuccess, toastError } from "src/store"; +import { ROUTE_INTERNAL_CARRIERS } from "src/router/routes"; +import { + AccountFilter, + Icons, + Section, + Spinner, + SearchFilter, +} from "src/components"; +import { hasLength, hasValue, useFilteredResults } from "src/utils"; +import { API_SIP_GATEWAY, API_SMPP_GATEWAY } from "src/api/constants"; +import { DeleteCarrier } from "./delete"; + +import type { Account, Carrier, SipGateway, SmppGateway } from "src/api/types"; +import { Gateways } from "./gateways"; + +export const Carriers = () => { + const [carrier, setCarrier] = useState(null); + const [carriers, refetch] = useServiceProviderData("VoipCarriers"); + const [accounts] = useServiceProviderData("Accounts"); + const [accountSid, setAccountSid] = useState(""); + const [filter, setFilter] = useState(""); + + const carriersFiltered = useMemo(() => { + return carriers + ? carriers.filter((carrier) => + accountSid + ? carrier.account_sid === accountSid + : carrier.account_sid === null + ) + : []; + }, [accountSid, carriers]); + + const filteredCarriers = useFilteredResults( + filter, + carriersFiltered + ); + + const handleDelete = () => { + if (carrier) { + deleteCarrier(carrier.voip_carrier_sid) + .then(() => { + Promise.all([ + getFetch( + `${API_SIP_GATEWAY}?voip_carrier_sid=${carrier.voip_carrier_sid}` + ), + getFetch( + `${API_SMPP_GATEWAY}?voip_carrier_sid=${carrier.voip_carrier_sid}` + ), + ]).then(([sipGatewaysRes, smppGatewaysRes]) => { + hasLength(sipGatewaysRes.json) && + sipGatewaysRes.json.forEach( + (g) => + g && + g.sip_gateway_sid && + deleteSipGateway(g.sip_gateway_sid).catch((error) => + toastError(error.msg) + ) + ); + hasLength(smppGatewaysRes.json) && + smppGatewaysRes.json.forEach( + (g) => + g && + g.smpp_gateway_sid && + deleteSmppGateway(g.smpp_gateway_sid).catch((error) => + toastError(error.msg) + ) + ); + }); + refetch(); + setCarrier(null); + toastSuccess( + <> + Deleted Carrier {carrier.name} + + ); + }) + .catch((error) => { + toastError(error.msg); + }); + } + }; + + return ( + <> +
+

Carriers

+ + {" "} + + + + +
+
+ + +
+
+
+ {!hasValue(carriers) && } + {hasLength(filteredCarriers) ? ( + filteredCarriers.map((carrier) => ( +
+
+
+ + {carrier.name} + + +
+
+
+
+ {carrier.is_active ? ( + + ) : ( + + )} + {carrier.is_active ? "Active" : "Inactive"} +
+
+ +
+
+
+ + + + +
+
+ )) + ) : ( + No Carriers. + )} +
+
+
+ +
+ {carrier && ( + setCarrier(null)} + handleSubmit={handleDelete} + /> + )} + + ); +}; + +export default Carriers; diff --git a/src/containers/internal/views/ms-teams-tenants/add.tsx b/src/containers/internal/views/ms-teams-tenants/add.tsx new file mode 100644 index 0000000..7e5a85a --- /dev/null +++ b/src/containers/internal/views/ms-teams-tenants/add.tsx @@ -0,0 +1,15 @@ +import React from "react"; +import { H1 } from "jambonz-ui"; + +import { MsTeamsTenantForm } from "./form"; + +export const AddMsTeamsTenant = () => { + return ( + <> +

Add a Microsoft Teams Tenant

+ + + ); +}; + +export default AddMsTeamsTenant; diff --git a/src/containers/internal/views/ms-teams-tenants/delete.tsx b/src/containers/internal/views/ms-teams-tenants/delete.tsx new file mode 100644 index 0000000..6f645a5 --- /dev/null +++ b/src/containers/internal/views/ms-teams-tenants/delete.tsx @@ -0,0 +1,29 @@ +import React from "react"; +import { P } from "jambonz-ui"; + +import { Modal } from "src/components"; + +import type { MSTeamsTenant } from "src/api/types"; + +type DeleteProps = { + msTeamsTenant: MSTeamsTenant; + handleCancel: () => void; + handleSubmit: () => void; +}; + +export const DeleteMsTeamsTenant = ({ + msTeamsTenant, + handleCancel, + handleSubmit, +}: DeleteProps) => { + return ( + +

+ Are you sure you want to delete the{" "} + {msTeamsTenant.tenant_fqdn} Microsoft Teams Tenant? +

+
+ ); +}; + +export default DeleteMsTeamsTenant; diff --git a/src/containers/internal/views/ms-teams-tenants/edit.tsx b/src/containers/internal/views/ms-teams-tenants/edit.tsx new file mode 100644 index 0000000..3a72c97 --- /dev/null +++ b/src/containers/internal/views/ms-teams-tenants/edit.tsx @@ -0,0 +1,31 @@ +import React, { useEffect } from "react"; +import { H1 } from "jambonz-ui"; +import { useParams } from "react-router-dom"; + +import { useApiData } from "src/api"; +import { toastError } from "src/store"; +import { MsTeamsTenantForm } from "./form"; + +import type { MSTeamsTenant } from "src/api/types"; + +export const EditMsTeamsTenant = () => { + const params = useParams(); + const [data, refetch, error] = useApiData( + `MicrosoftTeamsTenants/${params.ms_teams_tenant_sid}` + ); + + useEffect(() => { + if (error) { + toastError(error.msg); + } + }, [error]); + + return ( + <> +

Edit Microsoft Teams Tenant

+ + + ); +}; + +export default EditMsTeamsTenant; diff --git a/src/containers/internal/views/ms-teams-tenants/form.tsx b/src/containers/internal/views/ms-teams-tenants/form.tsx new file mode 100644 index 0000000..d0b2cc6 --- /dev/null +++ b/src/containers/internal/views/ms-teams-tenants/form.tsx @@ -0,0 +1,167 @@ +import React, { useEffect, useState } from "react"; +import { Button, ButtonGroup, MS } from "jambonz-ui"; +import { Link, useNavigate } from "react-router-dom"; + +import { postMsTeamsTentant, putMsTeamsTenant, useApiData } from "src/api"; +import { Section } from "src/components"; +import { + Message, + AccountSelect, + ApplicationSelect, +} from "src/components/forms"; +import { MSG_REQUIRED_FIELDS } from "src/constants"; +import { toastError, toastSuccess, useSelectState } from "src/store"; +import { + ROUTE_INTERNAL_ACCOUNTS, + ROUTE_INTERNAL_MS_TEAMS_TENANTS, +} from "src/router/routes"; +import { useRedirect } from "src/utils"; + +import type { + Account, + Application, + MSTeamsTenant, + UseApiDataMap, +} from "src/api/types"; + +type MsTeamsTenantFormProps = { + msTeamsTenant?: UseApiDataMap; +}; + +export const MsTeamsTenantForm = ({ + msTeamsTenant, +}: MsTeamsTenantFormProps) => { + const navigate = useNavigate(); + const currentServiceProvider = useSelectState("currentServiceProvider"); + const [accounts] = useApiData("Accounts"); + const [applications] = useApiData("Applications"); + const [msTeamsTenants] = useApiData("MicrosoftTeamsTenants"); + const [domainName, setDomainName] = useState(""); + const [accountSid, setAccountSid] = useState(""); + const [applicationSid, setApplicationSid] = useState(""); + const [message, setMessage] = useState(""); + + useRedirect( + accounts, + ROUTE_INTERNAL_ACCOUNTS, + "You must create an account before you can create an Microsoft Teams Tenant." + ); + + const handleSubmit = (e: React.FormEvent) => { + e.preventDefault(); + + setMessage(""); + + if (msTeamsTenants) { + const filtered = + msTeamsTenant && msTeamsTenant.data + ? msTeamsTenants.filter( + (a) => + a.ms_teams_tenant_sid !== + msTeamsTenant.data!.ms_teams_tenant_sid + ) + : msTeamsTenants; + + if (filtered.find((a) => a.tenant_fqdn === domainName)) { + setMessage("The domain name you have entered is already in use."); + return; + } + } + + const payload: Partial = { + tenant_fqdn: domainName, + account_sid: accountSid, + application_sid: applicationSid || null, + }; + + if (msTeamsTenant && msTeamsTenant.data) { + putMsTeamsTenant(msTeamsTenant.data.ms_teams_tenant_sid, payload) + .then(() => { + msTeamsTenant.refetch(); + toastSuccess("Microsoft Teams Tenant updated successfully"); + }) + .catch((error) => { + toastError(error.msg); + }); + } else { + postMsTeamsTentant({ + ...payload, + service_provider_sid: currentServiceProvider?.service_provider_sid, + }) + .then(({ json }) => { + toastSuccess("Microsoft Teams Tenant created successfully"); + navigate(`${ROUTE_INTERNAL_MS_TEAMS_TENANTS}/${json.sid}/edit`); + }) + .catch((error) => { + toastError(error.msg); + }); + } + }; + + useEffect(() => { + if (msTeamsTenant && msTeamsTenant.data) { + if (msTeamsTenant.data.tenant_fqdn) { + setDomainName(msTeamsTenant.data.tenant_fqdn); + } + + if (msTeamsTenant.data.account_sid) { + setAccountSid(msTeamsTenant.data.account_sid); + } + if (msTeamsTenant.data.application_sid) { + setApplicationSid(msTeamsTenant.data.application_sid); + } + } + }, [msTeamsTenant]); + + return ( +
+
+
+ {MSG_REQUIRED_FIELDS} +
+
+ + setDomainName(e.target.value)} + /> +
+
+ +
+
+ +
+ {message &&
{}
} +
+ + + + +
+
+
+ ); +}; diff --git a/src/containers/internal/views/ms-teams-tenants/index.tsx b/src/containers/internal/views/ms-teams-tenants/index.tsx new file mode 100644 index 0000000..f8a9ed4 --- /dev/null +++ b/src/containers/internal/views/ms-teams-tenants/index.tsx @@ -0,0 +1,196 @@ +import React, { useState } from "react"; +import { Button, H1, Icon, M } from "jambonz-ui"; +import { Link } from "react-router-dom"; + +import { deleteMsTeamsTenant, useApiData } from "src/api"; +import { + hasLength, + hasValue, + withAccessControl, + useFilteredResults, +} from "src/utils"; +import { toastError, toastSuccess } from "src/store"; +import { Icons, Section, Spinner, SearchFilter } from "src/components"; +import { + ROUTE_INTERNAL_ACCOUNTS, + ROUTE_INTERNAL_MS_TEAMS_TENANTS, +} from "src/router/routes"; +import { DeleteMsTeamsTenant } from "./delete"; + +import type { Account, MSTeamsTenant, Application } from "src/api/types"; +import type { ACLGetIMessage } from "src/utils/with-access-control"; + +export const MSTeamsTenants = () => { + const [msTeamsTenant, setMsTeamsTenant] = useState( + null + ); + const [msTeamsTenants, refetch] = useApiData( + "MicrosoftTeamsTenants" + ); + const [accounts] = useApiData("Accounts"); + const [applications] = useApiData("Applications"); + const [filter, setFilter] = useState(""); + + const filteredMsTeamsTenants = useFilteredResults( + filter, + msTeamsTenants + ); + + const handleDelete = () => { + if (msTeamsTenant) { + deleteMsTeamsTenant(msTeamsTenant.ms_teams_tenant_sid) + .then(() => { + refetch(); + setMsTeamsTenant(null); + toastSuccess( + <> + Deleted Microsoft Teams Tenant{" "} + {msTeamsTenant.tenant_fqdn} + + ); + }) + .catch((error) => { + toastError(error.msg); + }); + } + }; + + return ( + <> +
+

Microsoft Teams Tenants

+ {hasLength(accounts) && ( + + + + + + )} +
+
+ +
+
+
+ {!hasValue(msTeamsTenants) && } + {hasLength(filteredMsTeamsTenants) ? ( + filteredMsTeamsTenants.map((msTeamsTenant) => { + return ( +
+
+
+ + {msTeamsTenant.tenant_fqdn} + + +
+
+
+
+ + + { + accounts?.find( + (acct) => + acct.account_sid === msTeamsTenant.account_sid + )?.name + } + +
+
+
+
+ + + {applications?.find( + (app) => + app.application_sid === + msTeamsTenant.application_sid + )?.name || "None"} + +
+
+
+
+
+ + + + +
+
+ ); + }) + ) : hasLength(accounts) ? ( + No Microsoft Teams Tenant. + ) : ( +
+ You must{" "} + + create an account + {" "} + before you can create a Microsoft Teams Tenant. +
+ )} +
+
+
+ {hasLength(accounts) && ( + + )} +
+ {msTeamsTenant && ( + setMsTeamsTenant(null)} + handleSubmit={handleDelete} + /> + )} + + ); +}; + +const getAclIMessage: ACLGetIMessage = (currentServiceProvider) => { + return ( + <> + {currentServiceProvider.name} does not have a fully + qualified domain name for MS Teams + + ); +}; + +export default withAccessControl( + "hasMSTeamsFqdn", + getAclIMessage +)(MSTeamsTenants); diff --git a/src/containers/internal/views/phone-numbers/add.tsx b/src/containers/internal/views/phone-numbers/add.tsx new file mode 100644 index 0000000..e1c8ea9 --- /dev/null +++ b/src/containers/internal/views/phone-numbers/add.tsx @@ -0,0 +1,15 @@ +import React from "react"; +import { H1 } from "jambonz-ui"; + +import { PhoneNumberForm } from "./form"; + +export const AddPhoneNumber = () => { + return ( + <> +

Add a phone number

+ + + ); +}; + +export default AddPhoneNumber; diff --git a/src/containers/internal/views/phone-numbers/delete.tsx b/src/containers/internal/views/phone-numbers/delete.tsx new file mode 100644 index 0000000..42fa07b --- /dev/null +++ b/src/containers/internal/views/phone-numbers/delete.tsx @@ -0,0 +1,31 @@ +import React from "react"; +import { P } from "jambonz-ui"; + +import { Modal } from "src/components"; + +import type { PhoneNumber } from "src/api/types"; + +type DeleteProps = { + phoneNumber: PhoneNumber; + handleCancel: () => void; + handleSubmit: () => void; +}; + +export const DeletePhoneNumber = ({ + phoneNumber, + handleCancel, + handleSubmit, +}: DeleteProps) => { + return ( + <> + {1 && ( + +

+ Are you sure you want to delete the phone number{" "} + {phoneNumber.number}? +

+
+ )} + + ); +}; diff --git a/src/containers/internal/views/phone-numbers/edit.tsx b/src/containers/internal/views/phone-numbers/edit.tsx new file mode 100644 index 0000000..ce1c1de --- /dev/null +++ b/src/containers/internal/views/phone-numbers/edit.tsx @@ -0,0 +1,31 @@ +import React, { useEffect } from "react"; +import { H1 } from "jambonz-ui"; +import { useParams } from "react-router-dom"; + +import { useApiData } from "src/api"; +import { toastError } from "src/store"; +import { PhoneNumberForm } from "./form"; + +import type { PhoneNumber } from "src/api/types"; + +export const EditPhoneNumber = () => { + const params = useParams(); + const [data, refetch, error] = useApiData( + `PhoneNumbers/${params.phone_number_sid}` + ); + + useEffect(() => { + if (error) { + toastError(error.msg); + } + }, [error]); + + return ( + <> +

Edit phone number

+ + + ); +}; + +export default EditPhoneNumber; diff --git a/src/containers/internal/views/phone-numbers/form.tsx b/src/containers/internal/views/phone-numbers/form.tsx new file mode 100644 index 0000000..a16735b --- /dev/null +++ b/src/containers/internal/views/phone-numbers/form.tsx @@ -0,0 +1,219 @@ +import { Button, ButtonGroup, MS } from "jambonz-ui"; +import React, { useEffect, useState } from "react"; +import { Link, useNavigate } from "react-router-dom"; + +import { + postPhoneNumber, + putPhoneNumber, + useServiceProviderData, +} from "src/api"; +import { Section } from "src/components"; +import { + Message, + Selector, + AccountSelect, + ApplicationSelect, +} from "src/components/forms"; +import { MSG_REQUIRED_FIELDS } from "src/constants"; +import { + ROUTE_INTERNAL_ACCOUNTS, + ROUTE_INTERNAL_CARRIERS, + ROUTE_INTERNAL_PHONE_NUMBERS, +} from "src/router/routes"; +import { toastError, toastSuccess } from "src/store"; +import { hasLength, useRedirect } from "src/utils"; + +import type { + Account, + Application, + PhoneNumber, + Carrier, + UseApiDataMap, +} from "src/api/types"; + +type PhoneNumberFormProps = { + phoneNumber?: UseApiDataMap; +}; + +export const PhoneNumberForm = ({ phoneNumber }: PhoneNumberFormProps) => { + const navigate = useNavigate(); + const [accounts] = useServiceProviderData("Accounts"); + const [applications] = useServiceProviderData("Applications"); + const [phoneNumbers] = useServiceProviderData("PhoneNumbers"); + const [carriers] = useServiceProviderData("VoipCarriers"); + const [phoneNumberNum, setPhoneNumberNum] = useState(""); + const [accountSid, setAccountSid] = useState(""); + const [sipTrunkSid, setSipTrunkSid] = useState(""); + const [applicationSid, setApplicationSid] = useState(""); + const [message, setMessage] = useState(""); + + useRedirect( + accounts, + ROUTE_INTERNAL_ACCOUNTS, + "You must create an account before you can create a phone number." + ); + + useRedirect( + carriers, + ROUTE_INTERNAL_CARRIERS, + "You must create a SIP trunk before you can create a phone number." + ); + + const handleSubmit = (e: React.FormEvent) => { + e.preventDefault(); + + setMessage(""); + + if (phoneNumbers) { + const filtered = + phoneNumber && phoneNumber.data + ? phoneNumbers.filter( + (a) => a.phone_number_sid !== phoneNumber.data!.phone_number_sid + ) + : phoneNumbers; + + if (filtered.find((a) => a.number === phoneNumberNum)) { + setMessage("The phone number you have entered is already in use."); + return; + } + } + + const payload = { + account_sid: accountSid, + application_sid: applicationSid || null, + }; + + if (phoneNumber && phoneNumber.data) { + putPhoneNumber(phoneNumber.data.phone_number_sid, payload) + .then(() => { + phoneNumber.refetch(); + toastSuccess("Phone number updated successfully"); + }) + .catch((error) => { + toastError(error.msg); + }); + } else { + postPhoneNumber({ + ...payload, + number: phoneNumberNum, + voip_carrier_sid: sipTrunkSid, + }) + .then(({ json }) => { + toastSuccess("Phone number created successfully"); + navigate(`${ROUTE_INTERNAL_PHONE_NUMBERS}/${json.sid}/edit`); + }) + .catch((error) => { + toastError(error.msg); + }); + } + }; + + useEffect(() => { + if (phoneNumber && phoneNumber.data) { + setPhoneNumberNum(phoneNumber.data.number); + + if (phoneNumber.data.voip_carrier_sid) { + setSipTrunkSid(phoneNumber.data.voip_carrier_sid); + } + + if (phoneNumber.data.account_sid) { + setAccountSid(phoneNumber.data.account_sid); + } + + if (phoneNumber.data.application_sid) { + setApplicationSid(phoneNumber.data.application_sid); + } + } + }, [phoneNumber]); + + useEffect(() => { + if (hasLength(carriers) && !sipTrunkSid) { + setSipTrunkSid(carriers[0].voip_carrier_sid); + } + }, [carriers, sipTrunkSid]); + + return ( + <> +
+
+
+ {MSG_REQUIRED_FIELDS} +
+
+ + setPhoneNumberNum(e.target.value)} + disabled={phoneNumber ? true : false} + > +
+
+ + ({ + name: trunk.name, + value: trunk.voip_carrier_sid, + })) + : [] + } + onChange={(e) => { + setSipTrunkSid(e.target.value); + }} + disabled={phoneNumber ? true : false} + /> +
+
+ +
+
+ application.account_sid === accountSid + ) + : [] + } + /> +
+ {message &&
{}
} +
+ + + + +
+
+
+ + ); +}; diff --git a/src/containers/internal/views/phone-numbers/index.tsx b/src/containers/internal/views/phone-numbers/index.tsx new file mode 100644 index 0000000..1fa59d0 --- /dev/null +++ b/src/containers/internal/views/phone-numbers/index.tsx @@ -0,0 +1,342 @@ +import React, { useMemo, useState } from "react"; +import { Button, ButtonGroup, H1, Icon, MS } from "jambonz-ui"; +import { Link } from "react-router-dom"; + +import { + deletePhoneNumber, + putPhoneNumber, + useServiceProviderData, +} from "src/api"; +import { toastError, toastSuccess } from "src/store"; +import { + Icons, + Section, + Spinner, + ApplicationFilter, + SearchFilter, + AccountFilter, +} from "src/components"; +import { + ROUTE_INTERNAL_ACCOUNTS, + ROUTE_INTERNAL_CARRIERS, + ROUTE_INTERNAL_PHONE_NUMBERS, +} from "src/router/routes"; +import { + hasLength, + hasValue, + formatPhoneNumber, + useFilteredResults, +} from "src/utils"; +import { DeletePhoneNumber } from "./delete"; + +import type { Account, PhoneNumber, Carrier, Application } from "src/api/types"; + +export const PhoneNumbers = () => { + const [accounts] = useServiceProviderData("Accounts"); + const [applications] = useServiceProviderData("Applications"); + const [carriers] = useServiceProviderData("VoipCarriers"); + const [phoneNumber, setPhoneNumber] = useState(null); + const [phoneNumbers, refetch] = + useServiceProviderData("PhoneNumbers"); + const [selectedPhoneNumbers, setSelectedPhoneNumbers] = useState< + PhoneNumber[] + >([]); + const [applicationSid, setApplicationSid] = useState(""); + const [selectAll, setSelectAll] = useState(false); + const [applyMassEdit, setApplyMassEdit] = useState(false); + const [filter, setFilter] = useState(""); + const [accountSid, setAccountSid] = useState(""); + + const phoneNumbersFiltered = useMemo(() => { + return phoneNumbers + ? phoneNumbers.filter( + (phoneNumber) => !accountSid || phoneNumber.account_sid === accountSid + ) + : []; + }, [accountSid, phoneNumbers]); + + const filteredPhoneNumbers = useFilteredResults( + filter, + phoneNumbersFiltered + ); + + const handleMassEdit = () => { + Promise.all( + selectedPhoneNumbers.map((phoneNumber) => { + const payload: Partial = { + application_sid: applicationSid || null, + }; + + return putPhoneNumber(phoneNumber.phone_number_sid, payload); + }) + ) + .then(() => { + refetch(); + setApplicationSid(""); + setApplyMassEdit(false); + toastSuccess("Number routing updated successfully"); + }) + .catch((error) => { + setApplicationSid(""); + setApplyMassEdit(false); + toastError(error.msg); + }); + }; + + const handleDelete = () => { + if (phoneNumber) { + deletePhoneNumber(phoneNumber.phone_number_sid) + .then(() => { + refetch(); + setPhoneNumber(null); + toastSuccess( + <> + Deleted phone number {phoneNumber.number} + + ); + }) + .catch((error) => { + toastError(error.msg); + }); + } + }; + + return ( + <> +
+

Phone numbers

+ {hasLength(accounts) && hasLength(carriers) && ( + + + + + + )} +
+
+ + +
+
+
+ {!hasValue(phoneNumbers) && } + {hasLength(filteredPhoneNumbers) ? ( + <> +
+ {accountSid ? ( + <> +
+ +
+ {hasLength(selectedPhoneNumbers) && !applyMassEdit && ( + + + application.account_sid === accountSid + )} + defaultOption="None" + /> + + + )} + {applyMassEdit && ( +
+ + + Updating number routing... + +
+ )} + + ) : ( + + Select an account to assign applications to phone numbers. + + )} +
+ {filteredPhoneNumbers.map((phoneNumber) => { + return ( +
+
+
+ {accountSid && ( + + phone.phone_number_sid === + phoneNumber.phone_number_sid + ) + ? true + : false + } + onChange={(e) => { + if (e.target.checked) { + setSelectedPhoneNumbers((curr) => [ + ...curr, + phoneNumber, + ]); + } else { + setSelectedPhoneNumbers((curr) => + curr.filter( + (phone) => + phone.phone_number_sid !== + phoneNumber.phone_number_sid + ) + ); + } + }} + /> + )} + + + {formatPhoneNumber(phoneNumber.number)} + + + +
+
+
+
+ + + { + accounts?.find( + (acct) => + acct.account_sid === phoneNumber.account_sid + )?.name + } + +
+
+
+
+ + + {applications?.find( + (app) => + app.application_sid === + phoneNumber.application_sid + )?.name || "None"} + +
+
+
+
+
+ + + + +
+
+ ); + })} + + ) : hasLength(accounts) ? ( + hasLength(carriers) ? ( +
No phone numbers.
+ ) : ( +
+ You must{" "} + + create a carrier + {" "} + before you can create a phone number. +
+ ) + ) : ( +
+ You must{" "} + + create an account + {" "} + before you can create a phone number. +
+ )} +
+
+
+ {hasLength(accounts) && hasLength(carriers) && ( + + )} +
+ {phoneNumber && ( + setPhoneNumber(null)} + handleSubmit={handleDelete} + /> + )} + + ); +}; + +export default PhoneNumbers; diff --git a/src/containers/internal/views/recent-calls/details.tsx b/src/containers/internal/views/recent-calls/details.tsx new file mode 100644 index 0000000..f4381f2 --- /dev/null +++ b/src/containers/internal/views/recent-calls/details.tsx @@ -0,0 +1,74 @@ +import React, { useState } from "react"; +import dayjs from "dayjs"; + +import { Icons } from "src/components"; +import { formatPhoneNumber } from "src/utils"; +import { PcapButton } from "./pcap"; + +import type { RecentCall } from "src/api/types"; + +type DetailsItemProps = { + call: RecentCall; +}; + +export const DetailsItem = ({ call }: DetailsItemProps) => { + const [open, setOpen] = useState(false); + + return ( +
+
{ + if (e.target.open && !open) { + setOpen(e.target.open); + } + }} + > + +
+
+ + {dayjs + .unix(call.attempted_at / 1000) + .format("YYYY MM.DD hh:mm a")} + + + {call.direction === "inbound" ? ( + + ) : ( + + )} + {call.direction} + +
+
+
+
+ + {formatPhoneNumber(call.from)} +
+
+
+
+ + {formatPhoneNumber(call.to)} +
+
+
+
+
+
+
+ {Object.keys(call).map((key) => ( + +
{key}:
+
{call[key as keyof typeof call].toString()}
+
+ ))} +
+ {open && } +
+
+
+ ); +}; diff --git a/src/containers/internal/views/recent-calls/index.tsx b/src/containers/internal/views/recent-calls/index.tsx new file mode 100644 index 0000000..96d9539 --- /dev/null +++ b/src/containers/internal/views/recent-calls/index.tsx @@ -0,0 +1,138 @@ +import React, { useEffect, useState } from "react"; +import { ButtonGroup, H1, M, MS } from "jambonz-ui"; +import dayjs from "dayjs"; + +import { getRecentCalls, useServiceProviderData } from "src/api"; +import { DATE_SELECTION, PER_PAGE_SELECTION } from "src/api/constants"; +import { toastError } from "src/store"; +import { + Section, + AccountFilter, + Spinner, + Pagination, + SelectFilter, +} from "src/components"; +import { hasLength, hasValue } from "src/utils"; +import { DetailsItem } from "./details"; + +import type { Account, CallQuery, RecentCall } from "src/api/types"; + +const directionSelection = [ + { name: "either", value: "io" }, + { name: "inbound only", value: "inbound" }, + { name: "outbound only", value: "outbound" }, +]; + +const statusSelection = [ + { name: "all", value: "all" }, + { name: "answered", value: "true" }, + { name: "not answered", value: "false" }, +]; + +export const RecentCalls = () => { + const [accounts] = useServiceProviderData("Accounts"); + const [accountSid, setAccountSid] = useState(""); + const [dateFilter, setDateFilter] = useState("today"); + const [directionFilter, setDirectionFilter] = useState("io"); + const [statusFilter, setStatusFilter] = useState("all"); + + const [pageNumber, setPageNumber] = useState(1); + const [perPageFilter, setPerPageFilter] = useState("25"); + const [maxPageNumber, setMaxPageNumber] = useState(1); + + const [calls, setCalls] = useState(); + const [callsTotal, setCallsTotal] = useState(0); + + const handleFilterChange = () => { + const payload: Partial = { + page: pageNumber, + count: Number(perPageFilter), + ...(dateFilter === "today" + ? { start: dayjs().startOf("date").toISOString() } + : { days: Number(dateFilter) }), + ...(statusFilter !== "all" && { answered: statusFilter }), + ...(directionFilter !== "io" && { direction: directionFilter }), + }; + + getRecentCalls(accountSid, payload) + .then(({ json }) => { + setCalls(json.data); + setCallsTotal(json.total); + setMaxPageNumber(Math.ceil(json.total / Number(perPageFilter))); + }) + .catch((error) => { + toastError(error.msg); + }); + }; + + useEffect(() => { + if (accountSid) { + handleFilterChange(); + } + }, [accountSid, pageNumber, dateFilter, directionFilter, statusFilter]); + + return ( + <> +
+

Recent Calls

+
+ {/* Setting overflow-x auto for now until we have a better responsive solution... */} +
+ + + + +
+
+
+ {!hasValue(calls) && } + {hasLength(calls) ? ( + calls.map((call) => ) + ) : ( + No data + )} +
+
+
+ + + Total: {callsTotal} record{callsTotal === 1 ? "" : "s"} + + {hasLength(calls) && ( + + )} + setPageNumber(1)} + /> + +
+ + ); +}; + +export default RecentCalls; diff --git a/src/containers/internal/views/recent-calls/pcap.tsx b/src/containers/internal/views/recent-calls/pcap.tsx new file mode 100644 index 0000000..1cce9fa --- /dev/null +++ b/src/containers/internal/views/recent-calls/pcap.tsx @@ -0,0 +1,51 @@ +import React, { useEffect, useState } from "react"; + +import { getPcap, getRecentCall } from "src/api"; +import { toastError } from "src/store"; + +import type { Pcap, RecentCall } from "src/api/types"; + +type PcapButtonProps = { + call: RecentCall; +}; + +export const PcapButton = ({ call }: PcapButtonProps) => { + const [pcap, setPcap] = useState(); + + useEffect(() => { + getRecentCall(call.account_sid, call.call_sid) + .then(({ json }) => { + if (json.total > 0) { + getPcap(call.account_sid, call.call_sid) + .then(({ blob }) => { + if (blob) { + setPcap({ + data_url: URL.createObjectURL(blob), + file_name: `callid-${call.sip_callid}.pcap`, + }); + } + }) + .catch((error) => { + toastError(error.msg); + }); + } + }) + .catch((error) => { + toastError(error.msg); + }); + }, []); + + if (pcap) { + return ( + + Download pcap + + ); + } + + return null; +}; diff --git a/src/containers/internal/views/settings/index.tsx b/src/containers/internal/views/settings/index.tsx new file mode 100644 index 0000000..d7b093f --- /dev/null +++ b/src/containers/internal/views/settings/index.tsx @@ -0,0 +1,213 @@ +import React, { useState, useEffect } from "react"; +import { H1, P, Button, ButtonGroup, MS } from "jambonz-ui"; + +import { useDispatch, toastSuccess, toastError } from "src/store"; +import { hasLength, withSelectState } from "src/utils"; +import { + putServiceProvider, + deleteServiceProvider, + useServiceProviderData, + postServiceProviderLimit, + deleteServiceProviderLimit, +} from "src/api"; +import { Modal, Section } from "src/components"; +import { Checkzone, LocalLimits } from "src/components/forms"; +import { ApiKeys } from "src/containers/internal/api-keys"; +import { MSG_REQUIRED_FIELDS } from "src/constants"; + +import type { Limit, ServiceProvider } from "src/api/types"; + +type SettingsProps = { + serviceProviders: ServiceProvider[]; + currentServiceProvider: ServiceProvider; +}; + +export const Settings = ({ + serviceProviders, + currentServiceProvider, +}: SettingsProps) => { + const dispatch = useDispatch(); + const [limits, refetchLimits] = useServiceProviderData("Limits"); + const [name, setName] = useState(""); + const [temp, setTemp] = useState(""); + const [teams, setTeams] = useState(""); + const [initialCheck, setInitialCheck] = useState(false); + const [modal, setModal] = useState(false); + const [localLimits, setLocalLimits] = useState([]); + + const handleSubmit = (e: React.FormEvent) => { + e.preventDefault(); + + if (currentServiceProvider) { + putServiceProvider(currentServiceProvider.service_provider_sid, { + name, + ms_teams_fqdn: teams || null, + }) + .then(() => { + dispatch({ type: "serviceProviders" }); + toastSuccess("Settings updated"); + }) + .catch((error) => { + toastError(error.msg); + }); + + if (hasLength(localLimits)) { + Promise.all( + localLimits.map((limit) => { + return limit.quantity === "" + ? deleteServiceProviderLimit( + currentServiceProvider.service_provider_sid, + limit.category + ) + : postServiceProviderLimit( + currentServiceProvider.service_provider_sid, + limit + ); + }) + ) + .then(() => { + refetchLimits(); + }) + .catch((error) => { + toastError(error.msg); + }); + } + } + }; + + const handleConfirm = (e: React.FormEvent) => { + e.preventDefault(); + e.stopPropagation(); + setModal(true); + }; + + const handleCancel = () => { + setModal(false); + }; + + const handleDelete = () => { + deleteServiceProvider(currentServiceProvider.service_provider_sid) + .then(() => { + setModal(false); + dispatch({ type: "serviceProviders" }); + toastSuccess( + <> + Deleted service provider{" "} + {currentServiceProvider.name} + + ); + }) + .catch((error) => { + toastError(error.msg); + }); + }; + + const handleChecked = (e: React.ChangeEvent) => { + if (e.target.checked && temp) { + setTeams(temp); + } + + if (!e.target.checked) { + setTemp(teams); + setTeams(""); + } + }; + + /** Set initial value for controlled input(s) */ + useEffect(() => { + if (currentServiceProvider) { + setName(currentServiceProvider.name); + + if (currentServiceProvider.ms_teams_fqdn) { + setTeams(currentServiceProvider.ms_teams_fqdn); + setInitialCheck(true); + } else { + setTemp(""); + setTeams(""); + setInitialCheck(false); + } + } + }, [currentServiceProvider]); + + return ( + <> +

Settings

+
+
+
+ {MSG_REQUIRED_FIELDS} +
+
+ + setName(e.target.value)} + /> +
+
+ +
+
+ + + setTeams(e.target.value)} + /> + +
+
+ + + {hasLength(serviceProviders, 1) && ( + + )} + +
+
+
+ {currentServiceProvider && ( + + )} + {modal && ( + +

+ Are you sure you want to delete the service provider{" "} + {currentServiceProvider.name}? +

+
+ )} + + ); +}; + +export default withSelectState(["serviceProviders", "currentServiceProvider"])( + Settings +); diff --git a/src/containers/internal/views/speech-services/add.tsx b/src/containers/internal/views/speech-services/add.tsx new file mode 100644 index 0000000..a74604b --- /dev/null +++ b/src/containers/internal/views/speech-services/add.tsx @@ -0,0 +1,15 @@ +import React from "react"; +import { H1 } from "jambonz-ui"; + +import { SpeechServiceForm } from "./form"; + +export const AddSpeechService = () => { + return ( + <> +

Add a speech service

+ + + ); +}; + +export default AddSpeechService; diff --git a/src/containers/internal/views/speech-services/delete.tsx b/src/containers/internal/views/speech-services/delete.tsx new file mode 100644 index 0000000..7e2adaf --- /dev/null +++ b/src/containers/internal/views/speech-services/delete.tsx @@ -0,0 +1,29 @@ +import React from "react"; +import { P } from "jambonz-ui"; + +import { Modal } from "src/components"; + +import type { SpeechCredential } from "src/api/types"; + +type DeleteProps = { + credential: SpeechCredential; + handleCancel: () => void; + handleSubmit: () => void; +}; + +export const DeleteSpeechService = ({ + credential, + handleCancel, + handleSubmit, +}: DeleteProps) => { + return ( + +

+ Are you sure you want to delete the {credential.vendor}{" "} + speech service? +

+
+ ); +}; + +export default DeleteSpeechService; diff --git a/src/containers/internal/views/speech-services/edit.tsx b/src/containers/internal/views/speech-services/edit.tsx new file mode 100644 index 0000000..f71b968 --- /dev/null +++ b/src/containers/internal/views/speech-services/edit.tsx @@ -0,0 +1,31 @@ +import React, { useEffect } from "react"; +import { H1 } from "jambonz-ui"; +import { useParams } from "react-router-dom"; + +import { useServiceProviderData } from "src/api"; +import { toastError } from "src/store"; +import { SpeechServiceForm } from "./form"; + +import type { SpeechCredential } from "src/api/types"; + +export const EditSpeechService = () => { + const params = useParams(); + const [data, refetch, error] = useServiceProviderData( + `SpeechCredentials/${params.speech_credential_sid}` + ); + + useEffect(() => { + if (error) { + toastError(error.msg); + } + }, [error]); + + return ( + <> +

Edit Speech Service

+ + + ); +}; + +export default EditSpeechService; diff --git a/src/containers/internal/views/speech-services/form.tsx b/src/containers/internal/views/speech-services/form.tsx new file mode 100644 index 0000000..7862c81 --- /dev/null +++ b/src/containers/internal/views/speech-services/form.tsx @@ -0,0 +1,371 @@ +import React, { useEffect, useState } from "react"; +import { Button, ButtonGroup, MS } from "jambonz-ui"; +import { Link, useNavigate } from "react-router-dom"; + +import { ROUTE_INTERNAL_SPEECH } from "src/router/routes"; +import { Section } from "src/components"; +import { + FileUpload, + Selector, + Passwd, + AccountSelect, +} from "src/components/forms"; +import { toastError, toastSuccess, useSelectState } from "src/store"; +import { + postSpeechService, + putSpeechService, + useServiceProviderData, +} from "src/api"; +import { + useRegionVendors, + vendors, + VENDOR_AWS, + VENDOR_GOOGLE, + VENDOR_MICROSOFT, + VENDOR_WELLSAID, +} from "src/vendor"; +import { MSG_REQUIRED_FIELDS } from "src/constants"; +import { getObscuredSecret } from "src/utils"; +import { getObscuredGoogleServiceKey } from "./utils"; +import { CredentialStatus } from "./status"; + +import type { RegionVendors, GoogleServiceKey, Vendor } from "src/vendor/types"; +import type { Account, SpeechCredential, UseApiDataMap } from "src/api/types"; + +type SpeechServiceFormProps = { + credential?: UseApiDataMap; +}; + +export const SpeechServiceForm = ({ credential }: SpeechServiceFormProps) => { + const navigate = useNavigate(); + const currentServiceProvider = useSelectState("currentServiceProvider"); + const regions = useRegionVendors(); + const [accounts] = useServiceProviderData("Accounts"); + const [accountSid, setAccountSid] = useState(""); + const [ttsCheck, setTtsCheck] = useState(false); + const [sttCheck, setSttCheck] = useState(false); + const [vendor, setVendor] = useState>( + "" as Lowercase + ); + const [region, setRegion] = useState(""); + const [apiKey, setApiKey] = useState(""); + const [accessKeyId, setAccessKeyId] = useState(""); + const [secretAccessKey, setSecretAccessKey] = useState(""); + const [googleServiceKey, setGoogleServiceKey] = + useState(null); + + const handleFile = (file: File) => { + const handleError = () => { + setGoogleServiceKey(null); + toastError("Invalid service key file, could not parse as JSON."); + }; + + file + .text() + .then((text) => { + try { + const json: GoogleServiceKey = JSON.parse(text); + + if (json.private_key && json.client_email) { + setGoogleServiceKey(json); + } else { + setGoogleServiceKey(null); + } + } catch (error) { + handleError(); + } + }) + .catch(() => { + handleError(); + }); + }; + + const handleSubmit = (e: React.FormEvent) => { + e.preventDefault(); + + if (currentServiceProvider) { + const payload: Partial = { + vendor, + account_sid: accountSid || null, + service_provider_sid: + currentServiceProvider.service_provider_sid || null, + use_for_tts: ttsCheck ? 1 : 0, + use_for_stt: sttCheck ? 1 : 0, + aws_region: vendor === VENDOR_AWS ? region : null, + region: vendor === VENDOR_MICROSOFT ? region : null, + }; + + if (credential && credential.data) { + /** The backend API returns obscured secrets now so we need to make sure we don't send them back */ + /** Fields not sent back via :PUT are `service_key`, `access_key_id`, `secret_access_key` and `api_key` */ + putSpeechService( + currentServiceProvider.service_provider_sid, + credential.data.speech_credential_sid, + payload + ) + .then(() => { + if (credential && credential.data) { + toastSuccess("Speech credential updated successfully"); + credential.refetch(); + } + }) + .catch((error) => { + toastError(error.msg); + }); + } else { + postSpeechService(currentServiceProvider.service_provider_sid, { + ...payload, + service_key: + vendor === VENDOR_GOOGLE ? JSON.stringify(googleServiceKey) : null, + access_key_id: vendor === VENDOR_AWS ? accessKeyId : null, + secret_access_key: vendor === VENDOR_AWS ? secretAccessKey : null, + api_key: + vendor === VENDOR_MICROSOFT || vendor === VENDOR_WELLSAID + ? apiKey + : null, + }) + .then(({ json }) => { + toastSuccess("Speech credential created successfully"); + navigate(`${ROUTE_INTERNAL_SPEECH}/${json.sid}/edit`); + }) + .catch((error) => { + toastError(error.msg); + }); + } + } + }; + + useEffect(() => { + if (credential && credential.data) { + if (credential.data.vendor) { + setVendor(credential.data.vendor); + } + + if (credential.data.account_sid) { + setAccountSid(credential.data.account_sid); + } + + if (credential.data.use_for_stt) { + setSttCheck(true); + } else { + setSttCheck(false); + } + + if (credential.data.use_for_tts) { + setTtsCheck(true); + } else { + setTtsCheck(false); + } + + if (credential.data.service_key) { + setGoogleServiceKey(JSON.parse(credential.data.service_key)); + } + + if (credential.data.access_key_id) { + setAccessKeyId(credential.data.access_key_id); + } + + if (credential.data.secret_access_key) { + setSecretAccessKey(credential.data.secret_access_key); + } + + if (credential.data.api_key) { + setApiKey(credential.data.api_key); + } + + if (credential.data.region) { + setRegion(credential.data.region); + } + + if (credential.data.aws_region) { + setRegion(credential.data.aws_region); + } + } + }, [credential]); + + return ( +
+
+
+ {MSG_REQUIRED_FIELDS} +
+ {credential && credential.data && ( +
+
Credential status
+ +
+ )} +
+ + { + setVendor(e.target.value as Lowercase); + setRegion(""); + setApiKey(""); + setGoogleServiceKey(null); + }} + disabled={credential ? true : false} + required + /> +
+
+ +
+ {vendor && ( +
+ + +
+ )} + {vendor === VENDOR_GOOGLE && ( + <> + {!googleServiceKey && ( +
+ + +
+ )} + {googleServiceKey && ( +
+
+                  
+                    {JSON.stringify(
+                      getObscuredGoogleServiceKey(googleServiceKey),
+                      null,
+                      2
+                    )}
+                  
+                
+
+ )} + + )} + {vendor === VENDOR_AWS && ( +
+ + setAccessKeyId(e.target.value)} + disabled={credential ? true : false} + /> + + setSecretAccessKey(e.target.value)} + disabled={credential ? true : false} + /> +
+ )} + {/* Single API key state var is used for both Microsoft and WellSaid */} + {(vendor === VENDOR_MICROSOFT || vendor === VENDOR_WELLSAID) && ( +
+ + setApiKey(e.target.value)} + disabled={credential ? true : false} + /> +
+ )} + {/* Single region state var is used for both Microsoft and AWS */} + {regions && regions[vendor as keyof RegionVendors] && ( +
+ + setRegion(e.target.value)} + disabled={credential ? true : false} + /> +
+ )} +
+ + + + +
+
+
+ ); +}; diff --git a/src/containers/internal/views/speech-services/index.tsx b/src/containers/internal/views/speech-services/index.tsx new file mode 100644 index 0000000..ee580fb --- /dev/null +++ b/src/containers/internal/views/speech-services/index.tsx @@ -0,0 +1,189 @@ +import React, { useEffect, useState } from "react"; +import { Button, H1, Icon, M } from "jambonz-ui"; +import { Link } from "react-router-dom"; + +import { API_ACCOUNTS, API_SERVICE_PROVIDERS } from "src/api/constants"; +import { AccountFilter, Icons, Section, Spinner } from "src/components"; +import { useSelectState, toastError, toastSuccess } from "src/store"; +import { getFetch, deleteSpeechService, useServiceProviderData } from "src/api"; +import { ROUTE_INTERNAL_SPEECH } from "src/router/routes"; +import { getHumanDateTime, hasLength, hasValue } from "src/utils"; +import DeleteSpeechService from "./delete"; +import { getUsage } from "./utils"; +import { CredentialStatus } from "./status"; + +import type { SpeechCredential, Account } from "src/api/types"; + +export const SpeechServices = () => { + const currentServiceProvider = useSelectState("currentServiceProvider"); + const [accounts] = useServiceProviderData("Accounts"); + const [accountSid, setAccountSid] = useState(""); + const [credential, setCredential] = useState(null); + const [credentials, setCredentials] = useState(); + + const getSpeechCredentials = (url: string) => { + getFetch(url) + .then(({ json }) => { + setCredentials(json); + }) + .catch((error) => { + toastError(error.msg); + }); + }; + + const handleDelete = () => { + if (credential && currentServiceProvider) { + deleteSpeechService( + currentServiceProvider.service_provider_sid, + credential.speech_credential_sid + ) + .then(() => { + if (accountSid) { + getSpeechCredentials( + `${API_ACCOUNTS}/${accountSid}/SpeechCredentials` + ); + } else { + getSpeechCredentials( + `${API_SERVICE_PROVIDERS}/${currentServiceProvider.service_provider_sid}/SpeechCredentials` + ); + } + setCredential(null); + toastSuccess( + <> + Deleted speech service {credential.vendor} + + ); + }) + .catch((error) => { + toastError(error.msg); + }); + } + }; + + useEffect(() => { + if (accountSid) { + getSpeechCredentials(`${API_ACCOUNTS}/${accountSid}/SpeechCredentials`); + } else if (currentServiceProvider) { + getSpeechCredentials( + `${API_SERVICE_PROVIDERS}/${currentServiceProvider.service_provider_sid}/SpeechCredentials` + ); + } + }, [accountSid, currentServiceProvider]); + + return ( + <> +
+

Speech Services

+ + + + + +
+
+ +
+
+
+ {!hasValue(credentials) && } + {hasLength(credentials) ? ( + credentials.map((credential) => { + return ( +
+
+
+ + Vendor: {credential.vendor} + + +
+
+
+
+ {credential.use_for_tts || credential.use_for_stt ? ( + + ) : ( + + )} + {getUsage(credential)} +
+
+
+
+ {credential.last_used ? ( + + ) : ( + + )} + + {credential.last_used + ? getHumanDateTime(credential.last_used) + : "Never used"} + +
+
+
+ +
+
+
+
+ + + + +
+
+ ); + }) + ) : ( + No speech services. + )} +
+
+
+ +
+ {credential && ( + setCredential(null)} + handleSubmit={handleDelete} + /> + )} + + ); +}; + +export default SpeechServices; diff --git a/src/containers/internal/views/speech-services/status.tsx b/src/containers/internal/views/speech-services/status.tsx new file mode 100644 index 0000000..bd78dc8 --- /dev/null +++ b/src/containers/internal/views/speech-services/status.tsx @@ -0,0 +1,88 @@ +import React, { useState } from "react"; +import { MS } from "jambonz-ui"; + +import { CRED_NOT_TESTED, CRED_OK } from "src/api/constants"; +import { Icons, Spinner } from "src/components"; +import { useServiceProviderData } from "src/api"; +import { getStatus, getReason } from "./utils"; + +import type { SpeechCredential, CredentialTestResult } from "src/api/types"; + +type CredentialStatusProps = { + cred: SpeechCredential; + showSummary?: boolean; +}; + +export const CredentialStatus = ({ + cred, + showSummary = false, +}: CredentialStatusProps) => { + const [testResult, testRefetch, testError] = + useServiceProviderData( + `SpeechCredentials/${cred.speech_credential_sid}/test` + ); + const notTestedTxt = + "In order to test your credentials you need to enable TTS/STT."; + + const renderStatus = () => { + if (testResult) { + const status = getStatus(cred, testResult); + const reason = getReason(cred, testResult); + + return ( +
+ {status === CRED_OK ? : } + Status {status} +
+ ); + } + }; + + /** Update test render without useEffect */ + /** https://beta.reactjs.org/learn/you-might-not-need-an-effect#adjusting-some-state-when-a-prop-changes */ + const [prevCred, setPrevCred] = useState(); + + if (cred && prevCred !== cred) { + setPrevCred(cred); + testRefetch(); + } + + return ( + <> + {!testError && !testResult && ( +
+ + Checking status... +
+ )} + {testError && ( +
+ + Status error +
+ )} + {testResult && + (showSummary ? ( +
+ {renderStatus()} + {getStatus(cred, testResult) === CRED_NOT_TESTED ? ( + {notTestedTxt} + ) : ( + {getReason(cred, testResult)} + )} +
+ ) : ( + renderStatus() + ))} + + ); +}; diff --git a/src/containers/internal/views/speech-services/utils.ts b/src/containers/internal/views/speech-services/utils.ts new file mode 100644 index 0000000..9d3f2e0 --- /dev/null +++ b/src/containers/internal/views/speech-services/utils.ts @@ -0,0 +1,97 @@ +import { getObscuredSecret } from "src/utils"; + +import type { GoogleServiceKey } from "src/vendor/types"; +import type { + CredentialStatus, + CredentialTestResult, + SpeechCredential, +} from "src/api/types"; +import { CRED_FAIL, CRED_NOT_TESTED, CRED_OK } from "src/api/constants"; + +export const getObscuredGoogleServiceKey = (key: GoogleServiceKey) => { + const keyHeader = "-----BEGIN PRIVATE KEY-----\n"; + + return { + ...key, + private_key: `${keyHeader}${getObscuredSecret( + key.private_key.slice(keyHeader.length, key.private_key.length) + )}`, + }; +}; + +export const getUsage = (cred: SpeechCredential) => { + return cred.use_for_tts && cred.use_for_stt + ? "TTS/STT" + : cred.use_for_tts + ? "TTS" + : cred.use_for_stt + ? "STT" + : "Not in use"; +}; + +export const getStatus = ( + cred: SpeechCredential, + testResult: CredentialTestResult +): CredentialStatus => { + if ( + (cred.use_for_tts && + cred.use_for_stt && + testResult.tts.status === CRED_OK && + testResult.stt.status === CRED_OK) || + (cred.use_for_tts && testResult.tts.status === CRED_OK) || + (cred.use_for_stt && testResult.stt.status === CRED_OK) + ) { + return CRED_OK; + } + + if ( + testResult.tts.status === CRED_NOT_TESTED && + testResult.stt.status === CRED_NOT_TESTED + ) { + return CRED_NOT_TESTED; + } + + return CRED_FAIL; +}; + +export const getReason = ( + cred: SpeechCredential, + testResult: CredentialTestResult +) => { + const ok = "Connection test successful"; + + if (cred.use_for_tts && cred.use_for_stt) { + if ( + testResult.tts.status === CRED_OK && + testResult.stt.status === CRED_OK + ) { + return ok; + } + + if (testResult.tts.reason && testResult.stt.reason) { + if (testResult.tts.reason === testResult.stt.reason) { + return testResult?.tts.reason; + } + + return `TTS: ${testResult.tts.reason}. STT: ${testResult.stt.reason}.`; + } + + if (testResult.tts.reason) { + return `TTS: ${testResult.tts.reason}`; + } + + if (testResult.stt.reason) { + return `STT: ${testResult.stt.reason}`; + } + } + + if (cred.use_for_tts) { + return testResult.tts.status === CRED_OK ? ok : testResult.tts.reason; + } + + if (cred.use_for_stt) { + return testResult.stt.status === CRED_OK ? ok : testResult.stt.reason; + } + + return ""; +}; diff --git a/src/containers/login/create-password.tsx b/src/containers/login/create-password.tsx new file mode 100644 index 0000000..1304137 --- /dev/null +++ b/src/containers/login/create-password.tsx @@ -0,0 +1,109 @@ +import React, { useState } from "react"; +import { Button, H1, M } from "jambonz-ui"; +import { useNavigate } from "react-router-dom"; + +import { isValidPasswd } from "src/utils"; +import { putUser } from "src/api"; +import { StatusCodes } from "src/api/types"; +import { Passwd, Message } from "src/components/forms"; +import { ROUTE_LOGIN, ROUTE_INTERNAL_ACCOUNTS } from "src/router/routes"; +import { + SESS_OLD_PASSWORD, + SESS_USER_SID, + MSG_SOMETHING_WRONG, + MSG_CAPSLOCK, + MSG_PASSWD_MATCH, + MSG_PASSWD_CRITERIA, +} from "src/constants"; + +import type { IMessage } from "src/store/types"; + +export const CreatePassword = () => { + const [password, setPassword] = useState(""); + const [confirmPassword, setConfirmPassword] = useState(""); + const [message, setMessage] = useState(""); + const navigate = useNavigate(); + + const handleKeydown = (e: React.KeyboardEvent) => { + if (e.getModifierState("CapsLock")) { + setMessage(MSG_CAPSLOCK); + } else { + setMessage(""); + } + }; + + const handleSubmit = (e: React.FormEvent) => { + e.preventDefault(); + + setMessage(""); + + if (password !== confirmPassword) { + setMessage(MSG_PASSWD_MATCH); + return; + } + + if (!isValidPasswd(password)) { + setMessage(MSG_PASSWD_CRITERIA); + return; + } + + const userSid = sessionStorage.getItem(SESS_USER_SID); + const oldPassword = sessionStorage.getItem(SESS_OLD_PASSWORD); + + if (!oldPassword) { + navigate(ROUTE_LOGIN); + return; + } + + if (userSid) { + putUser(userSid, { + old_password: oldPassword, + new_password: password, + }) + .then((response) => { + if (response.status === StatusCodes.NO_CONTENT) { + sessionStorage.clear(); + + navigate(ROUTE_INTERNAL_ACCOUNTS); + } else { + setMessage(MSG_SOMETHING_WRONG); + } + }) + .catch((error) => { + setMessage(error.msg); + }); + } else { + setMessage(MSG_SOMETHING_WRONG); + } + }; + + return ( + <> +

Create password

+
+ You must create a new password + + + {message && } + + + + ); +}; + +export default CreatePassword; diff --git a/src/containers/login/index.ts b/src/containers/login/index.ts new file mode 100644 index 0000000..3ef1ec0 --- /dev/null +++ b/src/containers/login/index.ts @@ -0,0 +1,5 @@ +import Login from "./login"; +import Layout from "./layout"; +import CreatePassword from "./create-password"; + +export { Login, Layout, CreatePassword }; diff --git a/src/containers/login/layout.tsx b/src/containers/login/layout.tsx new file mode 100644 index 0000000..0e07605 --- /dev/null +++ b/src/containers/login/layout.tsx @@ -0,0 +1,35 @@ +import React from "react"; +import { Outlet } from "react-router-dom"; +import { MXS } from "jambonz-ui"; + +import { Icons } from "src/components"; + +export const Layout = () => ( +
+
+ jambonz +
+ + +
+); + +export default Layout; diff --git a/src/containers/login/login.tsx b/src/containers/login/login.tsx new file mode 100644 index 0000000..4b1a548 --- /dev/null +++ b/src/containers/login/login.tsx @@ -0,0 +1,87 @@ +import React, { useEffect, useState } from "react"; +import { Button, H1 } from "jambonz-ui"; +import { useLocation, Navigate } from "react-router-dom"; + +import { toastError } from "src/store"; +import { useAuth } from "src/router/auth"; +import { SESS_UNAUTHORIZED, SESS_OLD_PASSWORD } from "src/constants"; +import { Passwd, Message } from "src/components/forms"; +import { + ROUTE_INTERNAL_ACCOUNTS, + ROUTE_CREATE_PASSWORD, +} from "src/router/routes"; + +import "./styles.scss"; + +export const Login = () => { + const { signin, authorized } = useAuth(); + const location = useLocation(); + const [username, setUsername] = useState(""); + const [password, setPassword] = useState(""); + const [message, setMessage] = useState(""); + + const handleSubmit = (e: React.FormEvent) => { + e.preventDefault(); + + signin(username, password).catch((error) => { + setMessage(error); + }); + }; + + /** "Flash" a session message when booted from the app */ + useEffect(() => { + const unauthorized = sessionStorage.getItem(SESS_UNAUTHORIZED); + + if (unauthorized) { + toastError(unauthorized); + sessionStorage.clear(); + } + }, []); + + if (authorized) { + if (sessionStorage.getItem(SESS_OLD_PASSWORD)) { + return ( + + ); + } + + return ( + + ); + } + + return ( + <> +

Log in

+
+ setUsername(e.target.value)} + /> + + {message && } + + + + ); +}; + +export default Login; diff --git a/src/containers/login/styles.scss b/src/containers/login/styles.scss new file mode 100644 index 0000000..8cc8bf2 --- /dev/null +++ b/src/containers/login/styles.scss @@ -0,0 +1,78 @@ +@use "src/styles/vars"; +@use "src/styles/mixins"; +@use "jambonz-ui/src/styles/vars" as ui-vars; +@use "jambonz-ui/src/styles/mixins" as ui-mixins; + +.login { + width: 100vw; + height: 100vh; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + padding-left: ui-vars.$px02; + padding-right: ui-vars.$px02; + + header { + position: fixed; + padding: ui-vars.$px03; + top: 0; + left: 0; + width: 100%; + display: flex; + align-items: center; + justify-content: center; + } + + footer { + color: ui-vars.$grey; + position: fixed; + padding: ui-vars.$px03; + bottom: 0; + left: 0; + width: 100%; + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + + a { + span { + border-bottom: 1px solid ui-vars.$jambonz; + } + + svg { + width: 16px; + height: 16px; + } + } + } + + form { + margin-top: ui-vars.$px04; + width: 100%; + max-width: ui-vars.$width-small; + background-color: ui-vars.$white; + padding: ui-vars.$px03; + border-radius: ui-vars.$px02; + flex-direction: column; + justify-content: center; + align-items: center; + text-align: center; + box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25); + color: ui-vars.$dark; + + @include mixins.small() { + padding: ui-vars.$px02; + } + + > * + * { + margin-top: ui-vars.$px02; + } + + > input, + > button { + width: 100%; + } + } +} diff --git a/src/containers/notfound.tsx b/src/containers/notfound.tsx new file mode 100644 index 0000000..ce61d2e --- /dev/null +++ b/src/containers/notfound.tsx @@ -0,0 +1,27 @@ +import React from "react"; +import { H1, Button, classNames } from "jambonz-ui"; +import { Link } from "react-router-dom"; + +import { useAuth } from "src/router/auth"; +import { ROUTE_LOGIN } from "src/router/routes"; + +export const NotFound = () => { + const { authorized } = useAuth(); + const classes = { + notfound: true, + "notfound--login": !authorized, + }; + + return ( +
+

That page doesn't exist.

+ {!authorized && ( + + )} +
+ ); +}; + +export default NotFound; diff --git a/src/contexts/ModalContext.js b/src/contexts/ModalContext.js deleted file mode 100644 index d363a50..0000000 --- a/src/contexts/ModalContext.js +++ /dev/null @@ -1,18 +0,0 @@ -import React, { createContext, useState } from 'react'; - -export const ModalStateContext = createContext(); -export const ModalDispatchContext = createContext(); - -// This context keeps track of when a modal is open. Other -// elements (buttons, links, inputs) are set to disabled -// when a modal is open -export function ModalProvider(props) { - const [ modalOpen, setModalOpen ] = useState(false); - return ( - - - {props.children} - - - ); -}; diff --git a/src/contexts/NotificationContext.js b/src/contexts/NotificationContext.js deleted file mode 100644 index ea424fa..0000000 --- a/src/contexts/NotificationContext.js +++ /dev/null @@ -1,40 +0,0 @@ -import React, { createContext, useReducer } from 'react'; -import NotificationReducer from '../reducers/NotificationReducer'; - -export const NotificationStateContext = createContext(); -export const NotificationDispatchContext = createContext(); - -export function NotificationProvider(props) { - - /* - sample notification format - { - id: 1234, - level: 'info', - message: 'hello', - }; - */ - - const [state, dispatch] = useReducer(NotificationReducer, []); - - const interceptDispatch = action => { - if (action.type === 'ADD') { - const id = Date.now(); - const actionWithId = { ...action, id }; - dispatch(actionWithId); - setTimeout(() => { - dispatch({ type: 'REMOVE', id }); - }, 3000); - return; - } - dispatch(action); - }; - - return ( - - - {props.children} - - - ); -} diff --git a/src/contexts/ServiceProviderContext.js b/src/contexts/ServiceProviderContext.js deleted file mode 100644 index 8b7bd1e..0000000 --- a/src/contexts/ServiceProviderContext.js +++ /dev/null @@ -1,16 +0,0 @@ -import React, { createContext, useState } from "react"; - -export const ServiceProviderValueContext = createContext(); -export const ServiceProviderMethodContext = createContext(); - -export function ServiceProvider(props) { - const [currentServiceProvider, setCurrentServiceProvider] = useState(""); - - return ( - - - {props.children} - - - ); -} diff --git a/src/contexts/ShowMsTeamsContext.js b/src/contexts/ShowMsTeamsContext.js deleted file mode 100644 index 4c911a2..0000000 --- a/src/contexts/ShowMsTeamsContext.js +++ /dev/null @@ -1,47 +0,0 @@ -import React, { useState, createContext, useContext } from 'react'; -import axios from 'axios'; -import { NotificationDispatchContext } from './NotificationContext'; -import { APP_API_BASE_URL } from "../constants"; - -export const ShowMsTeamsStateContext = createContext(); -export const ShowMsTeamsDispatchContext = createContext(); - -export function ShowMsTeamsProvider(props) { - const dispatch = useContext(NotificationDispatchContext); - const [ showMsTeams, setShowMsTeams ] = useState(false); - - const getMsTeamsData = async () => { - try { - const serviceProvidersResponse = await axios({ - method: 'get', - baseURL: APP_API_BASE_URL, - url: '/ServiceProviders', - headers: { - Authorization: `Bearer ${localStorage.getItem('token')}`, - }, - }); - - if (serviceProvidersResponse.data[0].ms_teams_fqdn) { - setShowMsTeams(true); - } else { - setShowMsTeams(false); - } - - } catch (err) { - dispatch({ - type: 'ADD', - level: 'error', - message: (err.response && err.response.data && err.response.data.msg) || 'Something went wrong, please try again.', - }); - console.log(err.response || err); - } - }; - - return ( - - - {props.children} - - - ); -}; diff --git a/src/data/AwsRegions.js b/src/data/AwsRegions.js deleted file mode 100644 index 6aca9eb..0000000 --- a/src/data/AwsRegions.js +++ /dev/null @@ -1,92 +0,0 @@ -const regions = [ - { - name: 'US East (N. Virginia)', - value: 'us-east-1' - }, - { - name: 'US East (Ohio)', - value: 'us-east-2' - }, - { - name: 'US West (N. California)', - value: 'us-west-1' - }, - { - name: 'US West (Oregon)', - value: 'us-west-2' - }, - { - name: 'Africa (Cape Town)', - value: 'af-south-1' - }, - { - name: 'Asia Pacific (Hong Kong)', - value: 'ap-east-1' - }, - { - name: 'Asia Pacific (Jakarta)', - value: 'ap-southeast-3' - }, - { - name: 'Asia Pacific (Mumbai)', - value: 'ap-south-1' - }, - { - name: 'Asia Pacific (Osaka)', - value: 'ap-northeast-3' - }, - { - name: 'Asia Pacific (Seoul)', - value: 'ap-northeast-2' - }, - { - name: 'Asia Pacific (Singapore)', - value: 'ap-southeast-1' - }, - { - name: 'Asia Pacific (Sydney)', - value: 'ap-southeast-2' - }, - { - name: 'Asia Pacific (Tokyo)', - value: 'ap-northeast-1' - }, - { - name: 'Canada (Central)', - value: 'ca-central-1' - }, - { - name: 'Europe (Frankfurt)', - value: 'eu-central-1' - }, - { - name: 'Europe (Ireland)', - value: 'eu-west-1' - }, - { - name: 'Europe (London)', - value: 'eu-west-2' - }, - { - name: 'Europe (Milan)', - value: 'eu-south-1' - }, - { - name: 'Europe (Paris)', - value: 'eu-west-3' - }, - { - name: 'Europe (Stockholm)', - value: 'eu-north-1' - }, - { - name: 'Middle East (Bahrain)', - value: 'me-south-1' - }, - { - name: 'South America (São Paulo)', - value: 'sa-east-1' - } -]; - -export default regions; diff --git a/src/data/MicrosoftAzureRegions.js b/src/data/MicrosoftAzureRegions.js deleted file mode 100644 index 7f383b4..0000000 --- a/src/data/MicrosoftAzureRegions.js +++ /dev/null @@ -1,124 +0,0 @@ -const regions = [ - { - name: 'Australia - East (australiaeast)', - value: 'australiaeast' - }, - { - name: 'Brazil - South (brazilsouth)', - value: 'brazilsouth' - }, - { - name: 'Canada - Central (canadacentral)', - value: 'canadacentral' - }, - { - name: 'East Asia (eastasia)', - value: 'eastasia' - }, - { - name: 'Europe - North (northeurope)', - value: 'northeurope' - }, - { - name: 'Europe - West (westeurope)', - value: 'westeurope' - }, - { - name: 'France - Central (francecentral)', - value: 'francecentral' - }, - { - name: 'Germany - West Central (germanywestcentral)', - value: 'germanywestcentral' - }, - { - name: 'India - Central (centralindia)', - value: 'centralindia' - }, - { - name: 'Japan - East (japaneast)', - value: 'japaneast' - }, - { - name: 'Japan - West (japanwest)', - value: 'japanwest' - }, - { - name: 'Korea - Central (koreacentral)', - value: 'koreacentral' - }, - { - name: 'Norway - East (norwayeast)', - value: 'norwayeast' - }, - { - name: 'South Africa - North (southafricanorth)', - value: 'southafricanorth' - }, - { - name: 'Southeast Asia (southeastasia)', - value: 'southeastasia' - }, - { - name: 'Switzerland - North (switzerlandnorth)', - value: 'switzerlandnorth' - }, - { - name: 'Switzerland - West (switzerlandwest)', - value: 'switzerlandwest' - }, - { - name: 'UAE - North (uaenorth)', - value: 'uaenorth' - }, - { - name: 'UK - South (uksouth)', - value: 'uksouth' - }, - { - name: 'US - Central (centralus)', - value: 'centralus' - }, - { - name: 'US - East (eastus)', - value: 'eastus' - }, - { - name: 'US - East 2 (eastus2)', - value: 'eastus2' - }, - { - name: 'US - Gov Arizona (usgovarizona)', - value: 'usgovarizona' - }, - { - name: 'US - Gov Virginia (usgovvirginia)', - value: 'usgovvirginia' - }, - { - name: 'US - North Central (northcentralus)', - value: 'northcentralus' - }, - { - name: 'US - South Central (southcentralus)', - value: 'southcentralus' - }, - { - name: 'US - West Central (westcentralus)', - value: 'westcentralus' - }, - { - name: 'US - West (westus)', - value: 'westus' - }, - { - name: 'US - West 2 (westus2)', - value: 'westus2' - }, - { - name: 'US - West 3 (westus3)', - value: 'westus3' - } -]; - -export default regions; \ No newline at end of file diff --git a/src/data/SpeechRecognizerLanguageAws.js b/src/data/SpeechRecognizerLanguageAws.js deleted file mode 100644 index 44bade3..0000000 --- a/src/data/SpeechRecognizerLanguageAws.js +++ /dev/null @@ -1,12 +0,0 @@ -const languages = [ - { name: 'Australian English', 'code': 'en-AU' }, - { name: 'British English', 'code': 'en-GB' }, - { name: 'US English', 'code': 'en-US' }, - { name: 'French', 'code': 'fr-FR' }, - { name: 'Canadian French', 'code': 'fr-CA' }, - { name: 'German', 'code': 'de-DE' }, - { name: 'Italian', 'code': 'it-IT' }, - { name: 'US Spanish', 'code': 'es-US' }, -]; - -export default languages; diff --git a/src/data/SpeechRecognizerLanguageGoogle.js b/src/data/SpeechRecognizerLanguageGoogle.js deleted file mode 100644 index a16bdce..0000000 --- a/src/data/SpeechRecognizerLanguageGoogle.js +++ /dev/null @@ -1,132 +0,0 @@ -const languages = [ - { name: 'Afrikaans (South Africa)', code: 'af-ZA', }, - { name: 'Albanian (Albania)', code: 'sq-AL', }, - { name: 'Amharic (Ethiopia)', code: 'am-ET', }, - { name: 'Arabic (Algeria)', code: 'ar-DZ', }, - { name: 'Arabic (Bahrain)', code: 'ar-BH', }, - { name: 'Arabic (Egypt)', code: 'ar-EG', }, - { name: 'Arabic (Iraq)', code: 'ar-IQ', }, - { name: 'Arabic (Israel)', code: 'ar-IL', }, - { name: 'Arabic (Jordan)', code: 'ar-JO', }, - { name: 'Arabic (Kuwait)', code: 'ar-KW', }, - { name: 'Arabic (Lebanon)', code: 'ar-LB', }, - { name: 'Arabic (Morocco)', code: 'ar-MA', }, - { name: 'Arabic (Oman)', code: 'ar-OM', }, - { name: 'Arabic (Qatar)', code: 'ar-QA', }, - { name: 'Arabic (Saudi Arabia)', code: 'ar-SA', }, - { name: 'Arabic (State of Palestine)', code: 'ar-PS', }, - { name: 'Arabic (Tunisia)', code: 'ar-TN', }, - { name: 'Arabic (United Arab Emirates)', code: 'ar-AE', }, - { name: 'Armenian (Armenia)', code: 'hy-AM', }, - { name: 'Azerbaijani (Azerbaijan)', code: 'az-AZ', }, - { name: 'Basque (Spain)', code: 'eu-ES', }, - { name: 'Bengali (Bangladesh)', code: 'bn-BD', }, - { name: 'Bengali (India)', code: 'bn-IN', }, - { name: 'Bulgarian (Bulgaria)', code: 'bg-BG', }, - { name: 'Burmese (Myanmar)', code: 'my-MM', }, - { name: 'Catalan (Spain)', code: 'ca-ES', }, - { name: 'Chinese, Cantonese (Traditional, Hong Kong)', code: 'yue-Hant-HK', }, - { name: 'Chinese, Mandarin (Simplified, China)', code: 'zh', }, - { name: 'Chinese, Mandarin (Simplified, Hong Kong)', code: 'zh-HK', }, - { name: 'Chinese, Mandarin (Simplified, Taiwan)', code: 'zh-TW', }, - { name: 'Croatian (Croatia)', code: 'hr-HR', }, - { name: 'Czech (Czech Republic)', code: 'cs-CZ', }, - { name: 'Danish (Denmark)', code: 'da-DK', }, - { name: 'Dutch (Belgium)', code: 'nl-BE', }, - { name: 'Dutch (Netherlands)', code: 'nl-NL', }, - { name: 'English (Australia)', code: 'en-AU', }, - { name: 'English (Canada)', code: 'en-CA', }, - { name: 'English (Ghana)', code: 'en-GH', }, - { name: 'English (India)', code: 'en-IN', }, - { name: 'English (Ireland)', code: 'en-IE', }, - { name: 'English (Kenya)', code: 'en-KE', }, - { name: 'English (New Zealand)', code: 'en-NZ', }, - { name: 'English (Nigeria)', code: 'en-NG', }, - { name: 'English (Philippines)', code: 'en-PH', }, - { name: 'English (Singapore)', code: 'en-SG', }, - { name: 'English (South Africa)', code: 'en-ZA', }, - { name: 'English (Tanzania)', code: 'en-TZ', }, - { name: 'English (United Kingdom)', code: 'en-GB', }, - { name: 'English (United States)', code: 'en-US', }, - { name: 'Estonian (Estonia)', code: 'et-EE', }, - { name: 'Filipino (Philippines)', code: 'fil-PH', }, - { name: 'Finnish (Finland)', code: 'fi-FI', }, - { name: 'French (Canada)', code: 'fr-CA', }, - { name: 'French (France)', code: 'fr-FR', }, - { name: 'Galician (Spain)', code: 'gl-ES', }, - { name: 'Georgian (Georgia)', code: 'ka-GE', }, - { name: 'German (Germany)', code: 'de-DE', }, - { name: 'Greek (Greece)', code: 'el-GR', }, - { name: 'Gujarati (India)', code: 'gu-IN', }, - { name: 'Hebrew (Israel)', code: 'he-IL', }, - { name: 'Hindi (India)', code: 'hi-IN', }, - { name: 'Hungarian (Hungary)', code: 'hu-HU', }, - { name: 'Icelandic (Iceland)', code: 'is-IS', }, - { name: 'Indonesian (Indonesia)', code: 'id-ID', }, - { name: 'Italian (Italy)', code: 'it-IT', }, - { name: 'Japanese (Japan)', code: 'ja-JP', }, - { name: 'Javanese (Indonesia)', code: 'jv-ID', }, - { name: 'Kannada (India)', code: 'kn-IN', }, - { name: 'Khmer (Cambodia)', code: 'km-KH', }, - { name: 'Korean (South Korea)', code: 'ko-KR', }, - { name: 'Lao (Laos)', code: 'lo-LA', }, - { name: 'Latvian (Latvia)', code: 'lv-LV', }, - { name: 'Lithuanian (Lithuania)', code: 'lt-LT', }, - { name: 'Macedonian (North Macedonia)', code: 'mk-MK', }, - { name: 'Malay (Malaysia)', code: 'ms-MY', }, - { name: 'Malayalam (India)', code: 'ml-IN', }, - { name: 'Marathi (India)', code: 'mr-IN', }, - { name: 'Mongolian (Mongolia)', code: 'mn-MN', }, - { name: 'Nepali (Nepal)', code: 'ne-NP', }, - { name: 'Norwegian Bokmål (Norway)', code: 'nb-NO', }, - { name: 'Persian (Iran)', code: 'fa-IR', }, - { name: 'Polish (Poland)', code: 'pl-PL', }, - { name: 'Portuguese (Brazil)', code: 'pt-BR', }, - { name: 'Portuguese (Portugal)', code: 'pt-PT', }, - { name: 'Punjabi (Gurmukhi, India)', code: 'pa-guru-IN', }, - { name: 'Romanian (Romania)', code: 'ro-RO', }, - { name: 'Russian (Russia)', code: 'ru-RU', }, - { name: 'Serbian (Serbia)', code: 'sr-RS', }, - { name: 'Sinhala (Sri Lanka)', code: 'si-LK', }, - { name: 'Slovak (Slovakia)', code: 'sk-SK', }, - { name: 'Slovenian (Slovenia)', code: 'sl-SI', }, - { name: 'Spanish (Argentina)', code: 'es-AR', }, - { name: 'Spanish (Bolivia)', code: 'es-BO', }, - { name: 'Spanish (Chile)', code: 'es-CL', }, - { name: 'Spanish (Colombia)', code: 'es-CO', }, - { name: 'Spanish (Costa Rica)', code: 'es-CR', }, - { name: 'Spanish (Dominican Republic)', code: 'es-DO', }, - { name: 'Spanish (Ecuador)', code: 'es-EC', }, - { name: 'Spanish (El Salvador)', code: 'es-SV', }, - { name: 'Spanish (Guatemala)', code: 'es-GT', }, - { name: 'Spanish (Honduras)', code: 'es-HN', }, - { name: 'Spanish (Mexico)', code: 'es-MX', }, - { name: 'Spanish (Nicaragua)', code: 'es-NI', }, - { name: 'Spanish (Panama)', code: 'es-PA', }, - { name: 'Spanish (Paraguay)', code: 'es-PY', }, - { name: 'Spanish (Peru)', code: 'es-PE', }, - { name: 'Spanish (Puerto Rico)', code: 'es-PR', }, - { name: 'Spanish (Spain)', code: 'es-ES', }, - { name: 'Spanish (United States)', code: 'es-US', }, - { name: 'Spanish (Uruguay)', code: 'es-UY', }, - { name: 'Spanish (Venezuela)', code: 'es-VE', }, - { name: 'Sundanese (Indonesia)', code: 'su-ID', }, - { name: 'Swahili (Kenya)', code: 'sw-KE', }, - { name: 'Swahili (Tanzania)', code: 'sw-TZ', }, - { name: 'Swedish (Sweden)', code: 'sv-SE', }, - { name: 'Tamil (India)', code: 'ta-IN', }, - { name: 'Tamil (Malaysia)', code: 'ta-MY', }, - { name: 'Tamil (Singapore)', code: 'ta-SG', }, - { name: 'Tamil (Sri Lanka)', code: 'ta-LK', }, - { name: 'Telugu (India)', code: 'te-IN', }, - { name: 'Thai (Thailand)', code: 'th-TH', }, - { name: 'Turkish (Turkey)', code: 'tr-TR', }, - { name: 'Ukrainian (Ukraine)', code: 'uk-UA', }, - { name: 'Urdu (India)', code: 'ur-IN', }, - { name: 'Urdu (Pakistan)', code: 'ur-PK', }, - { name: 'Uzbek (Uzbekistan)', code: 'uz-UZ', }, - { name: 'Vietnamese (Vietnam)', code: 'vi-VN', }, - { name: 'Zulu (South Africa)', code: 'zu-ZA', }, -]; - -export default languages; diff --git a/src/data/SpeechRecognizerLanguageMicrosoft.js b/src/data/SpeechRecognizerLanguageMicrosoft.js deleted file mode 100644 index c21c13c..0000000 --- a/src/data/SpeechRecognizerLanguageMicrosoft.js +++ /dev/null @@ -1,492 +0,0 @@ -const languages = [ - { - name: 'Afrikaans (South Africa)', - code: 'af-ZA' - }, - { - name: 'Amharic (Ethiopia)', - code: 'am-ET' - }, - { - name: 'Arabic (Algeria)', - code: 'ar-DZ' - }, - { - name: 'Arabic (Bahrain)', - code: 'ar-BH' - }, - { - name: 'Arabic (Egypt)', - code: 'ar-EG' - }, - { - name: 'Arabic (Iraq)', - code: 'ar-IQ' - }, - { - name: 'Arabic (Israel)', - code: 'ar-IL' - }, - { - name: 'Arabic (Jordan)', - code: 'ar-JO' - }, - { - name: 'Arabic (Kuwait)', - code: 'ar-KW' - }, - { - name: 'Arabic (Lebanon)', - code: 'ar-LB' - }, - { - name: 'Arabic (Libya)', - code: 'ar-LY' - }, - { - name: 'Arabic (Morocco)', - code: 'ar-MA' - }, - { - name: 'Arabic (Oman)', - code: 'ar-OM' - }, - { - name: 'Arabic (Qatar)', - code: 'ar-QA' - }, - { - name: 'Arabic (Saudi Arabia)', - code: 'ar-SA' - }, - { - name: 'Arabic (Palestinian Authority)', - code: 'ar-PS' - }, - { - name: 'Arabic (Syria)', - code: 'ar-SY' - }, - { - name: 'Arabic (Tunisia)', - code: 'ar-TN' - }, - { - name: 'Arabic (United Arab Emirates)', - code: 'ar-AE' - }, - { - name: 'Arabic (Yemen)', - code: 'ar-YE' - }, - { - name: 'Bulgarian (Bulgaria)', - code: 'bg-BG' - }, - { - name: 'Bengali (India)', - code: 'bn-IN' - }, - { - name: 'Catalan (Spain)', - code: 'ca-ES' - }, - { - name: 'Chinese (Cantonese, Traditional)', - code: 'zh-HK' - }, - { - name: 'Chinese (Mandarin, Simplified)', - code: 'zh-CN' - }, - { - name: 'Chinese (Taiwanese Mandarin)', - code: 'zh-TW' - }, - { - name: 'Croatian (Croatia)', - code: 'hr-HR' - }, - { - name: 'Czech (Czech)', - code: 'cs-CZ' - }, - { - name: 'Danish (Denmark)', - code: 'da-DK' - }, - { - name: 'Dutch (Netherlands)', - code: 'nl-NL' - }, - { - name: 'Dutch (Belgium)', - code: 'nl-BE' - }, - { - name: 'English (Australia)', - code: 'en-AU' - }, - { - name: 'English (Canada)', - code: 'en-CA' - }, - { - name: 'English (Ghana)', - code: 'en-GH' - }, - { - name: 'English (Hong Kong)', - code: 'en-HK' - }, - { - name: 'English (India)', - code: 'en-IN' - }, - { - name: 'English (Ireland)', - code: 'en-IE' - }, - { - name: 'English (Kenya)', - code: 'en-KE' - }, - { - name: 'English (New Zealand)', - code: 'en-NZ' - }, - { - name: 'English (Nigeria)', - code: 'en-NG' - }, - { - name: 'English (Philippines)', - code: 'en-PH' - }, - { - name: 'English (Singapore)', - code: 'en-SG' - }, - { - name: 'English (South Africa)', - code: 'en-ZA' - }, - { - name: 'English (Tanzania)', - code: 'en-TZ' - }, - { - name: 'English (United Kingdom)', - code: 'en-GB' - }, - { - name: 'English (United States)', - code: 'en-US' - }, - { - name: 'Estonian(Estonia)', - code: 'et-EE' - }, - { - name: 'Filipino (Philippines)', - code: 'fil-PH' - }, - { - name: 'Finnish (Finland)', - code: 'fi-FI' - }, - { - name: 'French (Belgium)', - code: 'fr-BE' - }, - { - name: 'French (Canada)', - code: 'fr-CA' - }, - { - name: 'French (France)', - code: 'fr-FR' - }, - { - name: 'French (Switzerland)', - code: 'fr-CH' - }, - { - name: 'German (Austria)', - code: 'de-AT' - }, - { - name: 'German (Switzerland)', - code: 'de-CH' - }, - { - name: 'German (Germany)', - code: 'de-DE' - }, - { - name: 'Greek (Greece)', - code: 'el-GR' - }, - { - name: 'Gujarati (Indian)', - code: 'gu-IN' - }, - { - name: 'Hebrew (Israel)', - code: 'he-IL' - }, - { - name: 'Hindi (India)', - code: 'hi-IN' - }, - { - name: 'Hungarian (Hungary)', - code: 'hu-HU' - }, - { - name: 'Indonesian (Indonesia)', - code: 'id-ID' - }, - { - name: 'Icelandic (Iceland)', - code: 'is-IS' - }, - { - name: 'Irish (Ireland)', - code: 'ga-IE' - }, - { - name: 'Italian (Italy)', - code: 'it-IT' - }, - { - name: 'Japanese (Japan)', - code: 'ja-JP' - }, - { - name: 'Javanese (Indonesia)', - code: 'jv-ID' - }, - { - name: 'Kannada (India)', - code: 'kn-IN' - }, - { - name: 'Khmer (Cambodia)', - code: 'km-KH' - }, - { - name: 'Korean (Korea)', - code: 'ko-KR' - }, - { - name: 'Latvian (Latvia)', - code: 'lv-LV' - }, - { - name: 'Lao (Laos)', - code: 'lo-LA' - }, - { - name: 'Lithuanian (Lithuania)', - code: 'lt-LT' - }, - { - name: 'Malay (Malaysia)', - code: 'ms-MY' - }, - { - name: 'Macedonian (North Macedonia)', - code: 'mk-MK' - }, - { - name: 'Maltese (Malta)', - code: 'mt-MT' - }, - { - name: 'Marathi (India)', - code: 'mr-IN' - }, - { - name: 'Burmese (Myanmar)', - code: 'my-MM' - }, - { - name: 'Norwegian (Bokmål, Norway)', - code: 'nb-NO' - }, - { - name: 'Persian (Iran)', - code: 'fa-IR' - }, - { - name: 'Polish (Poland)', - code: 'pl-PL' - }, - { - name: 'Portuguese (Brazil)', - code: 'pt-BR' - }, - { - name: 'Portuguese (Portugal)', - code: 'pt-PT' - }, - { - name: 'Romanian (Romania)', - code: 'ro-RO' - }, - { - name: 'Russian (Russia)', - code: 'ru-RU' - }, - { - name: 'Slovak (Slovakia)', - code: 'sk-SK' - }, - { - name: 'Slovenian (Slovenia)', - code: 'sl-SI' - }, - { - name: 'Spanish (Argentina)', - code: 'es-AR' - }, - { - name: 'Spanish (Bolivia)', - code: 'es-BO' - }, - { - name: 'Spanish (Chile)', - code: 'es-CL' - }, - { - name: 'Spanish (Colombia)', - code: 'es-CO' - }, - { - name: 'Spanish (Costa Rica)', - code: 'es-CR' - }, - { - name: 'Spanish (Cuba)', - code: 'es-CU' - }, - { - name: 'Spanish (Dominican Republic)', - code: 'es-DO' - }, - { - name: 'Spanish (Ecuador)', - code: 'es-EC' - }, - { - name: 'Spanish (El Salvador)', - code: 'es-SV' - }, - { - name: 'Spanish (Equatorial Guinea)', - code: 'es-GQ' - }, - { - name: 'Spanish (Guatemala)', - code: 'es-GT' - }, - { - name: 'Spanish (Honduras)', - code: 'es-HN' - }, - { - name: 'Spanish (Mexico)', - code: 'es-MX' - }, - { - name: 'Spanish (Nicaragua)', - code: 'es-NI' - }, - { - name: 'Spanish (Panama)', - code: 'es-PA' - }, - { - name: 'Spanish (Paraguay)', - code: 'es-PY' - }, - { - name: 'Spanish (Peru)', - code: 'es-PE' - }, - { - name: 'Spanish (Puerto Rico)', - code: 'es-PR' - }, - { - name: 'Spanish (Spain)', - code: 'es-ES' - }, - { - name: 'Spanish (Uruguay)', - code: 'es-UY' - }, - { - name: 'Spanish (USA)', - code: 'es-US' - }, - { - name: 'Spanish (Venezuela)', - code: 'es-VE' - }, - { - name: 'Swahili (Kenya)', - code: 'sw-KE' - }, - { - name: 'Swahili (Tanzania)', - code: 'sw-TZ' - }, - { - name: 'Sinhala (Sri Lanka)', - code: 'si-LK' - }, - { - name: 'Swedish (Sweden)', - code: 'sv-SE' - }, - { - name: 'Serbian (Serbia)', - code: 'sr-RS' - }, - { - name: 'Tamil (India)', - code: 'ta-IN' - }, - { - name: 'Telugu (India)', - code: 'te-IN' - }, - { - name: 'Thai (Thailand)', - code: 'th-TH' - }, - { - name: 'Turkish (Turkey)', - code: 'tr-TR' - }, - { - name: 'Ukrainian (Ukraine)', - code: 'uk-UA' - }, - { - name: 'Uzbek (Uzbekistan)', - code: 'uz-UZ' - }, - { - name: 'Zulu (South Africa)', - code: 'zu-ZA' - }, - { - name: 'Vietnamese (Vietnam)', - code: 'vi-VN' - }, -]; - -export default languages; diff --git a/src/data/SpeechSynthesisLanguageAws.js b/src/data/SpeechSynthesisLanguageAws.js deleted file mode 100644 index 78cc66c..0000000 --- a/src/data/SpeechSynthesisLanguageAws.js +++ /dev/null @@ -1,239 +0,0 @@ -const languages = [ - { - code: 'arb', - name: 'Arabic', - voices: [ - { value: 'Zeina', name: 'Zeina (Female)'}, - ], - }, - { - code: 'cmn-CN', - name: 'Chinese, Mandarin', - voices: [ - { value: 'Zhiyu', name: 'Zhiyu (Female)'}, - ], - }, - { - code: 'da-DK', - name: 'Danish', - voices: [ - { value: 'Naja', name: 'Naja (Female)'}, - { value: 'Mads', name: 'Mads (Male)'}, - ], - }, - { - code: 'nl-NL', - name: 'Dutch', - voices: [ - { value: 'Lotte', name: 'Lotte (Female)'}, - { value: 'Ruben', name: 'Ruben (Male)'}, - ], - }, - { - code: 'en-AU', - name: 'English (Australian)', - voices: [ - { value: 'Nicole', name: 'Nicole (Female)'}, - { value: 'Russell', name: 'Russell (Male)'}, - ], - }, - { - code: 'en-GB', - name: 'English (British)', - voices: [ - { value: 'Amy', name: 'Amy (Female)'}, - { value: 'Emma', name: 'Emma (Female)'}, - { value: 'Brian', name: 'Brian (Male)'}, - ], - }, - { - code: 'en-IN', - name: 'English (Indian)', - voices: [ - { value: 'Aditi', name: 'Aditi (Female)'}, - { value: 'Raveena', name: 'Raveena (Female)'}, - ], - }, - { - code: 'en-US', - name: 'English (US)', - voices: [ - { value: 'Joanna', name: 'Joanna (Female)'}, - { value: 'Kendra', name: 'Kendra (Female)'}, - { value: 'Kimberly', name: 'Kimberly (Female)'}, - { value: 'Ivy', name: 'Ivy (Female child)'}, - { value: 'Salli', name: 'Salli (Female)'}, - { value: 'Joey', name: 'Joey (Male)'}, - { value: 'Matthew', name: 'Matthew (Male)'}, - { value: 'Justin', name: 'Justin (Male child)'}, - ], - }, - { - code: 'en-GB-WLS', - name: 'English (Welsh)', - voices: [ - { value: 'Geraint', name: 'Geraint (Male)'}, - ], - }, - { - code: 'fr-FR', - name: 'French', - voices: [ - { value: 'Celine', name: 'Céline (Female)'}, - { value: 'Lea', name: 'Léa (Female)'}, - { value: 'Mathieu', name: 'Mathieu (Male)'}, - ], - }, - { - code: 'fr-CA', - name: 'French (Canadian)', - voices: [ - { value: 'Chantal', name: 'Chantal (Female)'}, - ], - }, - { - code: 'de-DE', - name: 'German', - voices: [ - { value: 'Marlene', name: 'Marlene (Female)'}, - { value: 'Vicki', name: 'Vicki (Female)'}, - { value: 'Hans', name: 'Hans (Male)'}, - ], - }, - { - code: 'hi-IN', - name: 'Hindi', - voices: [ - { value: 'Aditi', name: 'Aditi (Female)'}, - ], - }, - { - code: 'is-IS', - name: 'Icelandic', - voices: [ - { value: 'Dora', name: 'Dóra (Female)'}, - { value: 'Karl', name: 'Karl (Male)'}, - ], - }, - { - code: 'it-IT', - name: 'Italian', - voices: [ - { value: 'Carla', name: 'Carla (Female)'}, - { value: 'Bianca', name: 'Bianca (Female)'}, - { value: 'Giorgio', name: 'Giorgio (Male)'}, - ], - }, - { - code: 'ja-JP', - name: 'Japanese', - voices: [ - { value: 'Mizuki', name: 'Mizuki (Female)'}, - { value: 'Takumi', name: 'Takumi (Male)'}, - ], - }, - { - code: 'ko-KR', - name: 'Korean', - voices: [ - { value: 'Seoyeon', name: 'Seoyeon (Female)'}, - ], - }, - { - code: 'nb-NO', - name: 'Norwegian', - voices: [ - { value: 'Liv', name: 'Liv (Female)'}, - ], - }, - { - code: 'pl-PL', - name: 'Polish', - voices: [ - { value: 'Ewa', name: 'Ewa (Female)'}, - { value: 'Maja', name: 'Maja (Female)'}, - { value: 'Jacek', name: 'Jacek (Male)'}, - { value: 'Jan', name: 'Jan (Male)'}, - ], - }, - { - code: 'pt-BR', - name: 'Portuguese (Brazilian)', - voices: [ - { value: 'Camila', name: 'Camila (Female)'}, - { value: 'Vitoria', name: 'Vitória (Female)'}, - { value: 'Ricardo', name: 'Ricardo (Male)'}, - ], - }, - { - code: 'pt-PT', - name: 'Portuguese (European)', - voices: [ - { value: 'Ines', name: 'Inês (Female)'}, - { value: 'Cristiano', name: 'Cristiano (Male)'}, - ], - }, - { - code: 'ro-RO', - name: 'Romanian', - voices: [ - { value: 'Carmen', name: 'Carmen (Female)'}, - ], - }, - { - code: 'ru-RU', - name: 'Russian', - voices: [ - { value: 'Tatyana', name: 'Tatyana (Female)'}, - { value: 'Maxim', name: 'Maxim (Male)'}, - ], - }, - { - code: 'es-ES', - name: 'Spanish (European)', - voices: [ - { value: 'Conchita', name: 'Conchita (Female)' }, - { value: 'Lucia', name: 'Lucia (Female)' }, - { value: 'Enrique', name: 'Enrique (Male)' }, - ], - }, - { - code: 'es-MX', - name: 'Spanish (Mexican)', - voices: [ - { value: 'Mia', name: 'Mia (Female)' }, - ], - }, - { - code: 'es-US', - name: 'Spanish (US)', - voices: [ - { value: 'Lupe', name: 'Lupe (Female)' }, - { value: 'Penelope', name: 'Penélope (Female)' }, - { value: 'Miguel', name: 'Miguel (Male)' }, - ], - }, - { - code: 'sv-SE', - name: 'Swedish', - voices: [ - { value: 'Astrid', name: 'Astrid (Female)' }, - ], - }, - { - code: 'tr-TR', - name: 'Turkish', - voices: [ - { value: 'Filiz', name: 'Filiz (Female)' }, - ], - }, - { - code: 'cy-GB', - name: 'Welsh', - voices: [ - { value: 'Gwyneth', name: 'Gwyneth (Female)' }, - ], - }, -]; - -export default languages; diff --git a/src/data/SpeechSynthesisLanguageGoogle.js b/src/data/SpeechSynthesisLanguageGoogle.js deleted file mode 100644 index 3a8d992..0000000 --- a/src/data/SpeechSynthesisLanguageGoogle.js +++ /dev/null @@ -1,413 +0,0 @@ -const languages = [ - { - code: 'ar-XA', - name: 'Arabic', - voices: [ - { value: 'ar-XA-Standard-A', name: 'Standard-A (Female)' }, - { value: 'ar-XA-Standard-B', name: 'Standard-B (Male)' }, - { value: 'ar-XA-Standard-C', name: 'Standard-C (Male)' }, - { value: 'ar-XA-Standard-D', name: 'Standard-D (Female)' }, - { value: 'ar-XA-Wavenet-A', name: 'Wavenet-A (Female)' }, - { value: 'ar-XA-Wavenet-B', name: 'Wavenet-B (Male)' }, - { value: 'ar-XA-Wavenet-C', name: 'Wavenet-C (Male)' }, - ], - }, - { - code: 'cs-CZ', - name: 'Czech (Czech Republic)', - voices: [ - { value: 'cs-CZ-Standard-A', name: 'Standard-A (Female)' }, - { value: 'cs-CZ-Wavenet-A', name: 'Wavenet-A (Female)' }, - ], - }, - { - code: 'da-DK', - name: 'Danish (Denmark)', - voices: [ - { value: 'da-DK-Standard-A', name: 'Standard-A (Female)' }, - { value: 'da-DK-Wavenet-A', name: 'Wavenet-A (Female)' }, - ], - }, - { - code: 'nl-NL', - name: 'Dutch (Netherlands)', - voices: [ - { value: 'nl-NL-Standard-A', name: 'Standard-A (Female)' }, - { value: 'nl-NL-Standard-B', name: 'Standard-B (Male)' }, - { value: 'nl-NL-Standard-C', name: 'Standard-C (Male)' }, - { value: 'nl-NL-Standard-D', name: 'Standard-D (Female)' }, - { value: 'nl-NL-Standard-E', name: 'Standard-E (Female)' }, - { value: 'nl-NL-Wavenet-A', name: 'Wavenet-A (Female)' }, - { value: 'nl-NL-Wavenet-B', name: 'Wavenet-B (Male)' }, - { value: 'nl-NL-Wavenet-C', name: 'Wavenet-C (Male)' }, - { value: 'nl-NL-Wavenet-D', name: 'Wavenet-D (Female)' }, - { value: 'nl-NL-Wavenet-E', name: 'Wavenet-E (Female)' }, - ], - }, - { - code: 'en-AU', - name: 'English (Australia)', - voices: [ - { value: 'en-AU-Standard-A', name: 'Standard-A (Female)' }, - { value: 'en-AU-Standard-B', name: 'Standard-B (Male)' }, - { value: 'en-AU-Standard-C', name: 'Standard-C (Female)' }, - { value: 'en-AU-Standard-D', name: 'Standard-D (Male)' }, - { value: 'en-AU-Wavenet-A', name: 'Wavenet-A (Female)' }, - { value: 'en-AU-Wavenet-B', name: 'Wavenet-B (Male)' }, - { value: 'en-AU-Wavenet-C', name: 'Wavenet-C (Female)' }, - { value: 'en-AU-Wavenet-D', name: 'Wavenet-D (Male)' }, - ], - }, - { - code: 'en-IN', - name: 'English (India)', - voices: [ - { value: 'en-IN-Standard-A', name: 'Standard-A (Female)' }, - { value: 'en-IN-Standard-B', name: 'Standard-B (Male)' }, - { value: 'en-IN-Standard-C', name: 'Standard-C (Male)' }, - { value: 'en-IN-Standard-D', name: 'Standard-D (Female)' }, - { value: 'en-IN-Wavenet-A', name: 'Wavenet-A (Female)' }, - { value: 'en-IN-Wavenet-B', name: 'Wavenet-B (Male)' }, - { value: 'en-IN-Wavenet-C', name: 'Wavenet-C (Male)' }, - { value: 'en-IN-Wavenet-D', name: 'Wavenet-D (Female)' }, - ], - }, - { - code: 'en-GB', - name: 'English (UK)', - voices: [ - { value: 'en-GB-Standard-A', name: 'Standard-A (Female)' }, - { value: 'en-GB-Standard-B', name: 'Standard-B (Male)' }, - { value: 'en-GB-Standard-C', name: 'Standard-C (Female)' }, - { value: 'en-GB-Standard-D', name: 'Standard-D (Male)' }, - { value: 'en-GB-Wavenet-A', name: 'Wavenet-A (Female)' }, - { value: 'en-GB-Wavenet-B', name: 'Wavenet-B (Male)' }, - { value: 'en-GB-Wavenet-C', name: 'Wavenet-C (Female)' }, - { value: 'en-GB-Wavenet-D', name: 'Wavenet-D (Male)' }, - ], - }, - { - code: 'en-US', - name: 'English (US)', - voices: [ - { value: 'en-US-Standard-B', name: 'Standard-B (Male)' }, - { value: 'en-US-Standard-C', name: 'Standard-C (Female)' }, - { value: 'en-US-Standard-D', name: 'Standard-D (Male)' }, - { value: 'en-US-Standard-E', name: 'Standard-E (Female)' }, - { value: 'en-US-Wavenet-A', name: 'Wavenet-A (Male)' }, - { value: 'en-US-Wavenet-B', name: 'Wavenet-B (Male)' }, - { value: 'en-US-Wavenet-C', name: 'Wavenet-C (Female)' }, - { value: 'en-US-Wavenet-D', name: 'Wavenet-D (Male)' }, - { value: 'en-US-Wavenet-E', name: 'Wavenet-E (Female)' }, - { value: 'en-US-Wavenet-F', name: 'Wavenet-F (Female)' }, - ], - }, - { - code: 'fil-PH', - name: 'Filipino (Philippines)', - voices: [ - { value: 'fil-PH-Standard-A', name: 'Standard-A (Female)' }, - { value: 'fil-PH-Wavenet-A', name: 'Wavenet-A (Female)' }, - ], - }, - { - code: 'fi-FI', - name: 'Finnish (Finland)', - voices: [ - { value: 'fi-FI-Standard-A', name: 'Standard-A (Female)' }, - { value: 'fi-FI-Wavenet-A', name: 'Wavenet-A (Female)' }, - ], - }, - { - code: 'fr-CA', - name: 'French (Canada)', - voices: [ - { value: 'fr-CA-Standard-A', name: 'Standard-A (Female)' }, - { value: 'fr-CA-Standard-B', name: 'Standard-B (Male)' }, - { value: 'fr-CA-Standard-C', name: 'Standard-C (Female)' }, - { value: 'fr-CA-Standard-D', name: 'Standard-D (Male)' }, - { value: 'fr-CA-Wavenet-A', name: 'Wavenet-A (Female)' }, - { value: 'fr-CA-Wavenet-B', name: 'Wavenet-B (Male)' }, - { value: 'fr-CA-Wavenet-C', name: 'Wavenet-C (Female)' }, - { value: 'fr-CA-Wavenet-D', name: 'Wavenet-D (Male)' }, - ], - }, - { - code: 'fr-FR', - name: 'French (France)', - voices: [ - { value: 'fr-FR-Standard-A', name: 'Standard-A (Female)' }, - { value: 'fr-FR-Standard-B', name: 'Standard-B (Male)' }, - { value: 'fr-FR-Standard-C', name: 'Standard-C (Female)' }, - { value: 'fr-FR-Standard-D', name: 'Standard-D (Male)' }, - { value: 'fr-FR-Standard-E', name: 'Standard-E (Female)' }, - { value: 'fr-FR-Wavenet-A', name: 'Wavenet-A (Female)' }, - { value: 'fr-FR-Wavenet-B', name: 'Wavenet-B (Male)' }, - { value: 'fr-FR-Wavenet-C', name: 'Wavenet-C (Female)' }, - { value: 'fr-FR-Wavenet-D', name: 'Wavenet-D (Male)' }, - { value: 'fr-FR-Wavenet-E', name: 'Wavenet-E (Female)' }, - ], - }, - { - code: 'de-DE', - name: 'German (Germany)', - voices: [ - { value: 'de-DE-Standard-A', name: 'Standard-A (Female)' }, - { value: 'de-DE-Standard-B', name: 'Standard-B (Male)' }, - { value: 'de-DE-Standard-E', name: 'Standard-E (Male)' }, - { value: 'de-DE-Standard-F', name: 'Standard-F (Female)' }, - { value: 'de-DE-Wavenet-A', name: 'Wavenet-A (Female)' }, - { value: 'de-DE-Wavenet-B', name: 'Wavenet-B (Male)' }, - { value: 'de-DE-Wavenet-C', name: 'Wavenet-C (Female)' }, - { value: 'de-DE-Wavenet-D', name: 'Wavenet-D (Male)' }, - { value: 'de-DE-Wavenet-E', name: 'Wavenet-E (Male)' }, - { value: 'de-DE-Wavenet-F', name: 'Wavenet-F (Female)' }, - ], - }, - { - code: 'el-GR', - name: 'Greek (Greece)', - voices: [ - { value: 'el-GR-Standard-A', name: 'Standard-A (Female)' }, - { value: 'el-GR-Wavenet-A', name: 'Wavenet-A (Female)' }, - ], - }, - { - code: 'hi-IN', - name: 'Hindi (India)', - voices: [ - { value: 'hi-IN-Standard-A', name: 'Standard-A (Female)' }, - { value: 'hi-IN-Standard-B', name: 'Standard-B (Male)' }, - { value: 'hi-IN-Standard-C', name: 'Standard-C (Male)' }, - { value: 'hi-IN-Standard-D', name: 'Standard-D (Female)' }, - { value: 'hi-IN-Wavenet-A', name: 'Wavenet-A (Female)' }, - { value: 'hi-IN-Wavenet-B', name: 'Wavenet-B (Male)' }, - { value: 'hi-IN-Wavenet-C', name: 'Wavenet-C (Male)' }, - { value: 'hi-IN-Wavenet-D', name: 'Wavenet-D (Female)' }, - ], - }, - { - code: 'hu-HU', - name: 'Hungarian (Hungary)', - voices: [ - { value: 'hu-HU-Standard-A', name: 'Standard-A (Female)' }, - { value: 'hu-HU-Wavenet-A', name: 'Wavenet-A (Female)' }, - ], - }, - { - code: 'id-ID', - name: 'Indonesian (Indonesia)', - voices: [ - { value: 'id-ID-Standard-A', name: 'Standard-A (Female)' }, - { value: 'id-ID-Standard-B', name: 'Standard-B (Male)' }, - { value: 'id-ID-Standard-C', name: 'Standard-C (Male)' }, - { value: 'id-ID-Standard-D', name: 'Standard-D (Female)' }, - { value: 'id-ID-Wavenet-A', name: 'Wavenet-A (Female)' }, - { value: 'id-ID-Wavenet-B', name: 'Wavenet-B (Male)' }, - { value: 'id-ID-Wavenet-C', name: 'Wavenet-C (Male)' }, - { value: 'id-ID-Wavenet-D', name: 'Wavenet-D (Female)' }, - ], - }, - { - code: 'it-IT', - name: 'Italian (Italy)', - voices: [ - { value: 'it-IT-Standard-A', name: 'Standard-A (Female)' }, - { value: 'it-IT-Standard-B', name: 'Standard-B (Female)' }, - { value: 'it-IT-Standard-C', name: 'Standard-C (Male)' }, - { value: 'it-IT-Standard-D', name: 'Standard-D (Male)' }, - { value: 'it-IT-Wavenet-A', name: 'Wavenet-A (Female)' }, - { value: 'it-IT-Wavenet-B', name: 'Wavenet-B (Female)' }, - { value: 'it-IT-Wavenet-C', name: 'Wavenet-C (Male)' }, - { value: 'it-IT-Wavenet-D', name: 'Wavenet-D (Male)' }, - ], - }, - { - code: 'ja-JP', - name: 'Japanese (Japan)', - voices: [ - { value: 'ja-JP-Standard-A', name: 'Standard-A (Female)' }, - { value: 'ja-JP-Standard-B', name: 'Standard-B (Female)' }, - { value: 'ja-JP-Standard-C', name: 'Standard-C (Male)' }, - { value: 'ja-JP-Standard-D', name: 'Standard-D (Male)' }, - { value: 'ja-JP-Wavenet-A', name: 'Wavenet-A (Female)' }, - { value: 'ja-JP-Wavenet-B', name: 'Wavenet-B (Female)' }, - { value: 'ja-JP-Wavenet-C', name: 'Wavenet-C (Male)' }, - { value: 'ja-JP-Wavenet-D', name: 'Wavenet-D (Male)' }, - ], - }, - { - code: 'ko-KR', - name: 'Korean (South Korea)', - voices: [ - { value: 'ko-KR-Standard-A', name: 'Standard-A (Female)' }, - { value: 'ko-KR-Standard-B', name: 'Standard-B (Female)' }, - { value: 'ko-KR-Standard-C', name: 'Standard-C (Male)' }, - { value: 'ko-KR-Standard-D', name: 'Standard-D (Male)' }, - { value: 'ko-KR-Wavenet-A', name: 'Wavenet-A (Female)' }, - { value: 'ko-KR-Wavenet-B', name: 'Wavenet-B (Female)' }, - { value: 'ko-KR-Wavenet-C', name: 'Wavenet-C (Male)' }, - { value: 'ko-KR-Wavenet-D', name: 'Wavenet-D (Male)' }, - ], - }, - { - code: 'cmn-CN', - name: 'Mandarin Chinese', - voices: [ - { value: 'cmn-CN-Standard-A', name: 'Standard-A (Female)' }, - { value: 'cmn-CN-Standard-B', name: 'Standard-B (Male)' }, - { value: 'cmn-CN-Standard-C', name: 'Standard-C (Male)' }, - { value: 'cmn-CN-Standard-D', name: 'Standard-D (Female)' }, - { value: 'cmn-CN-Wavenet-A', name: 'Wavenet-A (Female)' }, - { value: 'cmn-CN-Wavenet-B', name: 'Wavenet-B (Male)' }, - { value: 'cmn-CN-Wavenet-C', name: 'Wavenet-C (Male)' }, - { value: 'cmn-CN-Wavenet-D', name: 'Wavenet-D (Female)' }, - ], - }, - { - code: 'cmn-TW', - name: 'Mandarin Chinese (Traditional)', - voices: [ - { value: 'cmn-TW-Standard-A-Alpha', name: 'Standard-A-Alpha (Female)' }, - { value: 'cmn-TW-Standard-B-Alpha', name: 'Standard-B-Alpha (Male)' }, - { value: 'cmn-TW-Standard-C-Alpha', name: 'Standard-C-Alpha (Male)' }, - { value: 'cmn-TW-Wavenet-A-Alpha', name: 'Wavenet-A-Alpha (Female)' }, - { value: 'cmn-TW-Wavenet-B-Alpha', name: 'Wavenet-B-Alpha (Male)' }, - { value: 'cmn-TW-Wavenet-C-Alpha', name: 'Wavenet-C-Alpha (Male)' }, - ], - }, - { - code: 'nb-NO', - name: 'Norwegian (Norway)', - voices: [ - { value: 'nb-NO-Standard-A', name: 'Standard-A (Female)' }, - { value: 'nb-NO-Standard-B', name: 'Standard-B (Male)' }, - { value: 'nb-NO-Standard-C', name: 'Standard-C (Female)' }, - { value: 'nb-NO-Standard-D', name: 'Standard-D (Male)' }, - { value: 'nb-no-Standard-E', name: 'Standard-E (Female)' }, - { value: 'nb-NO-Wavenet-A', name: 'Wavenet-A (Female)' }, - { value: 'nb-NO-Wavenet-B', name: 'Wavenet-B (Male)' }, - { value: 'nb-NO-Wavenet-C', name: 'Wavenet-C (Female)' }, - { value: 'nb-NO-Wavenet-D', name: 'Wavenet-D (Male)' }, - { value: 'nb-no-Wavenet-E', name: 'Wavenet-E (Female)' }, - ], - }, - { - code: 'pl-PL', - name: 'Polish (Poland)', - voices: [ - { value: 'pl-PL-Standard-A', name: 'Standard-A (Female)' }, - { value: 'pl-PL-Standard-B', name: 'Standard-B (Male)' }, - { value: 'pl-PL-Standard-C', name: 'Standard-C (Male)' }, - { value: 'pl-PL-Standard-D', name: 'Standard-D (Female)' }, - { value: 'pl-PL-Standard-E', name: 'Standard-E (Female)' }, - { value: 'pl-PL-Wavenet-A', name: 'Wavenet-A (Female)' }, - { value: 'pl-PL-Wavenet-B', name: 'Wavenet-B (Male)' }, - { value: 'pl-PL-Wavenet-C', name: 'Wavenet-C (Male)' }, - { value: 'pl-PL-Wavenet-D', name: 'Wavenet-D (Female)' }, - { value: 'pl-PL-Wavenet-E', name: 'Wavenet-E (Female)' }, - ], - }, - { - code: 'pt-BR', - name: 'Portuguese (Brazil)', - voices: [ - { value: 'pt-BR-Standard-A', name: 'Standard-A (Female)' }, - { value: 'pt-BR-Wavenet-A', name: 'Wavenet-A (Female)' }, - ], - }, - { - code: 'pt-PT', - name: 'Portuguese (Portugal)', - voices: [ - { value: 'pt-PT-Standard-A', name: 'Standard-A (Female)' }, - { value: 'pt-PT-Standard-B', name: 'Standard-B (Male)' }, - { value: 'pt-PT-Standard-C', name: 'Standard-C (Male)' }, - { value: 'pt-PT-Standard-D', name: 'Standard-D (Female)' }, - { value: 'pt-PT-Wavenet-A', name: 'Wavenet-A (Female)' }, - { value: 'pt-PT-Wavenet-B', name: 'Wavenet-B (Male)' }, - { value: 'pt-PT-Wavenet-C', name: 'Wavenet-C (Male)' }, - { value: 'pt-PT-Wavenet-D', name: 'Wavenet-D (Female)' }, - ], - }, - { - code: 'ru-RU', - name: 'Russian (Russia)', - voices: [ - { value: 'ru-RU-Standard-A', name: 'Standard-A (Female)' }, - { value: 'ru-RU-Standard-B', name: 'Standard-B (Male)' }, - { value: 'ru-RU-Standard-C', name: 'Standard-C (Female)' }, - { value: 'ru-RU-Standard-D', name: 'Standard-D (Male)' }, - { value: 'ru-RU-Standard-E', name: 'Standard-E (Female)' }, - { value: 'ru-RU-Wavenet-A', name: 'Wavenet-A (Female)' }, - { value: 'ru-RU-Wavenet-B', name: 'Wavenet-B (Male)' }, - { value: 'ru-RU-Wavenet-C', name: 'Wavenet-C (Female)' }, - { value: 'ru-RU-Wavenet-D', name: 'Wavenet-D (Male)' }, - { value: 'ru-RU-Wavenet-E', name: 'Wavenet-E (Female)' }, - ], - }, - { - code: 'sk-SK', - name: 'Slovak (Slovakia)', - voices: [ - { value: 'sk-SK-Standard-A', name: 'Standard-A (Female)' }, - { value: 'sk-SK-Wavenet-A', name: 'Wavenet-A (Female)' }, - ], - }, - { - code: 'es-ES', - name: 'Spanish (Spain)', - voices: [ - { value: 'es-ES-Standard-A', name: 'Standard-A (Female)' }, - ], - }, - { - code: 'sv-SE', - name: 'Swedish (Sweden)', - voices: [ - { value: 'sv-SE-Standard-A', name: 'Standard-A (Female)' }, - { value: 'sv-SE-Wavenet-A', name: 'Wavenet-A (Female)' }, - ], - }, - { - code: 'tr-TR', - name: 'Turkish (Turkey)', - voices: [ - { value: 'tr-TR-Standard-A', name: 'Standard-A (Female)' }, - { value: 'tr-TR-Standard-B', name: 'Standard-B (Male)' }, - { value: 'tr-TR-Standard-C', name: 'Standard-C (Female)' }, - { value: 'tr-TR-Standard-D', name: 'Standard-D (Female)' }, - { value: 'tr-TR-Standard-E', name: 'Standard-E (Male)' }, - { value: 'tr-TR-Wavenet-A', name: 'Wavenet-A (Female)' }, - { value: 'tr-TR-Wavenet-B', name: 'Wavenet-B (Male)' }, - { value: 'tr-TR-Wavenet-C', name: 'Wavenet-C (Female)' }, - { value: 'tr-TR-Wavenet-D', name: 'Wavenet-D (Female)' }, - { value: 'tr-TR-Wavenet-E', name: 'Wavenet-E (Male)' }, - ], - }, - { - code: 'uk-UA', - name: 'Ukrainian (Ukraine)', - voices: [ - { value: 'uk-UA-Standard-A', name: 'Standard-A (Female)' }, - { value: 'uk-UA-Wavenet-A', name: 'Wavenet-A (Female)' }, - ], - }, - { - code: 'vi-VN', - name: 'Vietnamese (Vietnam)', - voices: [ - { value: 'vi-VN-Standard-A', name: 'Standard-A (Female)' }, - { value: 'vi-VN-Standard-B', name: 'Standard-B (Male)' }, - { value: 'vi-VN-Standard-C', name: 'Standard-C (Female)' }, - { value: 'vi-VN-Standard-D', name: 'Standard-D (Male)' }, - { value: 'vi-VN-Wavenet-A', name: 'Wavenet-A (Female)' }, - { value: 'vi-VN-Wavenet-B', name: 'Wavenet-B (Male)' }, - { value: 'vi-VN-Wavenet-C', name: 'Wavenet-C (Female)' }, - { value: 'vi-VN-Wavenet-D', name: 'Wavenet-D (Male)' }, - ], - }, -]; - - -export default languages; diff --git a/src/data/SpeechSynthesisLanguageMicrosoft.js b/src/data/SpeechSynthesisLanguageMicrosoft.js deleted file mode 100644 index 19bf8aa..0000000 --- a/src/data/SpeechSynthesisLanguageMicrosoft.js +++ /dev/null @@ -1,4451 +0,0 @@ -const rawData = [ - { - "Name": "Microsoft Server Speech Text to Speech Voice (af-ZA, AdriNeural)", - "DisplayName": "Adri", - "LocalName": "Adri", - "ShortName": "af-ZA-AdriNeural", - "Gender": "Female", - "Locale": "af-ZA", - "LocaleName": "Afrikaans (South Africa)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (af-ZA, WillemNeural)", - "DisplayName": "Willem", - "LocalName": "Willem", - "ShortName": "af-ZA-WillemNeural", - "Gender": "Male", - "Locale": "af-ZA", - "LocaleName": "Afrikaans (South Africa)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (am-ET, AmehaNeural)", - "DisplayName": "Ameha", - "LocalName": "አምሀ", - "ShortName": "am-ET-AmehaNeural", - "Gender": "Male", - "Locale": "am-ET", - "LocaleName": "Amharic (Ethiopia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (am-ET, MekdesNeural)", - "DisplayName": "Mekdes", - "LocalName": "መቅደስ", - "ShortName": "am-ET-MekdesNeural", - "Gender": "Female", - "Locale": "am-ET", - "LocaleName": "Amharic (Ethiopia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ar-AE, FatimaNeural)", - "DisplayName": "Fatima", - "LocalName": "فاطمة", - "ShortName": "ar-AE-FatimaNeural", - "Gender": "Female", - "Locale": "ar-AE", - "LocaleName": "Arabic (United Arab Emirates)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ar-AE, HamdanNeural)", - "DisplayName": "Hamdan", - "LocalName": "حمدان", - "ShortName": "ar-AE-HamdanNeural", - "Gender": "Male", - "Locale": "ar-AE", - "LocaleName": "Arabic (United Arab Emirates)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ar-BH, AliNeural)", - "DisplayName": "Ali", - "LocalName": "علي", - "ShortName": "ar-BH-AliNeural", - "Gender": "Male", - "Locale": "ar-BH", - "LocaleName": "Arabic (Bahrain)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ar-BH, LailaNeural)", - "DisplayName": "Laila", - "LocalName": "ليلى", - "ShortName": "ar-BH-LailaNeural", - "Gender": "Female", - "Locale": "ar-BH", - "LocaleName": "Arabic (Bahrain)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ar-DZ, AminaNeural)", - "DisplayName": "Amina", - "LocalName": "أمينة", - "ShortName": "ar-DZ-AminaNeural", - "Gender": "Female", - "Locale": "ar-DZ", - "LocaleName": "Arabic (Algeria)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ar-DZ, IsmaelNeural)", - "DisplayName": "Ismael", - "LocalName": "إسماعيل", - "ShortName": "ar-DZ-IsmaelNeural", - "Gender": "Male", - "Locale": "ar-DZ", - "LocaleName": "Arabic (Algeria)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ar-EG, SalmaNeural)", - "DisplayName": "Salma", - "LocalName": "سلمى", - "ShortName": "ar-EG-SalmaNeural", - "Gender": "Female", - "Locale": "ar-EG", - "LocaleName": "Arabic (Egypt)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ar-EG, ShakirNeural)", - "DisplayName": "Shakir", - "LocalName": "شاكر", - "ShortName": "ar-EG-ShakirNeural", - "Gender": "Male", - "Locale": "ar-EG", - "LocaleName": "Arabic (Egypt)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ar-IQ, BasselNeural)", - "DisplayName": "Bassel", - "LocalName": "باسل", - "ShortName": "ar-IQ-BasselNeural", - "Gender": "Male", - "Locale": "ar-IQ", - "LocaleName": "Arabic (Iraq)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ar-IQ, RanaNeural)", - "DisplayName": "Rana", - "LocalName": "رنا", - "ShortName": "ar-IQ-RanaNeural", - "Gender": "Female", - "Locale": "ar-IQ", - "LocaleName": "Arabic (Iraq)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ar-JO, SanaNeural)", - "DisplayName": "Sana", - "LocalName": "سناء", - "ShortName": "ar-JO-SanaNeural", - "Gender": "Female", - "Locale": "ar-JO", - "LocaleName": "Arabic (Jordan)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ar-JO, TaimNeural)", - "DisplayName": "Taim", - "LocalName": "تيم", - "ShortName": "ar-JO-TaimNeural", - "Gender": "Male", - "Locale": "ar-JO", - "LocaleName": "Arabic (Jordan)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ar-KW, FahedNeural)", - "DisplayName": "Fahed", - "LocalName": "فهد", - "ShortName": "ar-KW-FahedNeural", - "Gender": "Male", - "Locale": "ar-KW", - "LocaleName": "Arabic (Kuwait)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ar-KW, NouraNeural)", - "DisplayName": "Noura", - "LocalName": "نورا", - "ShortName": "ar-KW-NouraNeural", - "Gender": "Female", - "Locale": "ar-KW", - "LocaleName": "Arabic (Kuwait)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ar-LY, ImanNeural)", - "DisplayName": "Iman", - "LocalName": "إيمان", - "ShortName": "ar-LY-ImanNeural", - "Gender": "Female", - "Locale": "ar-LY", - "LocaleName": "Arabic (Libya)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ar-LY, OmarNeural)", - "DisplayName": "Omar", - "LocalName": "أحمد", - "ShortName": "ar-LY-OmarNeural", - "Gender": "Male", - "Locale": "ar-LY", - "LocaleName": "Arabic (Libya)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ar-MA, JamalNeural)", - "DisplayName": "Jamal", - "LocalName": "جمال", - "ShortName": "ar-MA-JamalNeural", - "Gender": "Male", - "Locale": "ar-MA", - "LocaleName": "Arabic (Morocco)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ar-MA, MounaNeural)", - "DisplayName": "Mouna", - "LocalName": "منى", - "ShortName": "ar-MA-MounaNeural", - "Gender": "Female", - "Locale": "ar-MA", - "LocaleName": "Arabic (Morocco)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ar-QA, AmalNeural)", - "DisplayName": "Amal", - "LocalName": "أمل", - "ShortName": "ar-QA-AmalNeural", - "Gender": "Female", - "Locale": "ar-QA", - "LocaleName": "Arabic (Qatar)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ar-QA, MoazNeural)", - "DisplayName": "Moaz", - "LocalName": "معاذ", - "ShortName": "ar-QA-MoazNeural", - "Gender": "Male", - "Locale": "ar-QA", - "LocaleName": "Arabic (Qatar)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ar-SA, HamedNeural)", - "DisplayName": "Hamed", - "LocalName": "حامد", - "ShortName": "ar-SA-HamedNeural", - "Gender": "Male", - "Locale": "ar-SA", - "LocaleName": "Arabic (Saudi Arabia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ar-SA, ZariyahNeural)", - "DisplayName": "Zariyah", - "LocalName": "زارية", - "ShortName": "ar-SA-ZariyahNeural", - "Gender": "Female", - "Locale": "ar-SA", - "LocaleName": "Arabic (Saudi Arabia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ar-SY, AmanyNeural)", - "DisplayName": "Amany", - "LocalName": "أماني", - "ShortName": "ar-SY-AmanyNeural", - "Gender": "Female", - "Locale": "ar-SY", - "LocaleName": "Arabic (Syria)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ar-SY, LaithNeural)", - "DisplayName": "Laith", - "LocalName": "ليث", - "ShortName": "ar-SY-LaithNeural", - "Gender": "Male", - "Locale": "ar-SY", - "LocaleName": "Arabic (Syria)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ar-TN, HediNeural)", - "DisplayName": "Hedi", - "LocalName": "هادي", - "ShortName": "ar-TN-HediNeural", - "Gender": "Male", - "Locale": "ar-TN", - "LocaleName": "Arabic (Tunisia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ar-TN, ReemNeural)", - "DisplayName": "Reem", - "LocalName": "ريم", - "ShortName": "ar-TN-ReemNeural", - "Gender": "Female", - "Locale": "ar-TN", - "LocaleName": "Arabic (Tunisia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ar-YE, MaryamNeural)", - "DisplayName": "Maryam", - "LocalName": "مريم", - "ShortName": "ar-YE-MaryamNeural", - "Gender": "Female", - "Locale": "ar-YE", - "LocaleName": "Arabic (Yemen)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ar-YE, SalehNeural)", - "DisplayName": "Saleh", - "LocalName": "صالح", - "ShortName": "ar-YE-SalehNeural", - "Gender": "Male", - "Locale": "ar-YE", - "LocaleName": "Arabic (Yemen)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (bg-BG, BorislavNeural)", - "DisplayName": "Borislav", - "LocalName": "Борислав", - "ShortName": "bg-BG-BorislavNeural", - "Gender": "Male", - "Locale": "bg-BG", - "LocaleName": "Bulgarian (Bulgaria)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (bg-BG, KalinaNeural)", - "DisplayName": "Kalina", - "LocalName": "Калина", - "ShortName": "bg-BG-KalinaNeural", - "Gender": "Female", - "Locale": "bg-BG", - "LocaleName": "Bulgarian (Bulgaria)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (bn-BD, NabanitaNeural)", - "DisplayName": "Nabanita", - "LocalName": "নবনীতা", - "ShortName": "bn-BD-NabanitaNeural", - "Gender": "Female", - "Locale": "bn-BD", - "LocaleName": "Bangla (Bangladesh)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (bn-BD, PradeepNeural)", - "DisplayName": "Pradeep", - "LocalName": "প্রদ্বীপ", - "ShortName": "bn-BD-PradeepNeural", - "Gender": "Male", - "Locale": "bn-BD", - "LocaleName": "Bangla (Bangladesh)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (bn-IN, BashkarNeural)", - "DisplayName": "Bashkar", - "LocalName": "ভাস্কর", - "ShortName": "bn-IN-BashkarNeural", - "Gender": "Male", - "Locale": "bn-IN", - "LocaleName": "Bengali (India)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (bn-IN, TanishaaNeural)", - "DisplayName": "Tanishaa", - "LocalName": "তানিশা", - "ShortName": "bn-IN-TanishaaNeural", - "Gender": "Female", - "Locale": "bn-IN", - "LocaleName": "Bengali (India)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ca-ES, JoanaNeural)", - "DisplayName": "Joana", - "LocalName": "Joana", - "ShortName": "ca-ES-JoanaNeural", - "Gender": "Female", - "Locale": "ca-ES", - "LocaleName": "Catalan (Spain)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ca-ES, AlbaNeural)", - "DisplayName": "Alba", - "LocalName": "Alba", - "ShortName": "ca-ES-AlbaNeural", - "Gender": "Female", - "Locale": "ca-ES", - "LocaleName": "Catalan (Spain)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ca-ES, EnricNeural)", - "DisplayName": "Enric", - "LocalName": "Enric", - "ShortName": "ca-ES-EnricNeural", - "Gender": "Male", - "Locale": "ca-ES", - "LocaleName": "Catalan (Spain)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (cs-CZ, AntoninNeural)", - "DisplayName": "Antonin", - "LocalName": "Antonín", - "ShortName": "cs-CZ-AntoninNeural", - "Gender": "Male", - "Locale": "cs-CZ", - "LocaleName": "Czech (Czech)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (cs-CZ, VlastaNeural)", - "DisplayName": "Vlasta", - "LocalName": "Vlasta", - "ShortName": "cs-CZ-VlastaNeural", - "Gender": "Female", - "Locale": "cs-CZ", - "LocaleName": "Czech (Czech)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (cy-GB, AledNeural)", - "DisplayName": "Aled", - "LocalName": "Aled", - "ShortName": "cy-GB-AledNeural", - "Gender": "Male", - "Locale": "cy-GB", - "LocaleName": "Welsh (United Kingdom)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (cy-GB, NiaNeural)", - "DisplayName": "Nia", - "LocalName": "Nia", - "ShortName": "cy-GB-NiaNeural", - "Gender": "Female", - "Locale": "cy-GB", - "LocaleName": "Welsh (United Kingdom)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (da-DK, ChristelNeural)", - "DisplayName": "Christel", - "LocalName": "Christel", - "ShortName": "da-DK-ChristelNeural", - "Gender": "Female", - "Locale": "da-DK", - "LocaleName": "Danish (Denmark)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (da-DK, JeppeNeural)", - "DisplayName": "Jeppe", - "LocalName": "Jeppe", - "ShortName": "da-DK-JeppeNeural", - "Gender": "Male", - "Locale": "da-DK", - "LocaleName": "Danish (Denmark)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (de-AT, IngridNeural)", - "DisplayName": "Ingrid", - "LocalName": "Ingrid", - "ShortName": "de-AT-IngridNeural", - "Gender": "Female", - "Locale": "de-AT", - "LocaleName": "German (Austria)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (de-AT, JonasNeural)", - "DisplayName": "Jonas", - "LocalName": "Jonas", - "ShortName": "de-AT-JonasNeural", - "Gender": "Male", - "Locale": "de-AT", - "LocaleName": "German (Austria)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (de-CH, JanNeural)", - "DisplayName": "Jan", - "LocalName": "Jan", - "ShortName": "de-CH-JanNeural", - "Gender": "Male", - "Locale": "de-CH", - "LocaleName": "German (Switzerland)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (de-CH, LeniNeural)", - "DisplayName": "Leni", - "LocalName": "Leni", - "ShortName": "de-CH-LeniNeural", - "Gender": "Female", - "Locale": "de-CH", - "LocaleName": "German (Switzerland)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (de-DE, KatjaNeural)", - "DisplayName": "Katja", - "LocalName": "Katja", - "ShortName": "de-DE-KatjaNeural", - "Gender": "Female", - "Locale": "de-DE", - "LocaleName": "German (Germany)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (de-DE, ConradNeural)", - "DisplayName": "Conrad", - "LocalName": "Conrad", - "ShortName": "de-DE-ConradNeural", - "Gender": "Male", - "Locale": "de-DE", - "LocaleName": "German (Germany)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (de-DE, AmalaNeural)", - "DisplayName": "Amala", - "LocalName": "Amala", - "ShortName": "de-DE-AmalaNeural", - "Gender": "Female", - "Locale": "de-DE", - "LocaleName": "German (Germany)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (de-DE, BerndNeural)", - "DisplayName": "Bernd", - "LocalName": "Bernd", - "ShortName": "de-DE-BerndNeural", - "Gender": "Male", - "Locale": "de-DE", - "LocaleName": "German (Germany)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (de-DE, ChristophNeural)", - "DisplayName": "Christoph", - "LocalName": "Christoph", - "ShortName": "de-DE-ChristophNeural", - "Gender": "Male", - "Locale": "de-DE", - "LocaleName": "German (Germany)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (de-DE, ElkeNeural)", - "DisplayName": "Elke", - "LocalName": "Elke", - "ShortName": "de-DE-ElkeNeural", - "Gender": "Female", - "Locale": "de-DE", - "LocaleName": "German (Germany)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (de-DE, GiselaNeural)", - "DisplayName": "Gisela", - "LocalName": "Gisela", - "ShortName": "de-DE-GiselaNeural", - "Gender": "Female", - "Locale": "de-DE", - "LocaleName": "German (Germany)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (de-DE, KasperNeural)", - "DisplayName": "Kasper", - "LocalName": "Kasper", - "ShortName": "de-DE-KasperNeural", - "Gender": "Male", - "Locale": "de-DE", - "LocaleName": "German (Germany)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (de-DE, KillianNeural)", - "DisplayName": "Killian", - "LocalName": "Killian", - "ShortName": "de-DE-KillianNeural", - "Gender": "Male", - "Locale": "de-DE", - "LocaleName": "German (Germany)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (de-DE, KlarissaNeural)", - "DisplayName": "Klarissa", - "LocalName": "Klarissa", - "ShortName": "de-DE-KlarissaNeural", - "Gender": "Female", - "Locale": "de-DE", - "LocaleName": "German (Germany)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (de-DE, KlausNeural)", - "DisplayName": "Klaus", - "LocalName": "Klaus", - "ShortName": "de-DE-KlausNeural", - "Gender": "Male", - "Locale": "de-DE", - "LocaleName": "German (Germany)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (de-DE, LouisaNeural)", - "DisplayName": "Louisa", - "LocalName": "Louisa", - "ShortName": "de-DE-LouisaNeural", - "Gender": "Female", - "Locale": "de-DE", - "LocaleName": "German (Germany)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (de-DE, MajaNeural)", - "DisplayName": "Maja", - "LocalName": "Maja", - "ShortName": "de-DE-MajaNeural", - "Gender": "Female", - "Locale": "de-DE", - "LocaleName": "German (Germany)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (de-DE, RalfNeural)", - "DisplayName": "Ralf", - "LocalName": "Ralf", - "ShortName": "de-DE-RalfNeural", - "Gender": "Male", - "Locale": "de-DE", - "LocaleName": "German (Germany)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (de-DE, TanjaNeural)", - "DisplayName": "Tanja", - "LocalName": "Tanja", - "ShortName": "de-DE-TanjaNeural", - "Gender": "Female", - "Locale": "de-DE", - "LocaleName": "German (Germany)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (el-GR, AthinaNeural)", - "DisplayName": "Athina", - "LocalName": "Αθηνά", - "ShortName": "el-GR-AthinaNeural", - "Gender": "Female", - "Locale": "el-GR", - "LocaleName": "Greek (Greece)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (el-GR, NestorasNeural)", - "DisplayName": "Nestoras", - "LocalName": "Νέστορας", - "ShortName": "el-GR-NestorasNeural", - "Gender": "Male", - "Locale": "el-GR", - "LocaleName": "Greek (Greece)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-AU, NatashaNeural)", - "DisplayName": "Natasha", - "LocalName": "Natasha", - "ShortName": "en-AU-NatashaNeural", - "Gender": "Female", - "Locale": "en-AU", - "LocaleName": "English (Australia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-AU, WilliamNeural)", - "DisplayName": "William", - "LocalName": "William", - "ShortName": "en-AU-WilliamNeural", - "Gender": "Male", - "Locale": "en-AU", - "LocaleName": "English (Australia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-CA, ClaraNeural)", - "DisplayName": "Clara", - "LocalName": "Clara", - "ShortName": "en-CA-ClaraNeural", - "Gender": "Female", - "Locale": "en-CA", - "LocaleName": "English (Canada)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-CA, LiamNeural)", - "DisplayName": "Liam", - "LocalName": "Liam", - "ShortName": "en-CA-LiamNeural", - "Gender": "Male", - "Locale": "en-CA", - "LocaleName": "English (Canada)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-GB, LibbyNeural)", - "DisplayName": "Libby", - "LocalName": "Libby", - "ShortName": "en-GB-LibbyNeural", - "Gender": "Female", - "Locale": "en-GB", - "LocaleName": "English (United Kingdom)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-GB, RyanNeural)", - "DisplayName": "Ryan", - "LocalName": "Ryan", - "ShortName": "en-GB-RyanNeural", - "Gender": "Male", - "Locale": "en-GB", - "LocaleName": "English (United Kingdom)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-GB, SoniaNeural)", - "DisplayName": "Sonia", - "LocalName": "Sonia", - "ShortName": "en-GB-SoniaNeural", - "Gender": "Female", - "Locale": "en-GB", - "LocaleName": "English (United Kingdom)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-GB, AbbiNeural)", - "DisplayName": "Abbi", - "LocalName": "Abbi", - "ShortName": "en-GB-AbbiNeural", - "Gender": "Female", - "Locale": "en-GB", - "LocaleName": "English (United Kingdom)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-GB, AlfieNeural)", - "DisplayName": "Alfie", - "LocalName": "Alfie", - "ShortName": "en-GB-AlfieNeural", - "Gender": "Male", - "Locale": "en-GB", - "LocaleName": "English (United Kingdom)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-GB, BellaNeural)", - "DisplayName": "Bella", - "LocalName": "Bella", - "ShortName": "en-GB-BellaNeural", - "Gender": "Female", - "Locale": "en-GB", - "LocaleName": "English (United Kingdom)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-GB, ElliotNeural)", - "DisplayName": "Elliot", - "LocalName": "Elliot", - "ShortName": "en-GB-ElliotNeural", - "Gender": "Male", - "Locale": "en-GB", - "LocaleName": "English (United Kingdom)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-GB, EthanNeural)", - "DisplayName": "Ethan", - "LocalName": "Ethan", - "ShortName": "en-GB-EthanNeural", - "Gender": "Male", - "Locale": "en-GB", - "LocaleName": "English (United Kingdom)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-GB, HollieNeural)", - "DisplayName": "Hollie", - "LocalName": "Hollie", - "ShortName": "en-GB-HollieNeural", - "Gender": "Female", - "Locale": "en-GB", - "LocaleName": "English (United Kingdom)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-GB, MaisieNeural)", - "DisplayName": "Maisie", - "LocalName": "Maisie", - "ShortName": "en-GB-MaisieNeural", - "Gender": "Female", - "Locale": "en-GB", - "LocaleName": "English (United Kingdom)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-GB, NoahNeural)", - "DisplayName": "Noah", - "LocalName": "Noah", - "ShortName": "en-GB-NoahNeural", - "Gender": "Male", - "Locale": "en-GB", - "LocaleName": "English (United Kingdom)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-GB, OliverNeural)", - "DisplayName": "Oliver", - "LocalName": "Oliver", - "ShortName": "en-GB-OliverNeural", - "Gender": "Male", - "Locale": "en-GB", - "LocaleName": "English (United Kingdom)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-GB, OliviaNeural)", - "DisplayName": "Olivia", - "LocalName": "Olivia", - "ShortName": "en-GB-OliviaNeural", - "Gender": "Female", - "Locale": "en-GB", - "LocaleName": "English (United Kingdom)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-GB, ThomasNeural)", - "DisplayName": "Thomas", - "LocalName": "Thomas", - "ShortName": "en-GB-ThomasNeural", - "Gender": "Male", - "Locale": "en-GB", - "LocaleName": "English (United Kingdom)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-GB, MiaNeural)", - "DisplayName": "Mia", - "LocalName": "Mia", - "ShortName": "en-GB-MiaNeural", - "Gender": "Female", - "Locale": "en-GB", - "LocaleName": "English (United Kingdom)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Deprecated" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-HK, SamNeural)", - "DisplayName": "Sam", - "LocalName": "Sam", - "ShortName": "en-HK-SamNeural", - "Gender": "Male", - "Locale": "en-HK", - "LocaleName": "English (Hongkong)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-HK, YanNeural)", - "DisplayName": "Yan", - "LocalName": "Yan", - "ShortName": "en-HK-YanNeural", - "Gender": "Female", - "Locale": "en-HK", - "LocaleName": "English (Hongkong)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-IE, ConnorNeural)", - "DisplayName": "Connor", - "LocalName": "Connor", - "ShortName": "en-IE-ConnorNeural", - "Gender": "Male", - "Locale": "en-IE", - "LocaleName": "English (Ireland)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-IE, EmilyNeural)", - "DisplayName": "Emily", - "LocalName": "Emily", - "ShortName": "en-IE-EmilyNeural", - "Gender": "Female", - "Locale": "en-IE", - "LocaleName": "English (Ireland)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-IN, NeerjaNeural)", - "DisplayName": "Neerja", - "LocalName": "Neerja", - "ShortName": "en-IN-NeerjaNeural", - "Gender": "Female", - "Locale": "en-IN", - "LocaleName": "English (India)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-IN, PrabhatNeural)", - "DisplayName": "Prabhat", - "LocalName": "Prabhat", - "ShortName": "en-IN-PrabhatNeural", - "Gender": "Male", - "Locale": "en-IN", - "LocaleName": "English (India)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-KE, AsiliaNeural)", - "DisplayName": "Asilia", - "LocalName": "Asilia", - "ShortName": "en-KE-AsiliaNeural", - "Gender": "Female", - "Locale": "en-KE", - "LocaleName": "English (Kenya)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-KE, ChilembaNeural)", - "DisplayName": "Chilemba", - "LocalName": "Chilemba", - "ShortName": "en-KE-ChilembaNeural", - "Gender": "Male", - "Locale": "en-KE", - "LocaleName": "English (Kenya)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-NG, AbeoNeural)", - "DisplayName": "Abeo", - "LocalName": "Abeo", - "ShortName": "en-NG-AbeoNeural", - "Gender": "Male", - "Locale": "en-NG", - "LocaleName": "English (Nigeria)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-NG, EzinneNeural)", - "DisplayName": "Ezinne", - "LocalName": "Ezinne", - "ShortName": "en-NG-EzinneNeural", - "Gender": "Female", - "Locale": "en-NG", - "LocaleName": "English (Nigeria)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-NZ, MitchellNeural)", - "DisplayName": "Mitchell", - "LocalName": "Mitchell", - "ShortName": "en-NZ-MitchellNeural", - "Gender": "Male", - "Locale": "en-NZ", - "LocaleName": "English (New Zealand)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-NZ, MollyNeural)", - "DisplayName": "Molly", - "LocalName": "Molly", - "ShortName": "en-NZ-MollyNeural", - "Gender": "Female", - "Locale": "en-NZ", - "LocaleName": "English (New Zealand)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-PH, JamesNeural)", - "DisplayName": "James", - "LocalName": "James", - "ShortName": "en-PH-JamesNeural", - "Gender": "Male", - "Locale": "en-PH", - "LocaleName": "English (Philippines)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-PH, RosaNeural)", - "DisplayName": "Rosa", - "LocalName": "Rosa", - "ShortName": "en-PH-RosaNeural", - "Gender": "Female", - "Locale": "en-PH", - "LocaleName": "English (Philippines)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-SG, LunaNeural)", - "DisplayName": "Luna", - "LocalName": "Luna", - "ShortName": "en-SG-LunaNeural", - "Gender": "Female", - "Locale": "en-SG", - "LocaleName": "English (Singapore)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-SG, WayneNeural)", - "DisplayName": "Wayne", - "LocalName": "Wayne", - "ShortName": "en-SG-WayneNeural", - "Gender": "Male", - "Locale": "en-SG", - "LocaleName": "English (Singapore)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-TZ, ElimuNeural)", - "DisplayName": "Elimu", - "LocalName": "Elimu", - "ShortName": "en-TZ-ElimuNeural", - "Gender": "Male", - "Locale": "en-TZ", - "LocaleName": "English (Tanzania)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-TZ, ImaniNeural)", - "DisplayName": "Imani", - "LocalName": "Imani", - "ShortName": "en-TZ-ImaniNeural", - "Gender": "Female", - "Locale": "en-TZ", - "LocaleName": "English (Tanzania)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-US, JennyNeural)", - "DisplayName": "Jenny", - "LocalName": "Jenny", - "ShortName": "en-US-JennyNeural", - "Gender": "Female", - "Locale": "en-US", - "LocaleName": "English (United States)", - "StyleList": [ - "assistant", - "chat", - "customerservice", - "newscast", - "angry", - "cheerful", - "sad", - "excited", - "friendly", - "terrified", - "shouting", - "unfriendly", - "whispering", - "hopeful" - ], - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-US, JennyMultilingualNeural)", - "DisplayName": "Jenny Multilingual", - "LocalName": "Jenny Multilingual", - "ShortName": "en-US-JennyMultilingualNeural", - "Gender": "Female", - "Locale": "en-US", - "LocaleName": "English (United States)", - "SecondaryLocaleList": [ - "de-DE", - "en-AU", - "en-CA", - "en-GB", - "es-ES", - "es-MX", - "fr-CA", - "fr-FR", - "it-IT", - "ja-JP", - "ko-KR", - "pt-BR", - "zh-CN" - ], - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-US, GuyNeural)", - "DisplayName": "Guy", - "LocalName": "Guy", - "ShortName": "en-US-GuyNeural", - "Gender": "Male", - "Locale": "en-US", - "LocaleName": "English (United States)", - "StyleList": [ - "newscast", - "angry", - "cheerful", - "sad", - "excited", - "friendly", - "terrified", - "shouting", - "unfriendly", - "whispering", - "hopeful" - ], - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA", - "WordPerMinute": { - "default": "215", - "newscast": "210" - } - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-US, AmberNeural)", - "DisplayName": "Amber", - "LocalName": "Amber", - "ShortName": "en-US-AmberNeural", - "Gender": "Female", - "Locale": "en-US", - "LocaleName": "English (United States)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-US, AnaNeural)", - "DisplayName": "Ana", - "LocalName": "Ana", - "ShortName": "en-US-AnaNeural", - "Gender": "Female", - "Locale": "en-US", - "LocaleName": "English (United States)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-US, AriaNeural)", - "DisplayName": "Aria", - "LocalName": "Aria", - "ShortName": "en-US-AriaNeural", - "Gender": "Female", - "Locale": "en-US", - "LocaleName": "English (United States)", - "StyleList": [ - "chat", - "customerservice", - "narration-professional", - "newscast-casual", - "newscast-formal", - "cheerful", - "empathetic", - "angry", - "sad", - "excited", - "friendly", - "terrified", - "shouting", - "unfriendly", - "whispering", - "hopeful" - ], - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-US, AshleyNeural)", - "DisplayName": "Ashley", - "LocalName": "Ashley", - "ShortName": "en-US-AshleyNeural", - "Gender": "Female", - "Locale": "en-US", - "LocaleName": "English (United States)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA", - "WordPerMinute": { - "default": "149" - } - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-US, BrandonNeural)", - "DisplayName": "Brandon", - "LocalName": "Brandon", - "ShortName": "en-US-BrandonNeural", - "Gender": "Male", - "Locale": "en-US", - "LocaleName": "English (United States)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-US, ChristopherNeural)", - "DisplayName": "Christopher", - "LocalName": "Christopher", - "ShortName": "en-US-ChristopherNeural", - "Gender": "Male", - "Locale": "en-US", - "LocaleName": "English (United States)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-US, CoraNeural)", - "DisplayName": "Cora", - "LocalName": "Cora", - "ShortName": "en-US-CoraNeural", - "Gender": "Female", - "Locale": "en-US", - "LocaleName": "English (United States)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-US, ElizabethNeural)", - "DisplayName": "Elizabeth", - "LocalName": "Elizabeth", - "ShortName": "en-US-ElizabethNeural", - "Gender": "Female", - "Locale": "en-US", - "LocaleName": "English (United States)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-US, EricNeural)", - "DisplayName": "Eric", - "LocalName": "Eric", - "ShortName": "en-US-EricNeural", - "Gender": "Male", - "Locale": "en-US", - "LocaleName": "English (United States)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-US, JacobNeural)", - "DisplayName": "Jacob", - "LocalName": "Jacob", - "ShortName": "en-US-JacobNeural", - "Gender": "Male", - "Locale": "en-US", - "LocaleName": "English (United States)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-US, MichelleNeural)", - "DisplayName": "Michelle", - "LocalName": "Michelle", - "ShortName": "en-US-MichelleNeural", - "Gender": "Female", - "Locale": "en-US", - "LocaleName": "English (United States)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-US, MonicaNeural)", - "DisplayName": "Monica", - "LocalName": "Monica", - "ShortName": "en-US-MonicaNeural", - "Gender": "Female", - "Locale": "en-US", - "LocaleName": "English (United States)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-US, SaraNeural)", - "DisplayName": "Sara", - "LocalName": "Sara", - "ShortName": "en-US-SaraNeural", - "Gender": "Female", - "Locale": "en-US", - "LocaleName": "English (United States)", - "StyleList": [ - "angry", - "cheerful", - "excited", - "friendly", - "hopeful", - "sad", - "shouting", - "terrified", - "unfriendly", - "whispering" - ], - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-US, DavisNeural)", - "DisplayName": "Davis", - "LocalName": "Davis", - "ShortName": "en-US-DavisNeural", - "Gender": "Male", - "Locale": "en-US", - "LocaleName": "English (United States)", - "StyleList": [ - "chat", - "angry", - "cheerful", - "excited", - "friendly", - "hopeful", - "sad", - "shouting", - "terrified", - "unfriendly", - "whispering" - ], - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-US, JaneNeural)", - "DisplayName": "Jane", - "LocalName": "Jane", - "ShortName": "en-US-JaneNeural", - "Gender": "Female", - "Locale": "en-US", - "LocaleName": "English (United States)", - "StyleList": [ - "angry", - "cheerful", - "excited", - "friendly", - "hopeful", - "sad", - "shouting", - "terrified", - "unfriendly", - "whispering" - ], - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-US, JasonNeural)", - "DisplayName": "Jason", - "LocalName": "Jason", - "ShortName": "en-US-JasonNeural", - "Gender": "Male", - "Locale": "en-US", - "LocaleName": "English (United States)", - "StyleList": [ - "angry", - "cheerful", - "excited", - "friendly", - "hopeful", - "sad", - "shouting", - "terrified", - "unfriendly", - "whispering" - ], - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-US, NancyNeural)", - "DisplayName": "Nancy", - "LocalName": "Nancy", - "ShortName": "en-US-NancyNeural", - "Gender": "Female", - "Locale": "en-US", - "LocaleName": "English (United States)", - "StyleList": [ - "angry", - "cheerful", - "excited", - "friendly", - "hopeful", - "sad", - "shouting", - "terrified", - "unfriendly", - "whispering" - ], - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-US, TonyNeural)", - "DisplayName": "Tony", - "LocalName": "Tony", - "ShortName": "en-US-TonyNeural", - "Gender": "Male", - "Locale": "en-US", - "LocaleName": "English (United States)", - "StyleList": [ - "angry", - "cheerful", - "excited", - "friendly", - "hopeful", - "sad", - "shouting", - "terrified", - "unfriendly", - "whispering" - ], - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-ZA, LeahNeural)", - "DisplayName": "Leah", - "LocalName": "Leah", - "ShortName": "en-ZA-LeahNeural", - "Gender": "Female", - "Locale": "en-ZA", - "LocaleName": "English (South Africa)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (en-ZA, LukeNeural)", - "DisplayName": "Luke", - "LocalName": "Luke", - "ShortName": "en-ZA-LukeNeural", - "Gender": "Male", - "Locale": "en-ZA", - "LocaleName": "English (South Africa)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-AR, ElenaNeural)", - "DisplayName": "Elena", - "LocalName": "Elena", - "ShortName": "es-AR-ElenaNeural", - "Gender": "Female", - "Locale": "es-AR", - "LocaleName": "Spanish (Argentina)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-AR, TomasNeural)", - "DisplayName": "Tomas", - "LocalName": "Tomas", - "ShortName": "es-AR-TomasNeural", - "Gender": "Male", - "Locale": "es-AR", - "LocaleName": "Spanish (Argentina)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-BO, MarceloNeural)", - "DisplayName": "Marcelo", - "LocalName": "Marcelo", - "ShortName": "es-BO-MarceloNeural", - "Gender": "Male", - "Locale": "es-BO", - "LocaleName": "Spanish (Bolivia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-BO, SofiaNeural)", - "DisplayName": "Sofia", - "LocalName": "Sofia", - "ShortName": "es-BO-SofiaNeural", - "Gender": "Female", - "Locale": "es-BO", - "LocaleName": "Spanish (Bolivia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-CL, CatalinaNeural)", - "DisplayName": "Catalina", - "LocalName": "Catalina", - "ShortName": "es-CL-CatalinaNeural", - "Gender": "Female", - "Locale": "es-CL", - "LocaleName": "Spanish (Chile)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-CL, LorenzoNeural)", - "DisplayName": "Lorenzo", - "LocalName": "Lorenzo", - "ShortName": "es-CL-LorenzoNeural", - "Gender": "Male", - "Locale": "es-CL", - "LocaleName": "Spanish (Chile)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-CO, GonzaloNeural)", - "DisplayName": "Gonzalo", - "LocalName": "Gonzalo", - "ShortName": "es-CO-GonzaloNeural", - "Gender": "Male", - "Locale": "es-CO", - "LocaleName": "Spanish (Colombia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-CO, SalomeNeural)", - "DisplayName": "Salome", - "LocalName": "Salome", - "ShortName": "es-CO-SalomeNeural", - "Gender": "Female", - "Locale": "es-CO", - "LocaleName": "Spanish (Colombia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-CR, JuanNeural)", - "DisplayName": "Juan", - "LocalName": "Juan", - "ShortName": "es-CR-JuanNeural", - "Gender": "Male", - "Locale": "es-CR", - "LocaleName": "Spanish (Costa Rica)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-CR, MariaNeural)", - "DisplayName": "Maria", - "LocalName": "María", - "ShortName": "es-CR-MariaNeural", - "Gender": "Female", - "Locale": "es-CR", - "LocaleName": "Spanish (Costa Rica)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-CU, BelkysNeural)", - "DisplayName": "Belkys", - "LocalName": "Belkys", - "ShortName": "es-CU-BelkysNeural", - "Gender": "Female", - "Locale": "es-CU", - "LocaleName": "Spanish (Cuba)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-CU, ManuelNeural)", - "DisplayName": "Manuel", - "LocalName": "Manuel", - "ShortName": "es-CU-ManuelNeural", - "Gender": "Male", - "Locale": "es-CU", - "LocaleName": "Spanish (Cuba)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-DO, EmilioNeural)", - "DisplayName": "Emilio", - "LocalName": "Emilio", - "ShortName": "es-DO-EmilioNeural", - "Gender": "Male", - "Locale": "es-DO", - "LocaleName": "Spanish (Dominican Republic)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-DO, RamonaNeural)", - "DisplayName": "Ramona", - "LocalName": "Ramona", - "ShortName": "es-DO-RamonaNeural", - "Gender": "Female", - "Locale": "es-DO", - "LocaleName": "Spanish (Dominican Republic)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-EC, AndreaNeural)", - "DisplayName": "Andrea", - "LocalName": "Andrea", - "ShortName": "es-EC-AndreaNeural", - "Gender": "Female", - "Locale": "es-EC", - "LocaleName": "Spanish (Ecuador)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-EC, LuisNeural)", - "DisplayName": "Luis", - "LocalName": "Luis", - "ShortName": "es-EC-LuisNeural", - "Gender": "Male", - "Locale": "es-EC", - "LocaleName": "Spanish (Ecuador)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-ES, AlvaroNeural)", - "DisplayName": "Alvaro", - "LocalName": "Álvaro", - "ShortName": "es-ES-AlvaroNeural", - "Gender": "Male", - "Locale": "es-ES", - "LocaleName": "Spanish (Spain)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-ES, ElviraNeural)", - "DisplayName": "Elvira", - "LocalName": "Elvira", - "ShortName": "es-ES-ElviraNeural", - "Gender": "Female", - "Locale": "es-ES", - "LocaleName": "Spanish (Spain)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-GQ, JavierNeural)", - "DisplayName": "Javier", - "LocalName": "Javier", - "ShortName": "es-GQ-JavierNeural", - "Gender": "Male", - "Locale": "es-GQ", - "LocaleName": "Spanish (Equatorial Guinea)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-GQ, TeresaNeural)", - "DisplayName": "Teresa", - "LocalName": "Teresa", - "ShortName": "es-GQ-TeresaNeural", - "Gender": "Female", - "Locale": "es-GQ", - "LocaleName": "Spanish (Equatorial Guinea)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-GT, AndresNeural)", - "DisplayName": "Andres", - "LocalName": "Andrés", - "ShortName": "es-GT-AndresNeural", - "Gender": "Male", - "Locale": "es-GT", - "LocaleName": "Spanish (Guatemala)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-GT, MartaNeural)", - "DisplayName": "Marta", - "LocalName": "Marta", - "ShortName": "es-GT-MartaNeural", - "Gender": "Female", - "Locale": "es-GT", - "LocaleName": "Spanish (Guatemala)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-HN, CarlosNeural)", - "DisplayName": "Carlos", - "LocalName": "Carlos", - "ShortName": "es-HN-CarlosNeural", - "Gender": "Male", - "Locale": "es-HN", - "LocaleName": "Spanish (Honduras)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-HN, KarlaNeural)", - "DisplayName": "Karla", - "LocalName": "Karla", - "ShortName": "es-HN-KarlaNeural", - "Gender": "Female", - "Locale": "es-HN", - "LocaleName": "Spanish (Honduras)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-MX, DaliaNeural)", - "DisplayName": "Dalia", - "LocalName": "Dalia", - "ShortName": "es-MX-DaliaNeural", - "Gender": "Female", - "Locale": "es-MX", - "LocaleName": "Spanish (Mexico)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-MX, JorgeNeural)", - "DisplayName": "Jorge", - "LocalName": "Jorge", - "ShortName": "es-MX-JorgeNeural", - "Gender": "Male", - "Locale": "es-MX", - "LocaleName": "Spanish (Mexico)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-NI, FedericoNeural)", - "DisplayName": "Federico", - "LocalName": "Federico", - "ShortName": "es-NI-FedericoNeural", - "Gender": "Male", - "Locale": "es-NI", - "LocaleName": "Spanish (Nicaragua)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-NI, YolandaNeural)", - "DisplayName": "Yolanda", - "LocalName": "Yolanda", - "ShortName": "es-NI-YolandaNeural", - "Gender": "Female", - "Locale": "es-NI", - "LocaleName": "Spanish (Nicaragua)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-PA, MargaritaNeural)", - "DisplayName": "Margarita", - "LocalName": "Margarita", - "ShortName": "es-PA-MargaritaNeural", - "Gender": "Female", - "Locale": "es-PA", - "LocaleName": "Spanish (Panama)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-PA, RobertoNeural)", - "DisplayName": "Roberto", - "LocalName": "Roberto", - "ShortName": "es-PA-RobertoNeural", - "Gender": "Male", - "Locale": "es-PA", - "LocaleName": "Spanish (Panama)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-PE, AlexNeural)", - "DisplayName": "Alex", - "LocalName": "Alex", - "ShortName": "es-PE-AlexNeural", - "Gender": "Male", - "Locale": "es-PE", - "LocaleName": "Spanish (Peru)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-PE, CamilaNeural)", - "DisplayName": "Camila", - "LocalName": "Camila", - "ShortName": "es-PE-CamilaNeural", - "Gender": "Female", - "Locale": "es-PE", - "LocaleName": "Spanish (Peru)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-PR, KarinaNeural)", - "DisplayName": "Karina", - "LocalName": "Karina", - "ShortName": "es-PR-KarinaNeural", - "Gender": "Female", - "Locale": "es-PR", - "LocaleName": "Spanish (Puerto Rico)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-PR, VictorNeural)", - "DisplayName": "Victor", - "LocalName": "Víctor", - "ShortName": "es-PR-VictorNeural", - "Gender": "Male", - "Locale": "es-PR", - "LocaleName": "Spanish (Puerto Rico)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-PY, MarioNeural)", - "DisplayName": "Mario", - "LocalName": "Mario", - "ShortName": "es-PY-MarioNeural", - "Gender": "Male", - "Locale": "es-PY", - "LocaleName": "Spanish (Paraguay)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-PY, TaniaNeural)", - "DisplayName": "Tania", - "LocalName": "Tania", - "ShortName": "es-PY-TaniaNeural", - "Gender": "Female", - "Locale": "es-PY", - "LocaleName": "Spanish (Paraguay)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-SV, LorenaNeural)", - "DisplayName": "Lorena", - "LocalName": "Lorena", - "ShortName": "es-SV-LorenaNeural", - "Gender": "Female", - "Locale": "es-SV", - "LocaleName": "Spanish (El Salvador)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-SV, RodrigoNeural)", - "DisplayName": "Rodrigo", - "LocalName": "Rodrigo", - "ShortName": "es-SV-RodrigoNeural", - "Gender": "Male", - "Locale": "es-SV", - "LocaleName": "Spanish (El Salvador)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-US, AlonsoNeural)", - "DisplayName": "Alonso", - "LocalName": "Alonso", - "ShortName": "es-US-AlonsoNeural", - "Gender": "Male", - "Locale": "es-US", - "LocaleName": "Spanish (United States)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-US, PalomaNeural)", - "DisplayName": "Paloma", - "LocalName": "Paloma", - "ShortName": "es-US-PalomaNeural", - "Gender": "Female", - "Locale": "es-US", - "LocaleName": "Spanish (United States)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-UY, MateoNeural)", - "DisplayName": "Mateo", - "LocalName": "Mateo", - "ShortName": "es-UY-MateoNeural", - "Gender": "Male", - "Locale": "es-UY", - "LocaleName": "Spanish (Uruguay)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-UY, ValentinaNeural)", - "DisplayName": "Valentina", - "LocalName": "Valentina", - "ShortName": "es-UY-ValentinaNeural", - "Gender": "Female", - "Locale": "es-UY", - "LocaleName": "Spanish (Uruguay)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-VE, PaolaNeural)", - "DisplayName": "Paola", - "LocalName": "Paola", - "ShortName": "es-VE-PaolaNeural", - "Gender": "Female", - "Locale": "es-VE", - "LocaleName": "Spanish (Venezuela)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (es-VE, SebastianNeural)", - "DisplayName": "Sebastian", - "LocalName": "Sebastián", - "ShortName": "es-VE-SebastianNeural", - "Gender": "Male", - "Locale": "es-VE", - "LocaleName": "Spanish (Venezuela)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (et-EE, AnuNeural)", - "DisplayName": "Anu", - "LocalName": "Anu", - "ShortName": "et-EE-AnuNeural", - "Gender": "Female", - "Locale": "et-EE", - "LocaleName": "Estonian (Estonia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (et-EE, KertNeural)", - "DisplayName": "Kert", - "LocalName": "Kert", - "ShortName": "et-EE-KertNeural", - "Gender": "Male", - "Locale": "et-EE", - "LocaleName": "Estonian (Estonia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (fa-IR, DilaraNeural)", - "DisplayName": "Dilara", - "LocalName": "دلارا", - "ShortName": "fa-IR-DilaraNeural", - "Gender": "Female", - "Locale": "fa-IR", - "LocaleName": "Persian (Iran)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (fa-IR, FaridNeural)", - "DisplayName": "Farid", - "LocalName": "فرید", - "ShortName": "fa-IR-FaridNeural", - "Gender": "Male", - "Locale": "fa-IR", - "LocaleName": "Persian (Iran)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (fi-FI, SelmaNeural)", - "DisplayName": "Selma", - "LocalName": "Selma", - "ShortName": "fi-FI-SelmaNeural", - "Gender": "Female", - "Locale": "fi-FI", - "LocaleName": "Finnish (Finland)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (fi-FI, HarriNeural)", - "DisplayName": "Harri", - "LocalName": "Harri", - "ShortName": "fi-FI-HarriNeural", - "Gender": "Male", - "Locale": "fi-FI", - "LocaleName": "Finnish (Finland)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (fi-FI, NooraNeural)", - "DisplayName": "Noora", - "LocalName": "Noora", - "ShortName": "fi-FI-NooraNeural", - "Gender": "Female", - "Locale": "fi-FI", - "LocaleName": "Finnish (Finland)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (fil-PH, AngeloNeural)", - "DisplayName": "Angelo", - "LocalName": "Angelo", - "ShortName": "fil-PH-AngeloNeural", - "Gender": "Male", - "Locale": "fil-PH", - "LocaleName": "Filipino (Philippines)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (fil-PH, BlessicaNeural)", - "DisplayName": "Blessica", - "LocalName": "Blessica", - "ShortName": "fil-PH-BlessicaNeural", - "Gender": "Female", - "Locale": "fil-PH", - "LocaleName": "Filipino (Philippines)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (fr-BE, CharlineNeural)", - "DisplayName": "Charline", - "LocalName": "Charline", - "ShortName": "fr-BE-CharlineNeural", - "Gender": "Female", - "Locale": "fr-BE", - "LocaleName": "French (Belgium)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (fr-BE, GerardNeural)", - "DisplayName": "Gerard", - "LocalName": "Gerard", - "ShortName": "fr-BE-GerardNeural", - "Gender": "Male", - "Locale": "fr-BE", - "LocaleName": "French (Belgium)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (fr-CA, SylvieNeural)", - "DisplayName": "Sylvie", - "LocalName": "Sylvie", - "ShortName": "fr-CA-SylvieNeural", - "Gender": "Female", - "Locale": "fr-CA", - "LocaleName": "French (Canada)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (fr-CA, AntoineNeural)", - "DisplayName": "Antoine", - "LocalName": "Antoine", - "ShortName": "fr-CA-AntoineNeural", - "Gender": "Male", - "Locale": "fr-CA", - "LocaleName": "French (Canada)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (fr-CA, JeanNeural)", - "DisplayName": "Jean", - "LocalName": "Jean", - "ShortName": "fr-CA-JeanNeural", - "Gender": "Male", - "Locale": "fr-CA", - "LocaleName": "French (Canada)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (fr-CH, ArianeNeural)", - "DisplayName": "Ariane", - "LocalName": "Ariane", - "ShortName": "fr-CH-ArianeNeural", - "Gender": "Female", - "Locale": "fr-CH", - "LocaleName": "French (Switzerland)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (fr-CH, FabriceNeural)", - "DisplayName": "Fabrice", - "LocalName": "Fabrice", - "ShortName": "fr-CH-FabriceNeural", - "Gender": "Male", - "Locale": "fr-CH", - "LocaleName": "French (Switzerland)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (fr-FR, DeniseNeural)", - "DisplayName": "Denise", - "LocalName": "Denise", - "ShortName": "fr-FR-DeniseNeural", - "Gender": "Female", - "Locale": "fr-FR", - "LocaleName": "French (France)", - "StyleList": [ - "cheerful", - "sad" - ], - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (fr-FR, HenriNeural)", - "DisplayName": "Henri", - "LocalName": "Henri", - "ShortName": "fr-FR-HenriNeural", - "Gender": "Male", - "Locale": "fr-FR", - "LocaleName": "French (France)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (fr-FR, AlainNeural)", - "DisplayName": "Alain", - "LocalName": "Alain", - "ShortName": "fr-FR-AlainNeural", - "Gender": "Male", - "Locale": "fr-FR", - "LocaleName": "French (France)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (fr-FR, BrigitteNeural)", - "DisplayName": "Brigitte", - "LocalName": "Brigitte", - "ShortName": "fr-FR-BrigitteNeural", - "Gender": "Female", - "Locale": "fr-FR", - "LocaleName": "French (France)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (fr-FR, CelesteNeural)", - "DisplayName": "Celeste", - "LocalName": "Celeste", - "ShortName": "fr-FR-CelesteNeural", - "Gender": "Female", - "Locale": "fr-FR", - "LocaleName": "French (France)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (fr-FR, ClaudeNeural)", - "DisplayName": "Claude", - "LocalName": "Claude", - "ShortName": "fr-FR-ClaudeNeural", - "Gender": "Male", - "Locale": "fr-FR", - "LocaleName": "French (France)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (fr-FR, CoralieNeural)", - "DisplayName": "Coralie", - "LocalName": "Coralie", - "ShortName": "fr-FR-CoralieNeural", - "Gender": "Female", - "Locale": "fr-FR", - "LocaleName": "French (France)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (fr-FR, EloiseNeural)", - "DisplayName": "Eloise", - "LocalName": "Eloise", - "ShortName": "fr-FR-EloiseNeural", - "Gender": "Female", - "Locale": "fr-FR", - "LocaleName": "French (France)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (fr-FR, JacquelineNeural)", - "DisplayName": "Jacqueline", - "LocalName": "Jacqueline", - "ShortName": "fr-FR-JacquelineNeural", - "Gender": "Female", - "Locale": "fr-FR", - "LocaleName": "French (France)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (fr-FR, JeromeNeural)", - "DisplayName": "Jerome", - "LocalName": "Jerome", - "ShortName": "fr-FR-JeromeNeural", - "Gender": "Male", - "Locale": "fr-FR", - "LocaleName": "French (France)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (fr-FR, JosephineNeural)", - "DisplayName": "Josephine", - "LocalName": "Josephine", - "ShortName": "fr-FR-JosephineNeural", - "Gender": "Female", - "Locale": "fr-FR", - "LocaleName": "French (France)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (fr-FR, MauriceNeural)", - "DisplayName": "Maurice", - "LocalName": "Maurice", - "ShortName": "fr-FR-MauriceNeural", - "Gender": "Male", - "Locale": "fr-FR", - "LocaleName": "French (France)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (fr-FR, YvesNeural)", - "DisplayName": "Yves", - "LocalName": "Yves", - "ShortName": "fr-FR-YvesNeural", - "Gender": "Male", - "Locale": "fr-FR", - "LocaleName": "French (France)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (fr-FR, YvetteNeural)", - "DisplayName": "Yvette", - "LocalName": "Yvette", - "ShortName": "fr-FR-YvetteNeural", - "Gender": "Female", - "Locale": "fr-FR", - "LocaleName": "French (France)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ga-IE, ColmNeural)", - "DisplayName": "Colm", - "LocalName": "Colm", - "ShortName": "ga-IE-ColmNeural", - "Gender": "Male", - "Locale": "ga-IE", - "LocaleName": "Irish (Ireland)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ga-IE, OrlaNeural)", - "DisplayName": "Orla", - "LocalName": "Orla", - "ShortName": "ga-IE-OrlaNeural", - "Gender": "Female", - "Locale": "ga-IE", - "LocaleName": "Irish (Ireland)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (gl-ES, RoiNeural)", - "DisplayName": "Roi", - "LocalName": "Roi", - "ShortName": "gl-ES-RoiNeural", - "Gender": "Male", - "Locale": "gl-ES", - "LocaleName": "Galician (Spain)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (gl-ES, SabelaNeural)", - "DisplayName": "Sabela", - "LocalName": "Sabela", - "ShortName": "gl-ES-SabelaNeural", - "Gender": "Female", - "Locale": "gl-ES", - "LocaleName": "Galician (Spain)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (gu-IN, DhwaniNeural)", - "DisplayName": "Dhwani", - "LocalName": "ધ્વની", - "ShortName": "gu-IN-DhwaniNeural", - "Gender": "Female", - "Locale": "gu-IN", - "LocaleName": "Gujarati (India)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (gu-IN, NiranjanNeural)", - "DisplayName": "Niranjan", - "LocalName": "નિરંજન", - "ShortName": "gu-IN-NiranjanNeural", - "Gender": "Male", - "Locale": "gu-IN", - "LocaleName": "Gujarati (India)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (he-IL, AvriNeural)", - "DisplayName": "Avri", - "LocalName": "אברי", - "ShortName": "he-IL-AvriNeural", - "Gender": "Male", - "Locale": "he-IL", - "LocaleName": "Hebrew (Israel)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (he-IL, HilaNeural)", - "DisplayName": "Hila", - "LocalName": "הילה", - "ShortName": "he-IL-HilaNeural", - "Gender": "Female", - "Locale": "he-IL", - "LocaleName": "Hebrew (Israel)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (hi-IN, MadhurNeural)", - "DisplayName": "Madhur", - "LocalName": "मधुर", - "ShortName": "hi-IN-MadhurNeural", - "Gender": "Male", - "Locale": "hi-IN", - "LocaleName": "Hindi (India)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (hi-IN, SwaraNeural)", - "DisplayName": "Swara", - "LocalName": "स्वरा", - "ShortName": "hi-IN-SwaraNeural", - "Gender": "Female", - "Locale": "hi-IN", - "LocaleName": "Hindi (India)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (hr-HR, GabrijelaNeural)", - "DisplayName": "Gabrijela", - "LocalName": "Gabrijela", - "ShortName": "hr-HR-GabrijelaNeural", - "Gender": "Female", - "Locale": "hr-HR", - "LocaleName": "Croatian (Croatia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (hr-HR, SreckoNeural)", - "DisplayName": "Srecko", - "LocalName": "Srećko", - "ShortName": "hr-HR-SreckoNeural", - "Gender": "Male", - "Locale": "hr-HR", - "LocaleName": "Croatian (Croatia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (hu-HU, NoemiNeural)", - "DisplayName": "Noemi", - "LocalName": "Noémi", - "ShortName": "hu-HU-NoemiNeural", - "Gender": "Female", - "Locale": "hu-HU", - "LocaleName": "Hungarian (Hungary)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (hu-HU, TamasNeural)", - "DisplayName": "Tamas", - "LocalName": "Tamás", - "ShortName": "hu-HU-TamasNeural", - "Gender": "Male", - "Locale": "hu-HU", - "LocaleName": "Hungarian (Hungary)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (id-ID, ArdiNeural)", - "DisplayName": "Ardi", - "LocalName": "Ardi", - "ShortName": "id-ID-ArdiNeural", - "Gender": "Male", - "Locale": "id-ID", - "LocaleName": "Indonesian (Indonesia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (id-ID, GadisNeural)", - "DisplayName": "Gadis", - "LocalName": "Gadis", - "ShortName": "id-ID-GadisNeural", - "Gender": "Female", - "Locale": "id-ID", - "LocaleName": "Indonesian (Indonesia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (is-IS, GudrunNeural)", - "DisplayName": "Gudrun", - "LocalName": "Guðrún", - "ShortName": "is-IS-GudrunNeural", - "Gender": "Female", - "Locale": "is-IS", - "LocaleName": "Icelandic (Iceland)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (is-IS, GunnarNeural)", - "DisplayName": "Gunnar", - "LocalName": "Gunnar", - "ShortName": "is-IS-GunnarNeural", - "Gender": "Male", - "Locale": "is-IS", - "LocaleName": "Icelandic (Iceland)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (it-IT, IsabellaNeural)", - "DisplayName": "Isabella", - "LocalName": "Isabella", - "ShortName": "it-IT-IsabellaNeural", - "Gender": "Female", - "Locale": "it-IT", - "LocaleName": "Italian (Italy)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (it-IT, DiegoNeural)", - "DisplayName": "Diego", - "LocalName": "Diego", - "ShortName": "it-IT-DiegoNeural", - "Gender": "Male", - "Locale": "it-IT", - "LocaleName": "Italian (Italy)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (it-IT, ElsaNeural)", - "DisplayName": "Elsa", - "LocalName": "Elsa", - "ShortName": "it-IT-ElsaNeural", - "Gender": "Female", - "Locale": "it-IT", - "LocaleName": "Italian (Italy)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ja-JP, NanamiNeural)", - "DisplayName": "Nanami", - "LocalName": "七海", - "ShortName": "ja-JP-NanamiNeural", - "Gender": "Female", - "Locale": "ja-JP", - "LocaleName": "Japanese (Japan)", - "StyleList": [ - "chat", - "customerservice", - "cheerful" - ], - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ja-JP, KeitaNeural)", - "DisplayName": "Keita", - "LocalName": "圭太", - "ShortName": "ja-JP-KeitaNeural", - "Gender": "Male", - "Locale": "ja-JP", - "LocaleName": "Japanese (Japan)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (jv-ID, DimasNeural)", - "DisplayName": "Dimas", - "LocalName": "Dimas", - "ShortName": "jv-ID-DimasNeural", - "Gender": "Male", - "Locale": "jv-ID", - "LocaleName": "Javanese (Indonesia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (jv-ID, SitiNeural)", - "DisplayName": "Siti", - "LocalName": "Siti", - "ShortName": "jv-ID-SitiNeural", - "Gender": "Female", - "Locale": "jv-ID", - "LocaleName": "Javanese (Indonesia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (kk-KZ, AigulNeural)", - "DisplayName": "Aigul", - "LocalName": "Айгүл", - "ShortName": "kk-KZ-AigulNeural", - "Gender": "Female", - "Locale": "kk-KZ", - "LocaleName": "Kazakh (Kazakhstan)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (kk-KZ, DauletNeural)", - "DisplayName": "Daulet", - "LocalName": "Дәулет", - "ShortName": "kk-KZ-DauletNeural", - "Gender": "Male", - "Locale": "kk-KZ", - "LocaleName": "Kazakh (Kazakhstan)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (km-KH, PisethNeural)", - "DisplayName": "Piseth", - "LocalName": "ពិសិដ្ឋ", - "ShortName": "km-KH-PisethNeural", - "Gender": "Male", - "Locale": "km-KH", - "LocaleName": "Khmer (Cambodia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (km-KH, SreymomNeural)", - "DisplayName": "Sreymom", - "LocalName": "ស្រីមុំ", - "ShortName": "km-KH-SreymomNeural", - "Gender": "Female", - "Locale": "km-KH", - "LocaleName": "Khmer (Cambodia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (kn-IN, GaganNeural)", - "DisplayName": "Gagan", - "LocalName": "ಗಗನ್", - "ShortName": "kn-IN-GaganNeural", - "Gender": "Male", - "Locale": "kn-IN", - "LocaleName": "Kannada (India)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (kn-IN, SapnaNeural)", - "DisplayName": "Sapna", - "LocalName": "ಸಪ್ನಾ", - "ShortName": "kn-IN-SapnaNeural", - "Gender": "Female", - "Locale": "kn-IN", - "LocaleName": "Kannada (India)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ko-KR, SunHiNeural)", - "DisplayName": "Sun-Hi", - "LocalName": "선히", - "ShortName": "ko-KR-SunHiNeural", - "Gender": "Female", - "Locale": "ko-KR", - "LocaleName": "Korean (Korea)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ko-KR, InJoonNeural)", - "DisplayName": "InJoon", - "LocalName": "인준", - "ShortName": "ko-KR-InJoonNeural", - "Gender": "Male", - "Locale": "ko-KR", - "LocaleName": "Korean (Korea)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (lo-LA, ChanthavongNeural)", - "DisplayName": "Chanthavong", - "LocalName": "ຈັນທະວົງ", - "ShortName": "lo-LA-ChanthavongNeural", - "Gender": "Male", - "Locale": "lo-LA", - "LocaleName": "Lao (Laos)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (lo-LA, KeomanyNeural)", - "DisplayName": "Keomany", - "LocalName": "ແກ້ວມະນີ", - "ShortName": "lo-LA-KeomanyNeural", - "Gender": "Female", - "Locale": "lo-LA", - "LocaleName": "Lao (Laos)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (lt-LT, LeonasNeural)", - "DisplayName": "Leonas", - "LocalName": "Leonas", - "ShortName": "lt-LT-LeonasNeural", - "Gender": "Male", - "Locale": "lt-LT", - "LocaleName": "Lithuanian (Lithuania)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (lt-LT, OnaNeural)", - "DisplayName": "Ona", - "LocalName": "Ona", - "ShortName": "lt-LT-OnaNeural", - "Gender": "Female", - "Locale": "lt-LT", - "LocaleName": "Lithuanian (Lithuania)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (lv-LV, EveritaNeural)", - "DisplayName": "Everita", - "LocalName": "Everita", - "ShortName": "lv-LV-EveritaNeural", - "Gender": "Female", - "Locale": "lv-LV", - "LocaleName": "Latvian (Latvia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (lv-LV, NilsNeural)", - "DisplayName": "Nils", - "LocalName": "Nils", - "ShortName": "lv-LV-NilsNeural", - "Gender": "Male", - "Locale": "lv-LV", - "LocaleName": "Latvian (Latvia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (mk-MK, AleksandarNeural)", - "DisplayName": "Aleksandar", - "LocalName": "Александар", - "ShortName": "mk-MK-AleksandarNeural", - "Gender": "Male", - "Locale": "mk-MK", - "LocaleName": "Macedonian (Republic of North Macedonia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (mk-MK, MarijaNeural)", - "DisplayName": "Marija", - "LocalName": "Марија", - "ShortName": "mk-MK-MarijaNeural", - "Gender": "Female", - "Locale": "mk-MK", - "LocaleName": "Macedonian (Republic of North Macedonia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ml-IN, MidhunNeural)", - "DisplayName": "Midhun", - "LocalName": "മിഥുൻ", - "ShortName": "ml-IN-MidhunNeural", - "Gender": "Male", - "Locale": "ml-IN", - "LocaleName": "Malayalam (India)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ml-IN, SobhanaNeural)", - "DisplayName": "Sobhana", - "LocalName": "ശോഭന", - "ShortName": "ml-IN-SobhanaNeural", - "Gender": "Female", - "Locale": "ml-IN", - "LocaleName": "Malayalam (India)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (mr-IN, AarohiNeural)", - "DisplayName": "Aarohi", - "LocalName": "आरोही", - "ShortName": "mr-IN-AarohiNeural", - "Gender": "Female", - "Locale": "mr-IN", - "LocaleName": "Marathi (India)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (mr-IN, ManoharNeural)", - "DisplayName": "Manohar", - "LocalName": "मनोहर", - "ShortName": "mr-IN-ManoharNeural", - "Gender": "Male", - "Locale": "mr-IN", - "LocaleName": "Marathi (India)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ms-MY, OsmanNeural)", - "DisplayName": "Osman", - "LocalName": "Osman", - "ShortName": "ms-MY-OsmanNeural", - "Gender": "Male", - "Locale": "ms-MY", - "LocaleName": "Malay (Malaysia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ms-MY, YasminNeural)", - "DisplayName": "Yasmin", - "LocalName": "Yasmin", - "ShortName": "ms-MY-YasminNeural", - "Gender": "Female", - "Locale": "ms-MY", - "LocaleName": "Malay (Malaysia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (mt-MT, GraceNeural)", - "DisplayName": "Grace", - "LocalName": "Grace", - "ShortName": "mt-MT-GraceNeural", - "Gender": "Female", - "Locale": "mt-MT", - "LocaleName": "Maltese (Malta)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (mt-MT, JosephNeural)", - "DisplayName": "Joseph", - "LocalName": "Joseph", - "ShortName": "mt-MT-JosephNeural", - "Gender": "Male", - "Locale": "mt-MT", - "LocaleName": "Maltese (Malta)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (my-MM, NilarNeural)", - "DisplayName": "Nilar", - "LocalName": "နီလာ", - "ShortName": "my-MM-NilarNeural", - "Gender": "Female", - "Locale": "my-MM", - "LocaleName": "Burmese (Myanmar)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (my-MM, ThihaNeural)", - "DisplayName": "Thiha", - "LocalName": "သီဟ", - "ShortName": "my-MM-ThihaNeural", - "Gender": "Male", - "Locale": "my-MM", - "LocaleName": "Burmese (Myanmar)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (nb-NO, PernilleNeural)", - "DisplayName": "Pernille", - "LocalName": "Pernille", - "ShortName": "nb-NO-PernilleNeural", - "Gender": "Female", - "Locale": "nb-NO", - "LocaleName": "Norwegian (Bokmål, Norway)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (nb-NO, FinnNeural)", - "DisplayName": "Finn", - "LocalName": "Finn", - "ShortName": "nb-NO-FinnNeural", - "Gender": "Male", - "Locale": "nb-NO", - "LocaleName": "Norwegian (Bokmål, Norway)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (nb-NO, IselinNeural)", - "DisplayName": "Iselin", - "LocalName": "Iselin", - "ShortName": "nb-NO-IselinNeural", - "Gender": "Female", - "Locale": "nb-NO", - "LocaleName": "Norwegian (Bokmål, Norway)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (nl-BE, ArnaudNeural)", - "DisplayName": "Arnaud", - "LocalName": "Arnaud", - "ShortName": "nl-BE-ArnaudNeural", - "Gender": "Male", - "Locale": "nl-BE", - "LocaleName": "Dutch (Belgium)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (nl-BE, DenaNeural)", - "DisplayName": "Dena", - "LocalName": "Dena", - "ShortName": "nl-BE-DenaNeural", - "Gender": "Female", - "Locale": "nl-BE", - "LocaleName": "Dutch (Belgium)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (nl-NL, ColetteNeural)", - "DisplayName": "Colette", - "LocalName": "Colette", - "ShortName": "nl-NL-ColetteNeural", - "Gender": "Female", - "Locale": "nl-NL", - "LocaleName": "Dutch (Netherlands)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (nl-NL, FennaNeural)", - "DisplayName": "Fenna", - "LocalName": "Fenna", - "ShortName": "nl-NL-FennaNeural", - "Gender": "Female", - "Locale": "nl-NL", - "LocaleName": "Dutch (Netherlands)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (nl-NL, MaartenNeural)", - "DisplayName": "Maarten", - "LocalName": "Maarten", - "ShortName": "nl-NL-MaartenNeural", - "Gender": "Male", - "Locale": "nl-NL", - "LocaleName": "Dutch (Netherlands)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (pl-PL, AgnieszkaNeural)", - "DisplayName": "Agnieszka", - "LocalName": "Agnieszka", - "ShortName": "pl-PL-AgnieszkaNeural", - "Gender": "Female", - "Locale": "pl-PL", - "LocaleName": "Polish (Poland)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (pl-PL, MarekNeural)", - "DisplayName": "Marek", - "LocalName": "Marek", - "ShortName": "pl-PL-MarekNeural", - "Gender": "Male", - "Locale": "pl-PL", - "LocaleName": "Polish (Poland)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (pl-PL, ZofiaNeural)", - "DisplayName": "Zofia", - "LocalName": "Zofia", - "ShortName": "pl-PL-ZofiaNeural", - "Gender": "Female", - "Locale": "pl-PL", - "LocaleName": "Polish (Poland)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ps-AF, GulNawazNeural)", - "DisplayName": "Gul Nawaz", - "LocalName": " ګل نواز", - "ShortName": "ps-AF-GulNawazNeural", - "Gender": "Male", - "Locale": "ps-AF", - "LocaleName": "Pashto (Afghanistan)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ps-AF, LatifaNeural)", - "DisplayName": "Latifa", - "LocalName": "لطيفه", - "ShortName": "ps-AF-LatifaNeural", - "Gender": "Female", - "Locale": "ps-AF", - "LocaleName": "Pashto (Afghanistan)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (pt-BR, FranciscaNeural)", - "DisplayName": "Francisca", - "LocalName": "Francisca", - "ShortName": "pt-BR-FranciscaNeural", - "Gender": "Female", - "Locale": "pt-BR", - "LocaleName": "Portuguese (Brazil)", - "StyleList": [ - "calm" - ], - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (pt-BR, AntonioNeural)", - "DisplayName": "Antonio", - "LocalName": "Antônio", - "ShortName": "pt-BR-AntonioNeural", - "Gender": "Male", - "Locale": "pt-BR", - "LocaleName": "Portuguese (Brazil)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (pt-PT, DuarteNeural)", - "DisplayName": "Duarte", - "LocalName": "Duarte", - "ShortName": "pt-PT-DuarteNeural", - "Gender": "Male", - "Locale": "pt-PT", - "LocaleName": "Portuguese (Portugal)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (pt-PT, FernandaNeural)", - "DisplayName": "Fernanda", - "LocalName": "Fernanda", - "ShortName": "pt-PT-FernandaNeural", - "Gender": "Female", - "Locale": "pt-PT", - "LocaleName": "Portuguese (Portugal)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (pt-PT, RaquelNeural)", - "DisplayName": "Raquel", - "LocalName": "Raquel", - "ShortName": "pt-PT-RaquelNeural", - "Gender": "Female", - "Locale": "pt-PT", - "LocaleName": "Portuguese (Portugal)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ro-RO, AlinaNeural)", - "DisplayName": "Alina", - "LocalName": "Alina", - "ShortName": "ro-RO-AlinaNeural", - "Gender": "Female", - "Locale": "ro-RO", - "LocaleName": "Romanian (Romania)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ro-RO, EmilNeural)", - "DisplayName": "Emil", - "LocalName": "Emil", - "ShortName": "ro-RO-EmilNeural", - "Gender": "Male", - "Locale": "ro-RO", - "LocaleName": "Romanian (Romania)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ru-RU, SvetlanaNeural)", - "DisplayName": "Svetlana", - "LocalName": "Светлана", - "ShortName": "ru-RU-SvetlanaNeural", - "Gender": "Female", - "Locale": "ru-RU", - "LocaleName": "Russian (Russia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ru-RU, DariyaNeural)", - "DisplayName": "Dariya", - "LocalName": "Дария", - "ShortName": "ru-RU-DariyaNeural", - "Gender": "Female", - "Locale": "ru-RU", - "LocaleName": "Russian (Russia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ru-RU, DmitryNeural)", - "DisplayName": "Dmitry", - "LocalName": "Дмитрий", - "ShortName": "ru-RU-DmitryNeural", - "Gender": "Male", - "Locale": "ru-RU", - "LocaleName": "Russian (Russia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (si-LK, SameeraNeural)", - "DisplayName": "Sameera", - "LocalName": "සමීර", - "ShortName": "si-LK-SameeraNeural", - "Gender": "Male", - "Locale": "si-LK", - "LocaleName": "Sinhala (Sri Lanka)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (si-LK, ThiliniNeural)", - "DisplayName": "Thilini", - "LocalName": "තිළිණි", - "ShortName": "si-LK-ThiliniNeural", - "Gender": "Female", - "Locale": "si-LK", - "LocaleName": "Sinhala (Sri Lanka)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (sk-SK, LukasNeural)", - "DisplayName": "Lukas", - "LocalName": "Lukáš", - "ShortName": "sk-SK-LukasNeural", - "Gender": "Male", - "Locale": "sk-SK", - "LocaleName": "Slovak (Slovakia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (sk-SK, ViktoriaNeural)", - "DisplayName": "Viktoria", - "LocalName": "Viktória", - "ShortName": "sk-SK-ViktoriaNeural", - "Gender": "Female", - "Locale": "sk-SK", - "LocaleName": "Slovak (Slovakia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (sl-SI, PetraNeural)", - "DisplayName": "Petra", - "LocalName": "Petra", - "ShortName": "sl-SI-PetraNeural", - "Gender": "Female", - "Locale": "sl-SI", - "LocaleName": "Slovenian (Slovenia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (sl-SI, RokNeural)", - "DisplayName": "Rok", - "LocalName": "Rok", - "ShortName": "sl-SI-RokNeural", - "Gender": "Male", - "Locale": "sl-SI", - "LocaleName": "Slovenian (Slovenia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (so-SO, MuuseNeural)", - "DisplayName": "Muuse", - "LocalName": "Muuse", - "ShortName": "so-SO-MuuseNeural", - "Gender": "Male", - "Locale": "so-SO", - "LocaleName": "Somali (Somalia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (so-SO, UbaxNeural)", - "DisplayName": "Ubax", - "LocalName": "Ubax", - "ShortName": "so-SO-UbaxNeural", - "Gender": "Female", - "Locale": "so-SO", - "LocaleName": "Somali (Somalia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (sr-RS, NicholasNeural)", - "DisplayName": "Nicholas", - "LocalName": "Никола", - "ShortName": "sr-RS-NicholasNeural", - "Gender": "Male", - "Locale": "sr-RS", - "LocaleName": "Serbian (Serbia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (sr-RS, SophieNeural)", - "DisplayName": "Sophie", - "LocalName": "Софија", - "ShortName": "sr-RS-SophieNeural", - "Gender": "Female", - "Locale": "sr-RS", - "LocaleName": "Serbian (Serbia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (su-ID, JajangNeural)", - "DisplayName": "Jajang", - "LocalName": "Jajang", - "ShortName": "su-ID-JajangNeural", - "Gender": "Male", - "Locale": "su-ID", - "LocaleName": "Sundanese (Indonesia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (su-ID, TutiNeural)", - "DisplayName": "Tuti", - "LocalName": "Tuti", - "ShortName": "su-ID-TutiNeural", - "Gender": "Female", - "Locale": "su-ID", - "LocaleName": "Sundanese (Indonesia)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (sv-SE, SofieNeural)", - "DisplayName": "Sofie", - "LocalName": "Sofie", - "ShortName": "sv-SE-SofieNeural", - "Gender": "Female", - "Locale": "sv-SE", - "LocaleName": "Swedish (Sweden)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (sv-SE, HilleviNeural)", - "DisplayName": "Hillevi", - "LocalName": "Hillevi", - "ShortName": "sv-SE-HilleviNeural", - "Gender": "Female", - "Locale": "sv-SE", - "LocaleName": "Swedish (Sweden)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (sv-SE, MattiasNeural)", - "DisplayName": "Mattias", - "LocalName": "Mattias", - "ShortName": "sv-SE-MattiasNeural", - "Gender": "Male", - "Locale": "sv-SE", - "LocaleName": "Swedish (Sweden)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (sw-KE, RafikiNeural)", - "DisplayName": "Rafiki", - "LocalName": "Rafiki", - "ShortName": "sw-KE-RafikiNeural", - "Gender": "Male", - "Locale": "sw-KE", - "LocaleName": "Swahili (Kenya)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (sw-KE, ZuriNeural)", - "DisplayName": "Zuri", - "LocalName": "Zuri", - "ShortName": "sw-KE-ZuriNeural", - "Gender": "Female", - "Locale": "sw-KE", - "LocaleName": "Swahili (Kenya)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (sw-TZ, DaudiNeural)", - "DisplayName": "Daudi", - "LocalName": "Daudi", - "ShortName": "sw-TZ-DaudiNeural", - "Gender": "Male", - "Locale": "sw-TZ", - "LocaleName": "Swahili (Tanzania)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (sw-TZ, RehemaNeural)", - "DisplayName": "Rehema", - "LocalName": "Rehema", - "ShortName": "sw-TZ-RehemaNeural", - "Gender": "Female", - "Locale": "sw-TZ", - "LocaleName": "Swahili (Tanzania)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ta-IN, PallaviNeural)", - "DisplayName": "Pallavi", - "LocalName": "பல்லவி", - "ShortName": "ta-IN-PallaviNeural", - "Gender": "Female", - "Locale": "ta-IN", - "LocaleName": "Tamil (India)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ta-IN, ValluvarNeural)", - "DisplayName": "Valluvar", - "LocalName": "வள்ளுவர்", - "ShortName": "ta-IN-ValluvarNeural", - "Gender": "Male", - "Locale": "ta-IN", - "LocaleName": "Tamil (India)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ta-LK, KumarNeural)", - "DisplayName": "Kumar", - "LocalName": "குமார்", - "ShortName": "ta-LK-KumarNeural", - "Gender": "Male", - "Locale": "ta-LK", - "LocaleName": "Tamil (Sri Lanka)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ta-LK, SaranyaNeural)", - "DisplayName": "Saranya", - "LocalName": "சரண்யா", - "ShortName": "ta-LK-SaranyaNeural", - "Gender": "Female", - "Locale": "ta-LK", - "LocaleName": "Tamil (Sri Lanka)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ta-SG, AnbuNeural)", - "DisplayName": "Anbu", - "LocalName": "அன்பு", - "ShortName": "ta-SG-AnbuNeural", - "Gender": "Male", - "Locale": "ta-SG", - "LocaleName": "Tamil (Singapore)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ta-SG, VenbaNeural)", - "DisplayName": "Venba", - "LocalName": "வெண்பா", - "ShortName": "ta-SG-VenbaNeural", - "Gender": "Female", - "Locale": "ta-SG", - "LocaleName": "Tamil (Singapore)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (te-IN, MohanNeural)", - "DisplayName": "Mohan", - "LocalName": "మోహన్", - "ShortName": "te-IN-MohanNeural", - "Gender": "Male", - "Locale": "te-IN", - "LocaleName": "Telugu (India)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (te-IN, ShrutiNeural)", - "DisplayName": "Shruti", - "LocalName": "శ్రుతి", - "ShortName": "te-IN-ShrutiNeural", - "Gender": "Female", - "Locale": "te-IN", - "LocaleName": "Telugu (India)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (th-TH, PremwadeeNeural)", - "DisplayName": "Premwadee", - "LocalName": "เปรมวดี", - "ShortName": "th-TH-PremwadeeNeural", - "Gender": "Female", - "Locale": "th-TH", - "LocaleName": "Thai (Thailand)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (th-TH, AcharaNeural)", - "DisplayName": "Achara", - "LocalName": "อัจฉรา", - "ShortName": "th-TH-AcharaNeural", - "Gender": "Female", - "Locale": "th-TH", - "LocaleName": "Thai (Thailand)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (th-TH, NiwatNeural)", - "DisplayName": "Niwat", - "LocalName": "นิวัฒน์", - "ShortName": "th-TH-NiwatNeural", - "Gender": "Male", - "Locale": "th-TH", - "LocaleName": "Thai (Thailand)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (tr-TR, AhmetNeural)", - "DisplayName": "Ahmet", - "LocalName": "Ahmet", - "ShortName": "tr-TR-AhmetNeural", - "Gender": "Male", - "Locale": "tr-TR", - "LocaleName": "Turkish (Turkey)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (tr-TR, EmelNeural)", - "DisplayName": "Emel", - "LocalName": "Emel", - "ShortName": "tr-TR-EmelNeural", - "Gender": "Female", - "Locale": "tr-TR", - "LocaleName": "Turkish (Turkey)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (uk-UA, OstapNeural)", - "DisplayName": "Ostap", - "LocalName": "Остап", - "ShortName": "uk-UA-OstapNeural", - "Gender": "Male", - "Locale": "uk-UA", - "LocaleName": "Ukrainian (Ukraine)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (uk-UA, PolinaNeural)", - "DisplayName": "Polina", - "LocalName": "Поліна", - "ShortName": "uk-UA-PolinaNeural", - "Gender": "Female", - "Locale": "uk-UA", - "LocaleName": "Ukrainian (Ukraine)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ur-IN, GulNeural)", - "DisplayName": "Gul", - "LocalName": "گل", - "ShortName": "ur-IN-GulNeural", - "Gender": "Female", - "Locale": "ur-IN", - "LocaleName": "Urdu (India)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ur-IN, SalmanNeural)", - "DisplayName": "Salman", - "LocalName": "سلمان", - "ShortName": "ur-IN-SalmanNeural", - "Gender": "Male", - "Locale": "ur-IN", - "LocaleName": "Urdu (India)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ur-PK, AsadNeural)", - "DisplayName": "Asad", - "LocalName": "اسد", - "ShortName": "ur-PK-AsadNeural", - "Gender": "Male", - "Locale": "ur-PK", - "LocaleName": "Urdu (Pakistan)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (ur-PK, UzmaNeural)", - "DisplayName": "Uzma", - "LocalName": "عظمیٰ", - "ShortName": "ur-PK-UzmaNeural", - "Gender": "Female", - "Locale": "ur-PK", - "LocaleName": "Urdu (Pakistan)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (uz-UZ, MadinaNeural)", - "DisplayName": "Madina", - "LocalName": "Madina", - "ShortName": "uz-UZ-MadinaNeural", - "Gender": "Female", - "Locale": "uz-UZ", - "LocaleName": "Uzbek (Uzbekistan)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (uz-UZ, SardorNeural)", - "DisplayName": "Sardor", - "LocalName": "Sardor", - "ShortName": "uz-UZ-SardorNeural", - "Gender": "Male", - "Locale": "uz-UZ", - "LocaleName": "Uzbek (Uzbekistan)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (vi-VN, HoaiMyNeural)", - "DisplayName": "HoaiMy", - "LocalName": "Hoài My", - "ShortName": "vi-VN-HoaiMyNeural", - "Gender": "Female", - "Locale": "vi-VN", - "LocaleName": "Vietnamese (Vietnam)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (vi-VN, NamMinhNeural)", - "DisplayName": "NamMinh", - "LocalName": "Nam Minh", - "ShortName": "vi-VN-NamMinhNeural", - "Gender": "Male", - "Locale": "vi-VN", - "LocaleName": "Vietnamese (Vietnam)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (zh-CN, XiaoxiaoNeural)", - "DisplayName": "Xiaoxiao", - "LocalName": "晓晓", - "ShortName": "zh-CN-XiaoxiaoNeural", - "Gender": "Female", - "Locale": "zh-CN", - "LocaleName": "Chinese (Mandarin, Simplified)", - "StyleList": [ - "assistant", - "chat", - "customerservice", - "newscast", - "affectionate", - "angry", - "calm", - "cheerful", - "disgruntled", - "fearful", - "gentle", - "lyrical", - "sad", - "serious" - ], - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (zh-CN, YunyangNeural)", - "DisplayName": "Yunyang", - "LocalName": "云扬", - "ShortName": "zh-CN-YunyangNeural", - "Gender": "Male", - "Locale": "zh-CN", - "LocaleName": "Chinese (Mandarin, Simplified)", - "StyleList": [ - "customerservice", - "narration-professional", - "newscast-casual" - ], - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (zh-CN, XiaochenNeural)", - "DisplayName": "Xiaochen", - "LocalName": "晓辰", - "ShortName": "zh-CN-XiaochenNeural", - "Gender": "Female", - "Locale": "zh-CN", - "LocaleName": "Chinese (Mandarin, Simplified)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (zh-CN, XiaohanNeural)", - "DisplayName": "Xiaohan", - "LocalName": "晓涵", - "ShortName": "zh-CN-XiaohanNeural", - "Gender": "Female", - "Locale": "zh-CN", - "LocaleName": "Chinese (Mandarin, Simplified)", - "StyleList": [ - "calm", - "fearful", - "cheerful", - "disgruntled", - "serious", - "angry", - "sad", - "gentle", - "affectionate", - "embarrassed" - ], - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (zh-CN, XiaomoNeural)", - "DisplayName": "Xiaomo", - "LocalName": "晓墨", - "ShortName": "zh-CN-XiaomoNeural", - "Gender": "Female", - "Locale": "zh-CN", - "LocaleName": "Chinese (Mandarin, Simplified)", - "StyleList": [ - "embarrassed", - "calm", - "fearful", - "cheerful", - "disgruntled", - "serious", - "angry", - "sad", - "depressed", - "affectionate", - "gentle", - "envious" - ], - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA", - "RolePlayList": [ - "YoungAdultFemale", - "YoungAdultMale", - "OlderAdultFemale", - "OlderAdultMale", - "SeniorFemale", - "SeniorMale", - "Girl", - "Boy" - ] - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (zh-CN, XiaoqiuNeural)", - "DisplayName": "Xiaoqiu", - "LocalName": "晓秋", - "ShortName": "zh-CN-XiaoqiuNeural", - "Gender": "Female", - "Locale": "zh-CN", - "LocaleName": "Chinese (Mandarin, Simplified)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (zh-CN, XiaoruiNeural)", - "DisplayName": "Xiaorui", - "LocalName": "晓睿", - "ShortName": "zh-CN-XiaoruiNeural", - "Gender": "Female", - "Locale": "zh-CN", - "LocaleName": "Chinese (Mandarin, Simplified)", - "StyleList": [ - "calm", - "fearful", - "angry", - "sad" - ], - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (zh-CN, XiaoshuangNeural)", - "DisplayName": "Xiaoshuang", - "LocalName": "晓双", - "ShortName": "zh-CN-XiaoshuangNeural", - "Gender": "Female", - "Locale": "zh-CN", - "LocaleName": "Chinese (Mandarin, Simplified)", - "StyleList": [ - "chat" - ], - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (zh-CN, XiaoxuanNeural)", - "DisplayName": "Xiaoxuan", - "LocalName": "晓萱", - "ShortName": "zh-CN-XiaoxuanNeural", - "Gender": "Female", - "Locale": "zh-CN", - "LocaleName": "Chinese (Mandarin, Simplified)", - "StyleList": [ - "calm", - "fearful", - "cheerful", - "disgruntled", - "serious", - "angry", - "gentle", - "depressed" - ], - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA", - "RolePlayList": [ - "YoungAdultFemale", - "YoungAdultMale", - "OlderAdultFemale", - "OlderAdultMale", - "SeniorFemale", - "SeniorMale", - "Girl", - "Boy" - ] - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (zh-CN, XiaoyanNeural)", - "DisplayName": "Xiaoyan", - "LocalName": "晓颜", - "ShortName": "zh-CN-XiaoyanNeural", - "Gender": "Female", - "Locale": "zh-CN", - "LocaleName": "Chinese (Mandarin, Simplified)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (zh-CN, XiaoyouNeural)", - "DisplayName": "Xiaoyou", - "LocalName": "晓悠", - "ShortName": "zh-CN-XiaoyouNeural", - "Gender": "Female", - "Locale": "zh-CN", - "LocaleName": "Chinese (Mandarin, Simplified)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (zh-CN, YunxiNeural)", - "DisplayName": "Yunxi", - "LocalName": "云希", - "ShortName": "zh-CN-YunxiNeural", - "Gender": "Male", - "Locale": "zh-CN", - "LocaleName": "Chinese (Mandarin, Simplified)", - "StyleList": [ - "narration-relaxed", - "embarrassed", - "fearful", - "cheerful", - "disgruntled", - "serious", - "angry", - "sad", - "depressed", - "chat", - "assistant", - "newscast" - ], - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA", - "RolePlayList": [ - "Narrator", - "YoungAdultMale", - "Boy" - ] - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (zh-CN, YunyeNeural)", - "DisplayName": "Yunye", - "LocalName": "云野", - "ShortName": "zh-CN-YunyeNeural", - "Gender": "Male", - "Locale": "zh-CN", - "LocaleName": "Chinese (Mandarin, Simplified)", - "StyleList": [ - "embarrassed", - "calm", - "fearful", - "cheerful", - "disgruntled", - "serious", - "angry", - "sad" - ], - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA", - "RolePlayList": [ - "YoungAdultFemale", - "YoungAdultMale", - "OlderAdultFemale", - "OlderAdultMale", - "SeniorFemale", - "SeniorMale", - "Girl", - "Boy" - ] - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (zh-CN-LN, XiaobeiNeural)", - "DisplayName": "Xiaobei", - "LocalName": "晓北", - "ShortName": "zh-CN-LN-XiaobeiNeural", - "Gender": "Female", - "Locale": "zh-CN", - "LocaleName": "Chinese (Mandarin, Simplified)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (zh-CN-SC, YunxiNeural)", - "DisplayName": "YunxiSichuan", - "LocalName": "云希四川", - "ShortName": "zh-CN-SC-YunxiNeural", - "Gender": "Male", - "Locale": "zh-CN", - "LocaleName": "Chinese (Mandarin, Simplified)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (zh-CN, YunfengNeural)", - "DisplayName": "Yunfeng", - "LocalName": "云枫", - "ShortName": "zh-CN-YunfengNeural", - "Gender": "Male", - "Locale": "zh-CN", - "LocaleName": "Chinese (Mandarin, Simplified)", - "StyleList": [ - "angry", - "disgruntled", - "cheerful", - "fearful", - "sad", - "serious", - "depressed" - ], - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (zh-CN, YunhaoNeural)", - "DisplayName": "Yunhao", - "LocalName": "云皓", - "ShortName": "zh-CN-YunhaoNeural", - "Gender": "Male", - "Locale": "zh-CN", - "LocaleName": "Chinese (Mandarin, Simplified)", - "StyleList": [ - "Advertisement_upbeat" - ], - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (zh-CN, YunjianNeural)", - "DisplayName": "Yunjian", - "LocalName": "云健", - "ShortName": "zh-CN-YunjianNeural", - "Gender": "Male", - "Locale": "zh-CN", - "LocaleName": "Chinese (Mandarin, Simplified)", - "StyleList": [ - "Narration-relaxed", - "Sports_commentary", - "Sports_commentary_excited" - ], - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "Preview" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (zh-HK, HiuMaanNeural)", - "DisplayName": "HiuMaan", - "LocalName": "曉曼", - "ShortName": "zh-HK-HiuMaanNeural", - "Gender": "Female", - "Locale": "zh-HK", - "LocaleName": "Chinese (Cantonese, Traditional)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (zh-HK, HiuGaaiNeural)", - "DisplayName": "HiuGaai", - "LocalName": "曉佳", - "ShortName": "zh-HK-HiuGaaiNeural", - "Gender": "Female", - "Locale": "zh-HK", - "LocaleName": "Chinese (Cantonese, Traditional)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (zh-HK, WanLungNeural)", - "DisplayName": "WanLung", - "LocalName": "雲龍", - "ShortName": "zh-HK-WanLungNeural", - "Gender": "Male", - "Locale": "zh-HK", - "LocaleName": "Chinese (Cantonese, Traditional)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (zh-TW, HsiaoChenNeural)", - "DisplayName": "HsiaoChen", - "LocalName": "曉臻", - "ShortName": "zh-TW-HsiaoChenNeural", - "Gender": "Female", - "Locale": "zh-TW", - "LocaleName": "Chinese (Taiwanese Mandarin)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (zh-TW, HsiaoYuNeural)", - "DisplayName": "HsiaoYu", - "LocalName": "曉雨", - "ShortName": "zh-TW-HsiaoYuNeural", - "Gender": "Female", - "Locale": "zh-TW", - "LocaleName": "Chinese (Taiwanese Mandarin)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (zh-TW, YunJheNeural)", - "DisplayName": "YunJhe", - "LocalName": "雲哲", - "ShortName": "zh-TW-YunJheNeural", - "Gender": "Male", - "Locale": "zh-TW", - "LocaleName": "Chinese (Taiwanese Mandarin)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (zu-ZA, ThandoNeural)", - "DisplayName": "Thando", - "LocalName": "Thando", - "ShortName": "zu-ZA-ThandoNeural", - "Gender": "Female", - "Locale": "zu-ZA", - "LocaleName": "Zulu (South Africa)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - }, - { - "Name": "Microsoft Server Speech Text to Speech Voice (zu-ZA, ThembaNeural)", - "DisplayName": "Themba", - "LocalName": "Themba", - "ShortName": "zu-ZA-ThembaNeural", - "Gender": "Male", - "Locale": "zu-ZA", - "LocaleName": "Zulu (South Africa)", - "SampleRateHertz": "24000", - "VoiceType": "Neural", - "Status": "GA" - } -]; - -let SpeechSynthesisLanguageMicrosoft = []; - -rawData.forEach((data) => { - const lang = SpeechSynthesisLanguageMicrosoft.find((l) => { - return l.code === data.Locale; - }); - - if (!lang) { - SpeechSynthesisLanguageMicrosoft.push({ - code: data.Locale, - name: data.LocaleName, - voices: rawData.filter((d) => { - return d.Locale === data.Locale; - }).map((d) => { - return { - value: d.ShortName, - name: `${d.DisplayName} (${d.Gender})`, - }; - }), - }); - } -}); - -export default SpeechSynthesisLanguageMicrosoft; diff --git a/src/data/SpeechSynthesisLanguageWellSaid.js b/src/data/SpeechSynthesisLanguageWellSaid.js deleted file mode 100644 index c479e9d..0000000 --- a/src/data/SpeechSynthesisLanguageWellSaid.js +++ /dev/null @@ -1,41 +0,0 @@ -const languages = [ - { - code: 'en-US', - name: 'English (US)', - voices: [ - { value: '3', name: 'Alana B.' }, - { value: '4', name: 'Ramona J.' }, - { value: '5', name: 'Ramona J. (promo)' }, - { value: '7', name: 'Wade C.' }, - { value: '8', name: 'Sofia H.' }, - { value: '9', name: 'David D.' }, - { value: '11', name: 'Isabel V.' }, - { value: '12', name: 'Ava H.' }, - { value: '13', name: 'Jeremy G.' }, - { value: '14', name: 'Nicole L.' }, - { value: '15', name: 'Paige L.' }, - { value: '16', name: 'Tobin A.' }, - { value: '17', name: 'Kai M.' }, - { value: '18', name: 'Tristan F.' }, - { value: '19', name: 'Patrick K.' }, - { value: '20', name: 'Soifia H. (promo)' }, - { value: '21', name: 'Damian P. (promo)' }, - { value: '22', name: 'Jodi P. (promo)' }, - { value: '23', name: 'Lee M. (promo)' }, - { value: '24', name: 'Selene R. (promo)' }, - { value: '26', name: 'Wade C. (promo)' }, - { value: '27', name: 'Joe F.' }, - { value: '28', name: 'Joe F. (promo)' }, - { value: '29', name: 'Garry J. (character)' }, - { value: '33', name: 'Jude D.' }, - { value: '34', name: 'Eric S. (promo)' }, - { value: '35', name: 'Chase J.' }, - { value: '37', name: 'Steve B. (promo)' }, - { value: '38', name: 'Bella B. (promo)' }, - { value: '39', name: 'Tilda C. (promo)' }, - { value: '41', name: 'Paul B. (promo)' } - ], - } -]; - -export default languages; diff --git a/src/fonts/WorkSans-Medium.ttf b/src/fonts/WorkSans-Medium.ttf deleted file mode 100644 index 7eccd15ccfa19f22d8fd52423b2862c659903a3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 235168 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�F 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 vdE?9w2f}-Hx{$o=+<#IY;0x7$X6+ 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
  • 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

    LeiZeOInVjNG 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 KQXaj6z5fGhtF0mc diff --git a/src/fonts/WorkSans-Regular.ttf b/src/fonts/WorkSans-Regular.ttf deleted file mode 100644 index 15047f2a0a62cee429058fe7c08ef4e01ee192be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 234664 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∋F3lSsmg-m8 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 Pyqx-QTuJizDc=1T?M-%+ diff --git a/src/fonts/WorkSans-SemiBold.ttf b/src/fonts/WorkSans-SemiBold.ttf deleted file mode 100644 index f421ed576d0b756a5f7a4f8c40994c4f73097840..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 235120 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�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 diff --git a/src/helpers/handleErrors.js b/src/helpers/handleErrors.js deleted file mode 100644 index 5b31f6f..0000000 --- a/src/helpers/handleErrors.js +++ /dev/null @@ -1,41 +0,0 @@ - -const handleErrors = ({ err, history, dispatch, redirect, setErrorMessage, fallbackMessage, preferFallback }) => { - - const errorMessage = (err.response && err.response.data && err.response.data.msg) - || (preferFallback && fallbackMessage) - || err.message - || fallbackMessage - || 'Something went wrong, please try again.'; - - if (err.response && err.response.status === 401) { - localStorage.clear(); - sessionStorage.clear(); - history.push('/'); - dispatch({ - type: 'ADD', - level: 'error', - message: 'Your session has expired. Please sign in and try again.', - }); - return; - } - - if (setErrorMessage) { - setErrorMessage(errorMessage); - } else { - dispatch({ - type: 'ADD', - level: 'error', - message: errorMessage, - }); - } - - if (process.env.NODE_ENV === 'development') { - console.error(err.response || err); - } - - if (redirect) { - history.push(redirect); - } -}; - -export default handleErrors; diff --git a/src/helpers/phoneNumberFormat.js b/src/helpers/phoneNumberFormat.js deleted file mode 100644 index ce3e469..0000000 --- a/src/helpers/phoneNumberFormat.js +++ /dev/null @@ -1,11 +0,0 @@ - -const phoneNumberFormat = number => { - const usaReg = /^(1?)([2-9][0-9]{2})([2-9][0-9]{2})([0-9]{4})$/; - const match = number.match(usaReg); - if (number.match(usaReg)) { - return `${match[1] ? `+${match[1]} ` : ''}(${match[2]}) ${match[3]}-${match[4]}`; - } - return number; -}; - -export default phoneNumberFormat; diff --git a/src/helpers/sortSipGateways.js b/src/helpers/sortSipGateways.js deleted file mode 100644 index 9387552..0000000 --- a/src/helpers/sortSipGateways.js +++ /dev/null @@ -1,13 +0,0 @@ - -const sortSipGateways = sipGateways => { - sipGateways.sort((a, b) => { - const makeIp = a => (a.ipv4 && a.ipv4.toLowerCase()) || ''; - const makePort = a => (a.port && a.port.toString().padStart(5,0)) || ''; - let valA = `${makeIp(a)}:${makePort(a)}`; - let valB = `${makeIp(b)}:${makePort(b)}`; - return valA > valB ? 1 : valA < valB ? -1 : 0; - }); - return sipGateways; -}; - -export default sortSipGateways; diff --git a/src/helpers/timeFormat.js b/src/helpers/timeFormat.js deleted file mode 100644 index 7f4c47c..0000000 --- a/src/helpers/timeFormat.js +++ /dev/null @@ -1,12 +0,0 @@ - -const timeFormat = seconds => { - if (seconds < 60) { - return `${seconds}s`; - } - - const minutes = Math.floor(seconds / 60); - const remainingSeconds = seconds % 60; - return `${minutes}m ${remainingSeconds}s`; -}; - -export default timeFormat; diff --git a/src/images/AccountsIcon.svg b/src/images/AccountsIcon.svg deleted file mode 100644 index 6c92f0f..0000000 --- a/src/images/AccountsIcon.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/src/images/AlertsIcon.svg b/src/images/AlertsIcon.svg deleted file mode 100644 index 3af7f62..0000000 --- a/src/images/AlertsIcon.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/images/ApplicationsIcon.svg b/src/images/ApplicationsIcon.svg deleted file mode 100644 index 61e52b8..0000000 --- a/src/images/ApplicationsIcon.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/src/images/CarriersIcon.svg b/src/images/CarriersIcon.svg deleted file mode 100644 index 0e53460..0000000 --- a/src/images/CarriersIcon.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/images/CheckGreen.svg b/src/images/CheckGreen.svg deleted file mode 100644 index 23deb6e..0000000 --- a/src/images/CheckGreen.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/src/images/Chevron.svg b/src/images/Chevron.svg deleted file mode 100644 index 02cac53..0000000 --- a/src/images/Chevron.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/images/ErrorIcon.svg b/src/images/ErrorIcon.svg deleted file mode 100644 index 7cedb19..0000000 --- a/src/images/ErrorIcon.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/src/images/HidePassword.svg b/src/images/HidePassword.svg deleted file mode 100644 index 7f5d327..0000000 --- a/src/images/HidePassword.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/images/LogoJambong.svg b/src/images/LogoJambong.svg deleted file mode 100644 index ada3146..0000000 --- a/src/images/LogoJambong.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/src/images/MenuDots.svg b/src/images/MenuDots.svg deleted file mode 100644 index f3e87da..0000000 --- a/src/images/MenuDots.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/images/MsTeamsIcon.svg b/src/images/MsTeamsIcon.svg deleted file mode 100644 index e986291..0000000 --- a/src/images/MsTeamsIcon.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/src/images/PhoneNumbersIcon.svg b/src/images/PhoneNumbersIcon.svg deleted file mode 100644 index 8f0fdfe..0000000 --- a/src/images/PhoneNumbersIcon.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/images/RecentCallsIcon.svg b/src/images/RecentCallsIcon.svg deleted file mode 100644 index 03e9328..0000000 --- a/src/images/RecentCallsIcon.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/src/images/SettingsIcon.svg b/src/images/SettingsIcon.svg deleted file mode 100644 index c564236..0000000 --- a/src/images/SettingsIcon.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/images/SpeechIcon.svg b/src/images/SpeechIcon.svg deleted file mode 100644 index 501aabc..0000000 --- a/src/images/SpeechIcon.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/src/images/TrashIcon.svg b/src/images/TrashIcon.svg deleted file mode 100644 index ffaf773..0000000 --- a/src/images/TrashIcon.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/images/ViewPassword.svg b/src/images/ViewPassword.svg deleted file mode 100644 index 2402362..0000000 --- a/src/images/ViewPassword.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/src/index.css b/src/index.css deleted file mode 100644 index 34bee8a..0000000 --- a/src/index.css +++ /dev/null @@ -1,130 +0,0 @@ -/*===========================================================================*/ -/* Fonts */ -/*===========================================================================*/ - -@font-face { - font-family: 'WorkSans'; - src: local('WorkSans'), url(./fonts/WorkSans-Regular.ttf) format('truetype'); -} - -@font-face { - font-family: 'WorkSans'; - src: local('WorkSans'), url(./fonts/WorkSans-Medium.ttf) format('truetype'); - font-weight: 500; -} - -@font-face { - font-family: 'WorkSans'; - src: local('WorkSans'), url(./fonts/WorkSans-SemiBold.ttf) format('truetype'); - font-weight: 600; -} - -/*===========================================================================*/ -/* Global Styles */ -/*===========================================================================*/ - -html { - box-sizing: border-box; -} - -*, *:before, *:after { - box-sizing: inherit; -} - -body { - margin: 0; - background: #F3F3F3; - color: #565656; - font-family: WorkSans, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', - 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', - sans-serif; - font-size: 16px; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -code { - font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', - monospace; -} - -::selection { - background-color: rgba(217, 28, 92, 0.75); - color: #FFF; -} - -/*===========================================================================*/ -/* Normalize.css */ -/*===========================================================================*/ - -main { - display: block; -} - -pre { - font-family: monospace, monospace; - font-size: 1em; -} - -a { - background-color: transparent; -} - -code, -kbd, -samp { - font-family: monospace, monospace; - font-size: 1em; -} - -img { - border-style: none; -} - -button, -input, -optgroup, -select, -textarea { - font-family: inherit; - font-size: 100%; - line-height: 1.15; - margin: 0; -} - -button, -input { - overflow: visible; -} - -button, -select { - text-transform: none; -} - -button, -[type="button"], -[type="reset"], -[type="submit"] { - -webkit-appearance: button; -} - -button::-moz-focus-inner, -[type="button"]::-moz-focus-inner, -[type="reset"]::-moz-focus-inner, -[type="submit"]::-moz-focus-inner { - border-style: none; - padding: 0; -} - -select:-moz-focusring { - color: transparent; - text-shadow: 0 0 0 #000; -} -select { - background: transparent; -} - -textarea { - overflow: auto; -} diff --git a/src/index.js b/src/index.js deleted file mode 100644 index f6e698e..0000000 --- a/src/index.js +++ /dev/null @@ -1,23 +0,0 @@ -import React from 'react'; -import ReactDOM from 'react-dom'; -import { NotificationProvider } from './contexts/NotificationContext'; -import { ModalProvider } from './contexts/ModalContext'; -import { ShowMsTeamsProvider } from './contexts/ShowMsTeamsContext'; -import { ServiceProvider } from './contexts/ServiceProviderContext'; -import App from './App'; - -import "antd/dist/antd.css"; -import './index.css'; - -ReactDOM.render( - - - - - - - - - , - document.getElementById('root') -); diff --git a/src/main.tsx b/src/main.tsx new file mode 100644 index 0000000..04a42e3 --- /dev/null +++ b/src/main.tsx @@ -0,0 +1,27 @@ +import React from "react"; +import { createRoot } from "react-dom/client"; +import { BrowserRouter } from "react-router-dom"; + +import { Router } from "./router"; +import { StateProvider } from "./store"; +import { AuthProvider } from "./router/auth"; + +import "./styles/index.scss"; + +const App = () => { + return ( + + + + + + + + + + ); +}; + +const root: Element = document.getElementById("root")!; + +createRoot(root).render(); diff --git a/src/reducers/NotificationReducer.js b/src/reducers/NotificationReducer.js deleted file mode 100644 index 162f07a..0000000 --- a/src/reducers/NotificationReducer.js +++ /dev/null @@ -1,20 +0,0 @@ - -const NotificationReducer = (state, action) => { - switch (action.type) { - case 'ADD': - return [ - { - id: action.id, - level: action.level, - message: action.message, - }, - ...state, - ]; - case 'REMOVE': - return state.filter(s => s.id !== action.id); - default: - return state; - } -}; - -export default NotificationReducer; diff --git a/src/router/auth.tsx b/src/router/auth.tsx new file mode 100644 index 0000000..c94cb0d --- /dev/null +++ b/src/router/auth.tsx @@ -0,0 +1,128 @@ +/** + * Based on https://usehooks.com/useAuth/ + */ +import React, { useContext } from "react"; +import { useNavigate } from "react-router-dom"; + +import { postLogin } from "src/api"; +import { StatusCodes } from "src/api/types"; +import { + ROUTE_LOGIN, + ROUTE_CREATE_PASSWORD, + ROUTE_INTERNAL_ACCOUNTS, +} from "./routes"; +import { + SESS_OLD_PASSWORD, + SESS_USER_SID, + MSG_INCORRECT_CREDS, + MSG_SOMETHING_WRONG, + MSG_SERVER_DOWN, +} from "src/constants"; + +import type { UserLogin } from "src/api/types"; + +interface SignIn { + (username: string, password: string): Promise; +} + +interface AuthStateContext { + token: string; + signin: SignIn; + signout: () => void; + authorized: boolean; +} + +/** + * The auth context for React + */ +export const AuthContext = React.createContext(null!); + +/** + * Hook for child components to get the auth object + */ +export const useAuth = (): AuthStateContext => { + return useContext(AuthContext); +}; + +/** + * The key used to store our token in localStorage + */ +const storageKey = "token"; + +/** + * Methods to get/set the token from local storage + */ +export const getToken = () => { + return localStorage.getItem(storageKey) || ""; +}; + +export const setToken = (token: string) => { + localStorage.setItem(storageKey, token); +}; + +/** + * Provider hook that creates auth object and handles state + */ +export const useProvideAuth = (): AuthStateContext => { + let token = getToken(); + const navigate = useNavigate(); + const authorized = token ? true : false; + + const signin: SignIn = (username, password) => { + return new Promise((resolve, reject) => { + postLogin({ username, password }) + .then((response) => { + if (response.status === StatusCodes.OK) { + token = response.json.token; + setToken(token); + + if (response.json.force_change) { + sessionStorage.setItem(SESS_USER_SID, response.json.user_sid); + sessionStorage.setItem(SESS_OLD_PASSWORD, password); + navigate(ROUTE_CREATE_PASSWORD); + } else { + navigate(ROUTE_INTERNAL_ACCOUNTS); + } + + resolve(response.json); + } + }) + .catch((error) => { + if ( + error.status > StatusCodes.BAD_REQUEST && + error.status < StatusCodes.INTERNAL_SERVER_ERROR + ) { + reject(MSG_INCORRECT_CREDS); + } + + if (error.status === StatusCodes.INTERNAL_SERVER_ERROR) { + reject(MSG_SERVER_DOWN); + } + + reject(MSG_SOMETHING_WRONG); + }); + }); + }; + + const signout = () => { + localStorage.clear(); + sessionStorage.clear(); + navigate(ROUTE_LOGIN); + }; + + return { + token, + signin, + signout, + authorized, + }; +}; + +/** + * Provider component that wraps your app and makes auth object + */ +export const AuthProvider = ({ children }: { children: React.ReactNode }) => { + const auth = useProvideAuth(); + + return {children}; +}; diff --git a/src/router/index.tsx b/src/router/index.tsx new file mode 100644 index 0000000..924e2bb --- /dev/null +++ b/src/router/index.tsx @@ -0,0 +1,131 @@ +import React from "react"; +import { Routes, Route } from "react-router-dom"; + +import { RequireAuth, Toast } from "src/components"; +import { useSelectState } from "src/store"; +import { Login, Layout as LoginLayout } from "src/containers/login"; +import { Layout as InternalLayout } from "src/containers/internal"; +import { NotFound } from "src/containers/notfound"; + +/** Login */ +import CreatePassword from "src/containers/login/create-password"; + +/** Top navi */ +import Settings from "src/containers/internal/views/settings"; +import Accounts from "src/containers/internal/views/accounts"; +import AccountAdd from "src/containers/internal/views/accounts/add"; +import AccountEdit from "src/containers/internal/views/accounts/edit"; +import Applications from "src/containers/internal/views/applications"; +import ApplicationAdd from "src/containers/internal/views/applications/add"; +import ApplicationEdit from "src/containers/internal/views/applications/edit"; +import RecentCalls from "src/containers/internal/views/recent-calls"; +import Alerts from "src/containers/internal/views/alerts"; + +/** BYO navi */ +import Carriers from "src/containers/internal/views/carriers"; +import CarrierAdd from "src/containers/internal/views/carriers/add"; +import CarrierEdit from "src/containers/internal/views/carriers/edit"; +import SpeechServices from "src/containers/internal/views/speech-services"; +import SpeechServicesAdd from "src/containers/internal/views/speech-services/add"; +import SpeechServicesEdit from "src/containers/internal/views/speech-services/edit"; +import PhoneNumbers from "src/containers/internal/views/phone-numbers"; +import PhoneNumbersAdd from "src/containers/internal/views/phone-numbers/add"; +import PhoneNumbersEdit from "src/containers/internal/views/phone-numbers/edit"; +import MSTeamsTenants from "src/containers/internal/views/ms-teams-tenants"; +import MSTeamsTenantsAdd from "src/containers/internal/views/ms-teams-tenants/add"; +import MSTeamsTenantsEdit from "src/containers/internal/views/ms-teams-tenants/edit"; + +export const Router = () => { + const toast = useSelectState("toast"); + + return ( + <> + {toast && } + + {/* Login */} + }> + } /> + + + + } + /> + + {/* 404 page not found */} + } /> + + + {/* Internal */} + + + }> + {/* Top navi */} + } /> + } /> + } /> + } + /> + } /> + } /> + } + /> + + } /> + } /> + + {/* BYO navi */} + } /> + } /> + } + /> + } /> + } + /> + } + /> + } /> + } + /> + } + /> + } /> + } + /> + } + /> + + {/* 404 page not found */} + } /> + + + + } + /> + + + ); +}; diff --git a/src/router/routes.ts b/src/router/routes.ts new file mode 100644 index 0000000..6f3b281 --- /dev/null +++ b/src/router/routes.ts @@ -0,0 +1,11 @@ +export const ROUTE_LOGIN = "/"; +export const ROUTE_CREATE_PASSWORD = "/create-password"; +export const ROUTE_INTERNAL_SETTINGS = "/internal/settings"; +export const ROUTE_INTERNAL_ACCOUNTS = "/internal/accounts"; +export const ROUTE_INTERNAL_APPLICATIONS = "/internal/applications"; +export const ROUTE_INTERNAL_RECENT_CALLS = "/internal/recent-calls"; +export const ROUTE_INTERNAL_ALERTS = "/internal/alerts"; +export const ROUTE_INTERNAL_CARRIERS = "/internal/carriers"; +export const ROUTE_INTERNAL_SPEECH = "/internal/speech-services"; +export const ROUTE_INTERNAL_PHONE_NUMBERS = "/internal/phone-numbers"; +export const ROUTE_INTERNAL_MS_TEAMS_TENANTS = "/internal/ms-teams-tenants"; diff --git a/src/store/actions.ts b/src/store/actions.ts new file mode 100644 index 0000000..2ddc300 --- /dev/null +++ b/src/store/actions.ts @@ -0,0 +1,74 @@ +import { getUser, getServiceProviders } from "src/api"; + +import type { State, Action } from "./types"; +import type { ServiceProvider, User } from "src/api/types"; + +/** A generic action assumes action.type is ALWAYS our state key */ +/** Since this is how we're designing our state interface we cool */ +export const genericAction = (state: State, action: Action) => { + return { + ...state, + [action.type]: action.payload, + }; +}; + +export const serviceProvidersAction = ( + state: State, + action: Action +) => { + // Sorts for consistent list view + action.payload = (action.payload).sort((a, b) => + a.name.localeCompare(b.name) + ); + + // Sets initial currentServiceProvider + if (!state.currentServiceProvider) { + state.currentServiceProvider = (action.payload)[0]; + state.accessControl.hasMSTeamsFqdn = (action.payload)[0] + .ms_teams_fqdn + ? true + : false; + } else { + const serviceProvider = action.payload.find( + (sp: ServiceProvider) => + sp.service_provider_sid === + state.currentServiceProvider?.service_provider_sid + ); + // The `serviceProvider` will be undefined if this is after a DELETE + // For this case we want to just reset to the first provider in the list + // Otherwise this is a PUT or POST and the app will update accordingly + state.currentServiceProvider = + serviceProvider || (action.payload)[0]; + state.accessControl.hasMSTeamsFqdn = state.currentServiceProvider + ?.ms_teams_fqdn + ? true + : false; + } + + return genericAction(state, action); +}; + +export const currentServiceProviderAction = ( + state: State, + action: Action +) => { + // Set MS Teams Tenants ACL condition + state.accessControl.hasMSTeamsFqdn = (action.payload) + .ms_teams_fqdn + ? true + : false; + + return genericAction(state, action); +}; + +export const userAsyncAction = async (): Promise => { + const response = await getUser("user_sid"); + return response.json; +}; + +export const serviceProvidersAsyncAction = async (): Promise< + ServiceProvider[] +> => { + const response = await getServiceProviders(); + return response.json; +}; diff --git a/src/store/index.tsx b/src/store/index.tsx new file mode 100644 index 0000000..f208975 --- /dev/null +++ b/src/store/index.tsx @@ -0,0 +1,152 @@ +import React, { useReducer, useContext } from "react"; + +import { TOAST_TIME } from "src/constants"; +import { + genericAction, + userAsyncAction, + serviceProvidersAction, + serviceProvidersAsyncAction, + currentServiceProviderAction, +} from "./actions"; + +import type { + IMessage, + Toast, + State, + Action, + MiddleWare, + GlobalDispatch, + AppStateContext, + FeatureFlag, + ACL, +} from "./types"; + +const initialState: State = { + featureFlags: { + /** Placeholder since we may need feature-flags in the future... */ + development: import.meta.env.DEV, + }, + accessControl: { + hasAdminAuth: true, + hasMSTeamsFqdn: false, + }, + serviceProviders: [], +}; + +const reducer: React.Reducer> = (state, action) => { + switch (action.type) { + case "user": + case "toast": + return genericAction(state, action); + case "serviceProviders": + return serviceProvidersAction(state, action); + case "currentServiceProvider": + return currentServiceProviderAction(state, action); + default: + throw new Error(); + } +}; + +let toastTimeout: number; + +/** Async middlewares */ +/** Proxies dispatch to reducer */ +const middleware: MiddleWare = (dispatch) => { + /** This generic implementation enforces global dispatch type-safety */ + return (action: Action) => { + switch (action.type) { + case "toast": + if (toastTimeout) { + clearTimeout(toastTimeout); + } + toastTimeout = setTimeout(() => { + dispatch({ type: "toast" }); + }, TOAST_TIME); + return dispatch(action); + case "user": + return userAsyncAction().then((payload) => { + dispatch({ ...action, payload }); + }); + case "serviceProviders": + return serviceProvidersAsyncAction().then((payload) => { + dispatch({ ...action, payload }); + }); + default: + return dispatch(action); + } + }; +}; + +const StateContext = React.createContext(null!); + +/** This will let us make a hook so dispatch is accessible anywhere */ +let globalDispatch: GlobalDispatch; + +export const StateProvider = ({ children }: { children: React.ReactNode }) => { + const [state, dispatch]: [State, React.Dispatch>] = + useReducer(reducer, initialState); + + globalDispatch = middleware(dispatch); + + const value: AppStateContext = { state, dispatch: globalDispatch }; + + return ( + {children} + ); +}; + +/** Dispatch can be used anywhere -- even outside of the React tree */ +export const useDispatch = (): GlobalDispatch => { + return globalDispatch; +}; + +/** Toast dispatch helpers to make component code less cumbersome */ +const toastDispatch = (payload: Toast) => { + globalDispatch({ + type: "toast", + payload, + }); +}; + +export const toastError = (msg: IMessage) => { + toastDispatch({ + type: "error", + message: msg, + }); +}; + +export const toastSuccess = (msg: IMessage) => { + toastDispatch({ + type: "success", + message: msg, + }); +}; + +/** Wrapper hook for state context */ +export const useStateContext = () => { + const { state } = useContext(StateContext); + + return state; +}; + +/** Wrapper hook for generic state selector */ +/** Usage: const serviceProviders = useSelectState("serviceProviders") */ +export const useSelectState = (key: Key) => { + const state = useStateContext(); + + return state[key]; +}; + +/** Wrapper for implementing feature flag UI etc... */ +export const useFeatureFlag = (flag: Flag) => { + const featureFlags = useSelectState("featureFlags"); + + return featureFlags[flag]; +}; + +/** Wrapper for implementing access control UI etc... */ +export const useAccessControl = (acl: Acl) => { + const accessControl = useSelectState("accessControl"); + + return accessControl[acl]; +}; diff --git a/src/store/types.ts b/src/store/types.ts new file mode 100644 index 0000000..f6768bb --- /dev/null +++ b/src/store/types.ts @@ -0,0 +1,58 @@ +import React from "react"; + +import type { User, ServiceProvider } from "src/api/types"; + +export type IMessage = string | JSX.Element; + +export type Toast = { + type: "success" | "error"; + message: IMessage; +}; + +export interface ACL { + hasAdminAuth: boolean; + hasMSTeamsFqdn: boolean; +} + +export interface FeatureFlag { + development: boolean; +} + +export interface State { + /** logged in user */ + user?: User; + /** global toast notifications */ + toast?: Toast; + /** feature flags from vite ENV */ + featureFlags: FeatureFlag; + /** access controls */ + accessControl: ACL; + /** available service providers */ + serviceProviders: ServiceProvider[]; + /** current selected service provider */ + currentServiceProvider?: ServiceProvider; +} + +/** Generic interface enforces type-safety with global dispatch */ +export interface Action { + /** Basically this is the event type */ + type: Type; + /** Payloads have various shapes based on DTOs */ + payload?: State[Type]; +} + +/** Global dispatch enforces type-safety between (type <=> payload) */ +export interface GlobalDispatch { + (action: Action): void; +} + +export interface MiddleWare { + (dispatch: React.Dispatch>): GlobalDispatch; +} + +export interface AppStateContext { + /** Global data store */ + state: State; + /** Globsl dispatch method */ + dispatch: GlobalDispatch; +} diff --git a/src/styles/_cards.scss b/src/styles/_cards.scss new file mode 100644 index 0000000..690dd2d --- /dev/null +++ b/src/styles/_cards.scss @@ -0,0 +1,74 @@ +@use "./vars"; +@use "jambonz-ui/src/styles/vars" as ui-vars; +@use "jambonz-ui/src/styles/mixins" as ui-mixins; + +.cards { + display: grid; + grid-template-columns: repeat(3, 1fr); + grid-gap: ui-vars.$px02; + margin-top: ui-vars.$px04; + width: 100%; + max-width: ui-vars.$width-laptop; + + @media (max-width: 1440px) { + grid-template-columns: repeat(2, 1fr); + } + + @media (max-width: 1024px) { + grid-template-columns: repeat(1, 1fr); + } +} + +.card { + border-radius: ui-vars.$px01; + box-shadow: 0 0 ui-vars.$px01 rgba(0, 0, 0, 0.25); + padding: ui-vars.$px02; + overflow: hidden; + + &__title { + @include ui-mixins.p(); + } + + &__sid, + &__title { + overflow-x: hidden; + text-overflow: ellipsis; + white-space: nowrap; + padding-bottom: ui-vars.$px00; + } + + &__sid { + @include ui-mixins.ms(); + margin-top: ui-vars.$px02; + margin-bottom: ui-vars.$px02; + } + + &__meta { + @include ui-mixins.ms(); + + svg { + width: 16px; + height: 16px; + } + } + + &__actions { + margin-top: ui-vars.$px04; + + > * + * { + margin-left: ui-vars.$px01; + } + + svg { + stroke: ui-vars.$jambonz; + } + + a { + display: inline-block; + } + + button[type="button"] { + cursor: pointer; + } + } +} diff --git a/src/styles/_forms.scss b/src/styles/_forms.scss new file mode 100644 index 0000000..131aee7 --- /dev/null +++ b/src/styles/_forms.scss @@ -0,0 +1,227 @@ +@use "./vars"; +@use "./mixins"; +@use "jambonz-ui/src/styles/vars" as ui-vars; +@use "jambonz-ui/src/styles/mixins" as ui-mixins; + +input[type="text"], +input[type="number"], +input[type="password"] { + @include ui-mixins.m(); + padding: ui-vars.$px01 ui-vars.$px02; + border-radius: ui-vars.$px01; + border: 2px solid ui-vars.$grey; + background-color: ui-vars.$white; + color: inherit; + + &:focus { + border-color: ui-vars.$dark; + outline: 0; + } + + &::placeholder { + color: vars.$jeangrey; + } +} + +input[type="radio"], +input[type="checkbox"] { + height: ui-vars.$px02; + width: ui-vars.$px02; + margin: 0; +} + +fieldset { + > input[disabled] { + @include mixins.disabled(); + } +} + +.form { + &--internal { + > * + * { + @include mixins.formline(); + } + + fieldset { + padding: ui-vars.$px03; + + @include mixins.small() { + padding: ui-vars.$px02; + } + } + + /** Third-party -- e.g. jambonz-ui */ + .tabs__nav { + padding: ui-vars.$px01 ui-vars.$px03; + position: sticky; + top: 0; + z-index: 1; + background-color: rgba(255, 255, 255, 0.9); + } + + .tabs__tabs__item > * + * { + @include mixins.formline(); + } + + .btnty > .ico { + @include mixins.icosize(); + } + } + + label { + @include ui-mixins.m(); + @include ui-mixins.font-medium(); + display: flex; + align-items: center; + flex-wrap: wrap; + + span { + color: ui-vars.$jambonz; + } + + input[type="radio"] { + margin: 0 ui-vars.$px01 0 0; + } + + button[type="button"] { + margin-left: ui-vars.$px01; + cursor: pointer; + } + + svg { + stroke: ui-vars.$teal; + width: 18px; + height: 18px; + } + } + + fieldset { + width: 100%; + display: flex; + justify-content: flex-start; + flex-direction: column; + min-inline-size: auto; + + label { + max-width: fit-content; + } + + label + * { + margin-top: ui-vars.$px01; + } + + * + label { + margin-top: ui-vars.$px02; + } + + > div + div, + > div + details { + margin-top: ui-vars.$px02; + } + } + + input[type="text"], + input[type="number"], + input[type="password"] { + width: 100%; + max-width: vars.$widthinput; + } +} + +.chk { + display: flex; + align-items: center; + + input { + margin: 0 ui-vars.$px01 0 0; + } +} + +.multi { + display: flex; + align-items: center; + + @media (max-width: 1090px) { + flex-direction: column; + align-items: flex-start; + } + + .inp { + width: 100%; + max-width: vars.$widthinput; + } + + .sel { + width: 100%; + max-width: 130px; + margin-left: ui-vars.$px01; + + &--preset { + max-width: 230px; + } + + @media (max-width: 1090px) { + margin-left: 0; + margin-top: ui-vars.$px01; + max-width: vars.$widthinput; + } + } +} + +.gateway { + padding: ui-vars.$px02; + border-radius: ui-vars.$px01; + border: 2px solid ui-vars.$grey; + max-width: vars.$widthinput; + position: relative; + + > div { + display: grid; + grid-gap: ui-vars.$px02; + align-items: center; + + &:nth-child(1) { + grid-template-columns: [col] calc(50% - #{ui-vars.$px02 * 2}) [col] 25% [col] 25%; + + @include mixins.small() { + grid-template-columns: [col] 100%; + } + } + + &:nth-child(2) { + grid-template-columns: repeat(3, 1fr); + margin-top: ui-vars.$px02; + + > div:last-child { + text-align: right; + } + + @include mixins.small() { + grid-template-columns: repeat(2, 1fr); + } + } + } + + > button { + position: absolute; + right: 0; + bottom: 50%; + transform: translate3d(50%, 50%, 0); + + @include mixins.small() { + top: 0; + bottom: auto; + transform: translate3d(50%, -50%, 0); + } + } + + &--sip { + > button { + bottom: 25%; + + @include mixins.small() { + bottom: auto; + } + } + } +} diff --git a/src/styles/_inpbtn.scss b/src/styles/_inpbtn.scss new file mode 100644 index 0000000..77b59e0 --- /dev/null +++ b/src/styles/_inpbtn.scss @@ -0,0 +1,44 @@ +@use "./vars"; +@use "./mixins"; +@use "jambonz-ui/src/styles/vars" as ui-vars; +@use "jambonz-ui/src/styles/mixins" as ui-mixins; + +.inpbtn { + display: flex; + align-items: center; + + input[type="text"], + input[type="number"] { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + width: 100%; + height: vars.$clipheight; + + .internal form & { + max-width: calc(#{vars.$widthinput} - #{vars.$clipheight}); + } + + &:focus-visible { + outline: 0; + } + } + + button[type="button"] { + cursor: pointer; + height: vars.$clipheight; + width: vars.$clipheight; + border-bottom-right-radius: ui-vars.$px01; + border-top-right-radius: ui-vars.$px01; + border: 2px solid ui-vars.$grey; + border-left: 0; + background-color: ui-vars.$pink; + + &[disabled] { + @include mixins.disabled(); + } + + svg { + stroke: ui-vars.$jambonz; + } + } +} diff --git a/src/styles/_lists.scss b/src/styles/_lists.scss new file mode 100644 index 0000000..f094fad --- /dev/null +++ b/src/styles/_lists.scss @@ -0,0 +1,105 @@ +@use "./vars"; +@use "./mixins"; +@use "jambonz-ui/src/styles/vars" as ui-vars; +@use "jambonz-ui/src/styles/mixins" as ui-mixins; + +.list { + > * + * { + border-top: 1px solid ui-vars.$grey; + } +} + +.item { + padding: ui-vars.$px03; + display: flex; + align-items: center; + justify-content: space-between; + + &--actions { + overflow-x: auto; + white-space: nowrap; + grid-gap: ui-vars.$px02; + + .btns { + flex-wrap: nowrap; + } + } + + @include mixins.small() { + padding: ui-vars.$px02; + } + + &__title { + @include ui-mixins.p(); + display: flex; + align-items: center; + grid-gap: ui-vars.$px02; + + + .item__meta { + @include mixins.small() { + margin-top: ui-vars.$px01; + } + } + + > a svg { + transform: translate3d(0, 0, 0); + transition: transform ui-vars.$base-dur ui-vars.$base-ease; + } + + &:hover > a svg { + transform: translate3d(ui-vars.$px01, 0, 0); + } + + > span { + @include ui-mixins.ms(); + + svg { + width: 16px; + height: 16px; + } + } + } + + &__sid { + @include ui-mixins.ms(); + } + + &__meta { + @include ui-mixins.ms(); + display: flex; + align-items: center; + grid-gap: ui-vars.$px02; + + @include mixins.small() { + flex-direction: column; + align-items: flex-start; + grid-gap: 0; + } + + svg { + width: 16px; + height: 16px; + } + } + + &__actions { + display: flex; + flex-direction: column; + + > * + * { + margin-top: ui-vars.$px01; + } + + svg { + stroke: ui-vars.$jambonz; + } + + a { + display: inline-block; + } + + button[type="button"] { + cursor: pointer; + } + } +} diff --git a/src/styles/_mixins.scss b/src/styles/_mixins.scss new file mode 100644 index 0000000..5d2eb14 --- /dev/null +++ b/src/styles/_mixins.scss @@ -0,0 +1,51 @@ +@use "./vars"; +@use "jambonz-ui/src/styles/vars" as ui-vars; + +@mixin mobile { + @media (max-width: vars.$widthbreak) { + @content; + } +} + +@mixin small { + @media (max-width: vars.$widthsmall) { + @content; + } +} + +@mixin pluscircle { + stroke: ui-vars.$teal; + stroke-width: vars.$stroke00; + pointer-events: none; +} + +@mixin icosize { + height: ui-vars.$h3-size; + width: ui-vars.$h3-size; + margin-right: auto; + cursor: pointer; + + svg { + width: vars.$ico00; + height: vars.$ico00; + } +} + +@mixin code { + font-family: ui-vars.$font-mono; + font-size: ui-vars.$ms-size; + line-height: 1.9; + + @media (max-width: ui-vars.$width-tablet-2) { + font-size: ui-vars.$mxs-size; + } +} + +@mixin disabled { + cursor: not-allowed; + opacity: 0.5; +} + +@mixin formline { + border-top: 1px solid ui-vars.$grey; +} diff --git a/src/styles/_smsel.scss b/src/styles/_smsel.scss new file mode 100644 index 0000000..909eaf4 --- /dev/null +++ b/src/styles/_smsel.scss @@ -0,0 +1,117 @@ +@use "./vars"; +@use "jambonz-ui/src/styles/vars" as ui-vars; +@use "jambonz-ui/src/styles/mixins" as ui-mixins; + +.smsel { + label { + display: inline-block; + margin-right: ui-vars.$px01; + @include ui-mixins.ms(); + } + + div { + position: relative; + display: inline-block; + } + + select { + @include ui-mixins.mxs(); + font-family: inherit; + appearance: none; + background-color: transparent; + width: auto; + + &:focus { + outline: 0; + } + } + + span { + height: vars.$ico01; + width: vars.$ico01; + border-radius: ui-vars.$px00; + position: absolute; + top: 50%; + right: 0; + transform: translateY(-50%); + display: flex; + align-items: center; + flex-direction: column; + justify-content: center; + pointer-events: none; + + svg { + &:first-child { + transform: translateY(2px); + } + + &:last-child { + transform: translateY(-2px); + } + } + } + + &--navi { + width: 100%; + + div { + width: 100%; + } + + select { + border: 1px solid vars.$darkgrey; + border-radius: ui-vars.$px01; + padding: ui-vars.$px00 48px ui-vars.$px00 ui-vars.$px01; + border-color: vars.$darkgrey; + color: ui-vars.$pink; + width: 100%; + + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + + span { + background-color: #333; + right: ui-vars.$px01; + } + + svg { + stroke: ui-vars.$grey; + } + } + + &--filter { + select { + border: 1px solid ui-vars.$grey; + border-radius: ui-vars.$px01; + padding: ui-vars.$px00 48px ui-vars.$px00 ui-vars.$px01; + max-width: 230px; + + &:focus { + border-color: ui-vars.$dark; + outline: 0; + } + } + + span { + background-color: ui-vars.$grey; + right: ui-vars.$px01; + } + + svg { + stroke: ui-vars.$white; + } + + &.focused { + select { + border-color: ui-vars.$dark; + outline: 0; + } + + span { + background-color: ui-vars.$dark; + } + } + } +} diff --git a/src/styles/_vars.scss b/src/styles/_vars.scss new file mode 100644 index 0000000..50879f5 --- /dev/null +++ b/src/styles/_vars.scss @@ -0,0 +1,25 @@ +@use "jambonz-ui/src/styles/vars" as ui-vars; + +$jeangrey: #888; +$darkgrey: #444; + +$ico00: 18px; +$ico01: 24px; +$ico03: 36px; +$ico0N: 20px; + +$widthnavi: 280px; +$widthinput: 512px; +$widthbreak: 800px; +$widthsmall: 640px; + +/** Used by api-keys layout */ +$gridbreak1: 1070px; +$gridbreak2: 940px; + +$stroke00: 1.5px; + +$zindex00: 1110010012; +$zindex01: 1110010013; + +$clipheight: 50px; diff --git a/src/styles/index.scss b/src/styles/index.scss new file mode 100644 index 0000000..4ad5651 --- /dev/null +++ b/src/styles/index.scss @@ -0,0 +1,203 @@ +@use "./forms"; +// @use "./cards"; +@use "./lists"; +@use "./smsel"; +@use "./inpbtn"; +@use "jambonz-ui/src/styles/index"; + +@use "./vars"; +@use "./mixins"; +@use "jambonz-ui/src/styles/vars" as ui-vars; +@use "jambonz-ui/src/styles/mixins" as ui-mixins; + +/** Root custom vars */ + +:root { + --mobile-media: #{vars.$widthbreak}; +} + +/** Could go in jambonz-ui */ + +.txt--dark { + color: ui-vars.$dark; +} + +.txt--jean { + color: vars.$jeangrey; +} + +/** Global things */ + +pre, +code { + @include mixins.code(); +} + +pre { + padding: ui-vars.$px03; + color: ui-vars.$pink; + background-color: ui-vars.$dark; + border-radius: ui-vars.$px01; + overflow: auto; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + tab-size: 2; + hyphens: none; +} + +p > code { + padding: ui-vars.$px00; + color: ui-vars.$pink; + background-color: ui-vars.$dark; + border-radius: ui-vars.$px00; +} + +details { + padding: ui-vars.$px02; + border-radius: ui-vars.$px01; + border: 2px solid ui-vars.$dark; + max-width: vars.$widthinput; + + /** Used for recent calls */ + &.clean { + padding: 0; + border: 0; + max-width: 100%; + width: 100%; + } + + /** Used on the speech credentials form */ + &.fail { + color: ui-vars.$jambonz; + border: 2px solid ui-vars.$jambonz; + background-color: ui-vars.$pink; + } + + &.ok { + color: ui-vars.$teal; + border: 2px solid ui-vars.$teal; + background-color: mix(ui-vars.$white, ui-vars.$teal, 95%); + } + + &.not-tested { + color: vars.$jeangrey; + border: 2px solid vars.$jeangrey; + } + + summary { + @include ui-mixins.m(); + cursor: pointer; + + + * { + margin-top: ui-vars.$px02; + } + + > div { + display: inline-block; + padding-left: ui-vars.$px00; + vertical-align: top; + } + } +} + +/** The idea is this is like [type="button"] generically */ +/** We need to prohibit some jambonz-ui buttons from submitting forms */ +/** Otherwise this selector would just be `button[type="button"] {...}` */ +/** https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-type */ +.btnty { + background-color: transparent; + width: auto; + height: auto; + border: 0; + padding: 0; + font-size: 0; +} + +/** 404 page (login & internal) */ +.notfound { + .btn { + margin-top: ui-vars.$px03; + } + + &--login { + text-align: center; + } +} + +.ispin { + display: flex; + align-items: center; + grid-gap: ui-vars.$px01; +} + +.mast { + display: flex; + align-items: center; + justify-content: space-between; + + .ico { + @include mixins.icosize(); + } +} + +.mass-edit { + padding: ui-vars.$px00 0; + + label { + @include ui-mixins.ms(); + } +} + +.filters { + display: flex; + padding-top: ui-vars.$px03; + padding-bottom: ui-vars.$px03; + + &--ender { + justify-content: flex-end; + } + + &--spaced { + justify-content: space-between; + + @include mixins.small() { + overflow-x: auto; + white-space: nowrap; + grid-gap: ui-vars.$px02; + } + } + + &--multi { + overflow-x: auto; + white-space: nowrap; + grid-gap: ui-vars.$px02; + + > :first-child { + margin-left: auto; + } + } + + + * { + margin-top: 0; + } +} + +/** Used for reccent-calls */ +.pre-grid { + @include mixins.code(); + display: grid; + grid-template-columns: auto 1fr; + grid-row-gap: ui-vars.$px01; + grid-column-gap: ui-vars.$px03; + text-align: left; + padding: ui-vars.$px03; + color: ui-vars.$pink; + background-color: ui-vars.$dark; + border-radius: ui-vars.$px01; +} + +.pcap { + margin-top: ui-vars.$px02; +} diff --git a/src/utils/index.ts b/src/utils/index.ts new file mode 100644 index 0000000..ec643e0 --- /dev/null +++ b/src/utils/index.ts @@ -0,0 +1,130 @@ +import { withSuspense } from "./with-suspense"; +import { useMobileMedia } from "../utils/use-mobile-media"; +import { withAccessControl } from "./with-access-control"; +import { withSelectState } from "./with-select-state"; +import { useRedirect } from "./use-redirect"; +import { useFilteredResults } from "./use-filtered-results"; +import { + FQDN, + FQDN_TOP_LEVEL, + INVALID, + IP, + TCP_MAX_PORT, +} from "src/api/constants"; + +import type { IpType } from "src/api/types"; + +export const hasValue = ( + variable: Type | null | undefined +): variable is NonNullable => { + return variable !== null && variable !== undefined; +}; + +export const hasLength = ( + variable: Type[] | null | undefined, + minlength = 0 +): variable is NonNullable => { + return hasValue(variable) && variable.length > minlength; +}; + +export const isObject = (obj: unknown) => { + /** null | undefined | Array will be "object" so exclude them */ + return typeof obj === "object" && hasValue(obj) && !Array.isArray(obj); +}; + +export const isValidPasswd = (password: string) => { + return ( + password.length >= 6 && /\d/.test(password) && /[a-zA-Z]/.test(password) + ); +}; + +export const isValidPort = (port: number) => { + return ( + hasValue(port) && + /^[0-9]+$/.test(port.toString().trim()) && + parseInt(port.toString().trim(), 10) >= 0 && + parseInt(port.toString().trim(), 10) <= TCP_MAX_PORT + ); +}; + +export const getIpValidationType = (ipv4: string): IpType => { + const type = + /^((25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])$/.test( + ipv4.trim() + ) + ? IP + : /^([a-zA-Z0-9][^.]*)(\.[^.]+){2,}$/.test(ipv4.trim()) + ? FQDN + : /^([a-zA-Z][^.]*)(\.[^.]+)$/.test(ipv4.trim()) + ? FQDN_TOP_LEVEL + : INVALID; + return type; +}; + +export const getObscured = (str: string, sub = 4, char = "*") => { + const len = str.length - sub; + const obscured = str.substring(0, len).replace(/[a-zA-Z0-9]/g, char); + const revealed = str.substring(len); + + return `${obscured}${revealed}`; +}; + +export const getObscuredSecret = (str: string, sub = 6, char = "X") => { + if (str.length <= sub) { + return str; + } + + const obscured = char.repeat(str.length - sub); + const revealed = str.substring(0, sub); + + return `${revealed}${obscured}`; +}; + +export const getHumanDateTime = (date: string, fallbackText = "Never used") => { + const currDate = new Date(); + const argDate = new Date(date); + currDate.setHours(0, 0, 0, 0); + argDate.setHours(0, 0, 0, 0); + const daysDiff = Math.round( + (currDate.getTime() - argDate.getTime()) / 1000 / 60 / 60 / 24 + ); + + return daysDiff > 1 + ? `${daysDiff} days ago` + : daysDiff === 1 + ? "Yesterday" + : daysDiff === 0 + ? "Today" + : fallbackText; +}; + +export const formatPhoneNumber = (number: string) => { + const match = number.match(/^(1?)([2-9][0-9]{2})([2-9][0-9]{2})([0-9]{4})$/); + + if (match) { + return `${match[1] ? `+${match[1]} ` : ""}(${match[2]}) ${match[3]}-${ + match[4] + }`; + } + + return number; +}; + +export const formatTime = (seconds: number) => { + if (seconds < 60) { + return `${seconds}s`; + } + + const minutes = Math.floor(seconds / 60); + const remainingSeconds = seconds % 60; + return `${minutes}m ${remainingSeconds}s`; +}; + +export { + withSuspense, + useMobileMedia, + withAccessControl, + withSelectState, + useRedirect, + useFilteredResults, +}; diff --git a/src/utils/use-filtered-results.ts b/src/utils/use-filtered-results.ts new file mode 100644 index 0000000..b3cac53 --- /dev/null +++ b/src/utils/use-filtered-results.ts @@ -0,0 +1,40 @@ +import { useMemo } from "react"; + +import { hasValue, hasLength, isObject } from "."; + +const fuzzyMatch = (patterns: string[], items: string[]) => { + const searchableItems = items + .filter((x) => hasValue(x)) + .map((x) => { + return isObject(x) ? Object.values(x).join("") : String(x); + }); + + return searchableItems.find((item) => { + return patterns.some((patternPart) => { + return item.includes(patternPart); + }); + }); +}; + +export const useFilteredResults = ( + rawFilter: string, + rawCollection: Type[] | undefined +) => { + const splitFilter = useMemo(() => rawFilter.split(" "), [rawFilter]); + const filteredCollection = useMemo(() => { + if (hasLength(rawCollection)) { + return rawCollection.filter((rawItem) => { + const values = Object.values(>rawItem) + .filter((x) => hasValue(x)) + .flatMap((x) => { + return isObject(x) ? Object.values(>x) : x; + }); + return fuzzyMatch(splitFilter, values); + }); + } + + return rawCollection; + }, [rawCollection, splitFilter]); + + return filteredCollection; +}; diff --git a/src/utils/use-mobile-media.ts b/src/utils/use-mobile-media.ts new file mode 100644 index 0000000..8fcc3bf --- /dev/null +++ b/src/utils/use-mobile-media.ts @@ -0,0 +1,26 @@ +import { useState, useEffect } from "react"; +import { getCssVar } from "jambonz-ui"; + +export const useMobileMedia = () => { + const [mobile, setMobile] = useState(false); + + const handleMedia = (e: MediaQueryListEvent) => { + setMobile(e.matches); + }; + + useEffect(() => { + const mql = window.matchMedia( + `(max-width: ${getCssVar("--mobile-media")})` + ); + + mql.addEventListener("change", handleMedia); + + setMobile(mql.matches); + + return function cleanup() { + mql.removeEventListener("change", handleMedia); + }; + }, []); + + return mobile; +}; diff --git a/src/utils/use-redirect.ts b/src/utils/use-redirect.ts new file mode 100644 index 0000000..49e05f5 --- /dev/null +++ b/src/utils/use-redirect.ts @@ -0,0 +1,22 @@ +import { useEffect } from "react"; +import { useNavigate } from "react-router-dom"; + +import { toastError } from "src/store"; + +import type { IMessage } from "src/store/types"; +import type { Account, Carrier } from "src/api/types"; + +export const useRedirect = ( + collection: Account[] | Carrier[] | undefined, + redirect: string, + message: IMessage +) => { + const navigate = useNavigate(); + + useEffect(() => { + if (collection && !collection.length) { + toastError(message); + navigate(redirect); + } + }, [collection]); +}; diff --git a/src/utils/with-access-control.tsx b/src/utils/with-access-control.tsx new file mode 100644 index 0000000..91c27ef --- /dev/null +++ b/src/utils/with-access-control.tsx @@ -0,0 +1,40 @@ +import React, { useEffect } from "react"; + +import { useNavigate } from "react-router-dom"; + +import { toastError, useSelectState, useAccessControl } from "src/store"; +import { ROUTE_INTERNAL_SETTINGS } from "src/router/routes"; + +import type { ACL, IMessage } from "src/store/types"; +import type { ServiceProvider } from "src/api/types"; + +type PassthroughProps = { + [key: string]: unknown; +}; + +export interface ACLGetIMessage { + (sp: ServiceProvider): IMessage; +} + +export const withAccessControl = ( + acl: keyof ACL, + getMessage: ACLGetIMessage +) => { + return function WithAccessControl(Component: React.ComponentType) { + return function ComponentWithAccessControl(props: PassthroughProps) { + const navigate = useNavigate(); + const hasPermission = useAccessControl(acl); + const currentServiceProvider = useSelectState("currentServiceProvider"); + + /** Handles ACL based on current service provider / user */ + useEffect(() => { + if (currentServiceProvider && !hasPermission) { + toastError(getMessage(currentServiceProvider)); + navigate(ROUTE_INTERNAL_SETTINGS); + } + }, [hasPermission, currentServiceProvider]); + + return ; + }; + }; +}; diff --git a/src/utils/with-select-state.tsx b/src/utils/with-select-state.tsx new file mode 100644 index 0000000..90ba8a3 --- /dev/null +++ b/src/utils/with-select-state.tsx @@ -0,0 +1,23 @@ +import React from "react"; + +import { useStateContext } from "src/store"; + +import type { State } from "src/store/types"; + +/** HOC for mapping state to props -- use with default exports and React.lazy */ +export const withSelectState = (keys: Key[]) => { + return function WithSelectState(Component: React.ElementType) { + return function ComponentWithSelectState(props: { + [key: string]: unknown; + }) { + const state = useStateContext(); + const stateProps: { [key: string]: unknown } = {}; + + keys.forEach((key) => { + stateProps[key] = state[key]; + }); + + return ; + }; + }; +}; diff --git a/src/utils/with-suspense.tsx b/src/utils/with-suspense.tsx new file mode 100644 index 0000000..67a9584 --- /dev/null +++ b/src/utils/with-suspense.tsx @@ -0,0 +1,16 @@ +import React from "react"; +import { Spinner } from "src/components"; + +type PassthroughProps = { + [key: string]: unknown; +}; + +export const withSuspense = (Component: React.ComponentType) => { + return function ComponentWithSuspense(props: PassthroughProps) { + return ( + }> + + + ); + }; +}; diff --git a/src/vendor/index.tsx b/src/vendor/index.tsx new file mode 100644 index 0000000..789f03d --- /dev/null +++ b/src/vendor/index.tsx @@ -0,0 +1,113 @@ +import { useEffect, useState } from "react"; + +import type { + VendorOptions, + SynthesisVendors, + RecognizerVendors, + RegionVendors, +} from "./types"; + +export const LANG_EN_US = "en-US"; +export const LANG_EN_US_STANDARD_C = "en-US-Standard-C"; +export const VENDOR_GOOGLE = "google"; +export const VENDOR_AWS = "aws"; +export const VENDOR_MICROSOFT = "microsoft"; +export const VENDOR_WELLSAID = "wellsaid"; + +export const vendors: VendorOptions[] = [ + { + name: "Google", + value: VENDOR_GOOGLE, + }, + { + name: "AWS", + value: VENDOR_AWS, + }, + { + name: "Microsoft", + value: VENDOR_MICROSOFT, + }, + { + name: "WellSaid", + value: VENDOR_WELLSAID, + }, +]; + +export const useRegionVendors = () => { + const [regions, setRegions] = useState(); + + useEffect(() => { + let ignore = false; + + Promise.all([ + import("./regions/aws-regions"), + import("./regions/ms-azure-regions"), + ]).then(([{ default: awsRegions }, { default: msRegions }]) => { + if (!ignore) { + setRegions({ + aws: awsRegions, + microsoft: msRegions, + }); + } + }); + + return function cleanup() { + ignore = true; + }; + }, []); + + return regions; +}; + +export const useSpeechVendors = () => { + const [speech, setSpeech] = useState<{ + synthesis?: SynthesisVendors; + recognizers?: RecognizerVendors; + }>({}); + + useEffect(() => { + let ignore = false; + + Promise.all([ + import("./speech-recognizer/aws-speech-recognizer-lang"), + import("./speech-recognizer/google-speech-recognizer-lang"), + import("./speech-recognizer/ms-speech-recognizer-lang"), + import("./speech-synthesis/aws-speech-synthesis-lang"), + import("./speech-synthesis/google-speech-synthesis-lang"), + import("./speech-synthesis/ms-speech-synthesis-lang"), + import("./speech-synthesis/wellsaid-speech-synthesis-lang"), + ]).then( + ([ + { default: awsRecognizer }, + { default: googleRecognizer }, + { default: msRecognizer }, + { default: awsSynthesis }, + { default: googleSynthesis }, + { default: msSynthesis }, + { default: wellsaidSynthesis }, + ]) => { + if (!ignore) { + setSpeech({ + synthesis: { + aws: awsSynthesis, + google: googleSynthesis, + microsoft: msSynthesis, + wellsaid: wellsaidSynthesis, + }, + recognizers: { + aws: awsRecognizer, + google: googleRecognizer, + microsoft: msRecognizer, + }, + }); + } + } + ); + + return function cleanup() { + ignore = true; + }; + }, []); + + return speech; +}; diff --git a/src/vendor/regions/aws-regions.ts b/src/vendor/regions/aws-regions.ts new file mode 100644 index 0000000..90263e6 --- /dev/null +++ b/src/vendor/regions/aws-regions.ts @@ -0,0 +1,94 @@ +import type { Region } from "../types"; + +export const regions: Region[] = [ + { + name: "US East (N. Virginia)", + value: "us-east-1", + }, + { + name: "US East (Ohio)", + value: "us-east-2", + }, + { + name: "US West (N. California)", + value: "us-west-1", + }, + { + name: "US West (Oregon)", + value: "us-west-2", + }, + { + name: "Africa (Cape Town)", + value: "af-south-1", + }, + { + name: "Asia Pacific (Hong Kong)", + value: "ap-east-1", + }, + { + name: "Asia Pacific (Jakarta)", + value: "ap-southeast-3", + }, + { + name: "Asia Pacific (Mumbai)", + value: "ap-south-1", + }, + { + name: "Asia Pacific (Osaka)", + value: "ap-northeast-3", + }, + { + name: "Asia Pacific (Seoul)", + value: "ap-northeast-2", + }, + { + name: "Asia Pacific (Singapore)", + value: "ap-southeast-1", + }, + { + name: "Asia Pacific (Sydney)", + value: "ap-southeast-2", + }, + { + name: "Asia Pacific (Tokyo)", + value: "ap-northeast-1", + }, + { + name: "Canada (Central)", + value: "ca-central-1", + }, + { + name: "Europe (Frankfurt)", + value: "eu-central-1", + }, + { + name: "Europe (Ireland)", + value: "eu-west-1", + }, + { + name: "Europe (London)", + value: "eu-west-2", + }, + { + name: "Europe (Milan)", + value: "eu-south-1", + }, + { + name: "Europe (Paris)", + value: "eu-west-3", + }, + { + name: "Europe (Stockholm)", + value: "eu-north-1", + }, + { + name: "Middle East (Bahrain)", + value: "me-south-1", + }, + { + name: "South America (São Paulo)", + value: "sa-east-1", + }, +]; + +export default regions; diff --git a/src/vendor/regions/ms-azure-regions.ts b/src/vendor/regions/ms-azure-regions.ts new file mode 100644 index 0000000..ccfdc97 --- /dev/null +++ b/src/vendor/regions/ms-azure-regions.ts @@ -0,0 +1,126 @@ +import type { Region } from "../types"; + +export const regions: Region[] = [ + { + name: "Australia - East (australiaeast)", + value: "australiaeast", + }, + { + name: "Brazil - South (brazilsouth)", + value: "brazilsouth", + }, + { + name: "Canada - Central (canadacentral)", + value: "canadacentral", + }, + { + name: "East Asia (eastasia)", + value: "eastasia", + }, + { + name: "Europe - North (northeurope)", + value: "northeurope", + }, + { + name: "Europe - West (westeurope)", + value: "westeurope", + }, + { + name: "France - Central (francecentral)", + value: "francecentral", + }, + { + name: "Germany - West Central (germanywestcentral)", + value: "germanywestcentral", + }, + { + name: "India - Central (centralindia)", + value: "centralindia", + }, + { + name: "Japan - East (japaneast)", + value: "japaneast", + }, + { + name: "Japan - West (japanwest)", + value: "japanwest", + }, + { + name: "Korea - Central (koreacentral)", + value: "koreacentral", + }, + { + name: "Norway - East (norwayeast)", + value: "norwayeast", + }, + { + name: "South Africa - North (southafricanorth)", + value: "southafricanorth", + }, + { + name: "Southeast Asia (southeastasia)", + value: "southeastasia", + }, + { + name: "Switzerland - North (switzerlandnorth)", + value: "switzerlandnorth", + }, + { + name: "Switzerland - West (switzerlandwest)", + value: "switzerlandwest", + }, + { + name: "UAE - North (uaenorth)", + value: "uaenorth", + }, + { + name: "UK - South (uksouth)", + value: "uksouth", + }, + { + name: "US - Central (centralus)", + value: "centralus", + }, + { + name: "US - East (eastus)", + value: "eastus", + }, + { + name: "US - East 2 (eastus2)", + value: "eastus2", + }, + { + name: "US - Gov Arizona (usgovarizona)", + value: "usgovarizona", + }, + { + name: "US - Gov Virginia (usgovvirginia)", + value: "usgovvirginia", + }, + { + name: "US - North Central (northcentralus)", + value: "northcentralus", + }, + { + name: "US - South Central (southcentralus)", + value: "southcentralus", + }, + { + name: "US - West Central (westcentralus)", + value: "westcentralus", + }, + { + name: "US - West (westus)", + value: "westus", + }, + { + name: "US - West 2 (westus2)", + value: "westus2", + }, + { + name: "US - West 3 (westus3)", + value: "westus3", + }, +]; + +export default regions; diff --git a/src/vendor/speech-recognizer/aws-speech-recognizer-lang.ts b/src/vendor/speech-recognizer/aws-speech-recognizer-lang.ts new file mode 100644 index 0000000..db92bf9 --- /dev/null +++ b/src/vendor/speech-recognizer/aws-speech-recognizer-lang.ts @@ -0,0 +1,14 @@ +import type { Language } from "../types"; + +export const languages: Language[] = [ + { name: "Australian English", code: "en-AU" }, + { name: "British English", code: "en-GB" }, + { name: "US English", code: "en-US" }, + { name: "French", code: "fr-FR" }, + { name: "Canadian French", code: "fr-CA" }, + { name: "German", code: "de-DE" }, + { name: "Italian", code: "it-IT" }, + { name: "US Spanish", code: "es-US" }, +]; + +export default languages; diff --git a/src/vendor/speech-recognizer/google-speech-recognizer-lang.ts b/src/vendor/speech-recognizer/google-speech-recognizer-lang.ts new file mode 100644 index 0000000..fefb809 --- /dev/null +++ b/src/vendor/speech-recognizer/google-speech-recognizer-lang.ts @@ -0,0 +1,134 @@ +import type { Language } from "../types"; + +export const languages: Language[] = [ + { name: "Afrikaans (South Africa)", code: "af-ZA" }, + { name: "Albanian (Albania)", code: "sq-AL" }, + { name: "Amharic (Ethiopia)", code: "am-ET" }, + { name: "Arabic (Algeria)", code: "ar-DZ" }, + { name: "Arabic (Bahrain)", code: "ar-BH" }, + { name: "Arabic (Egypt)", code: "ar-EG" }, + { name: "Arabic (Iraq)", code: "ar-IQ" }, + { name: "Arabic (Israel)", code: "ar-IL" }, + { name: "Arabic (Jordan)", code: "ar-JO" }, + { name: "Arabic (Kuwait)", code: "ar-KW" }, + { name: "Arabic (Lebanon)", code: "ar-LB" }, + { name: "Arabic (Morocco)", code: "ar-MA" }, + { name: "Arabic (Oman)", code: "ar-OM" }, + { name: "Arabic (Qatar)", code: "ar-QA" }, + { name: "Arabic (Saudi Arabia)", code: "ar-SA" }, + { name: "Arabic (State of Palestine)", code: "ar-PS" }, + { name: "Arabic (Tunisia)", code: "ar-TN" }, + { name: "Arabic (United Arab Emirates)", code: "ar-AE" }, + { name: "Armenian (Armenia)", code: "hy-AM" }, + { name: "Azerbaijani (Azerbaijan)", code: "az-AZ" }, + { name: "Basque (Spain)", code: "eu-ES" }, + { name: "Bengali (Bangladesh)", code: "bn-BD" }, + { name: "Bengali (India)", code: "bn-IN" }, + { name: "Bulgarian (Bulgaria)", code: "bg-BG" }, + { name: "Burmese (Myanmar)", code: "my-MM" }, + { name: "Catalan (Spain)", code: "ca-ES" }, + { name: "Chinese, Cantonese (Traditional, Hong Kong)", code: "yue-Hant-HK" }, + { name: "Chinese, Mandarin (Simplified, China)", code: "zh" }, + { name: "Chinese, Mandarin (Simplified, Hong Kong)", code: "zh-HK" }, + { name: "Chinese, Mandarin (Simplified, Taiwan)", code: "zh-TW" }, + { name: "Croatian (Croatia)", code: "hr-HR" }, + { name: "Czech (Czech Republic)", code: "cs-CZ" }, + { name: "Danish (Denmark)", code: "da-DK" }, + { name: "Dutch (Belgium)", code: "nl-BE" }, + { name: "Dutch (Netherlands)", code: "nl-NL" }, + { name: "English (Australia)", code: "en-AU" }, + { name: "English (Canada)", code: "en-CA" }, + { name: "English (Ghana)", code: "en-GH" }, + { name: "English (India)", code: "en-IN" }, + { name: "English (Ireland)", code: "en-IE" }, + { name: "English (Kenya)", code: "en-KE" }, + { name: "English (New Zealand)", code: "en-NZ" }, + { name: "English (Nigeria)", code: "en-NG" }, + { name: "English (Philippines)", code: "en-PH" }, + { name: "English (Singapore)", code: "en-SG" }, + { name: "English (South Africa)", code: "en-ZA" }, + { name: "English (Tanzania)", code: "en-TZ" }, + { name: "English (United Kingdom)", code: "en-GB" }, + { name: "English (United States)", code: "en-US" }, + { name: "Estonian (Estonia)", code: "et-EE" }, + { name: "Filipino (Philippines)", code: "fil-PH" }, + { name: "Finnish (Finland)", code: "fi-FI" }, + { name: "French (Canada)", code: "fr-CA" }, + { name: "French (France)", code: "fr-FR" }, + { name: "Galician (Spain)", code: "gl-ES" }, + { name: "Georgian (Georgia)", code: "ka-GE" }, + { name: "German (Germany)", code: "de-DE" }, + { name: "Greek (Greece)", code: "el-GR" }, + { name: "Gujarati (India)", code: "gu-IN" }, + { name: "Hebrew (Israel)", code: "he-IL" }, + { name: "Hindi (India)", code: "hi-IN" }, + { name: "Hungarian (Hungary)", code: "hu-HU" }, + { name: "Icelandic (Iceland)", code: "is-IS" }, + { name: "Indonesian (Indonesia)", code: "id-ID" }, + { name: "Italian (Italy)", code: "it-IT" }, + { name: "Japanese (Japan)", code: "ja-JP" }, + { name: "Javanese (Indonesia)", code: "jv-ID" }, + { name: "Kannada (India)", code: "kn-IN" }, + { name: "Khmer (Cambodia)", code: "km-KH" }, + { name: "Korean (South Korea)", code: "ko-KR" }, + { name: "Lao (Laos)", code: "lo-LA" }, + { name: "Latvian (Latvia)", code: "lv-LV" }, + { name: "Lithuanian (Lithuania)", code: "lt-LT" }, + { name: "Macedonian (North Macedonia)", code: "mk-MK" }, + { name: "Malay (Malaysia)", code: "ms-MY" }, + { name: "Malayalam (India)", code: "ml-IN" }, + { name: "Marathi (India)", code: "mr-IN" }, + { name: "Mongolian (Mongolia)", code: "mn-MN" }, + { name: "Nepali (Nepal)", code: "ne-NP" }, + { name: "Norwegian Bokmål (Norway)", code: "nb-NO" }, + { name: "Persian (Iran)", code: "fa-IR" }, + { name: "Polish (Poland)", code: "pl-PL" }, + { name: "Portuguese (Brazil)", code: "pt-BR" }, + { name: "Portuguese (Portugal)", code: "pt-PT" }, + { name: "Punjabi (Gurmukhi, India)", code: "pa-guru-IN" }, + { name: "Romanian (Romania)", code: "ro-RO" }, + { name: "Russian (Russia)", code: "ru-RU" }, + { name: "Serbian (Serbia)", code: "sr-RS" }, + { name: "Sinhala (Sri Lanka)", code: "si-LK" }, + { name: "Slovak (Slovakia)", code: "sk-SK" }, + { name: "Slovenian (Slovenia)", code: "sl-SI" }, + { name: "Spanish (Argentina)", code: "es-AR" }, + { name: "Spanish (Bolivia)", code: "es-BO" }, + { name: "Spanish (Chile)", code: "es-CL" }, + { name: "Spanish (Colombia)", code: "es-CO" }, + { name: "Spanish (Costa Rica)", code: "es-CR" }, + { name: "Spanish (Dominican Republic)", code: "es-DO" }, + { name: "Spanish (Ecuador)", code: "es-EC" }, + { name: "Spanish (El Salvador)", code: "es-SV" }, + { name: "Spanish (Guatemala)", code: "es-GT" }, + { name: "Spanish (Honduras)", code: "es-HN" }, + { name: "Spanish (Mexico)", code: "es-MX" }, + { name: "Spanish (Nicaragua)", code: "es-NI" }, + { name: "Spanish (Panama)", code: "es-PA" }, + { name: "Spanish (Paraguay)", code: "es-PY" }, + { name: "Spanish (Peru)", code: "es-PE" }, + { name: "Spanish (Puerto Rico)", code: "es-PR" }, + { name: "Spanish (Spain)", code: "es-ES" }, + { name: "Spanish (United States)", code: "es-US" }, + { name: "Spanish (Uruguay)", code: "es-UY" }, + { name: "Spanish (Venezuela)", code: "es-VE" }, + { name: "Sundanese (Indonesia)", code: "su-ID" }, + { name: "Swahili (Kenya)", code: "sw-KE" }, + { name: "Swahili (Tanzania)", code: "sw-TZ" }, + { name: "Swedish (Sweden)", code: "sv-SE" }, + { name: "Tamil (India)", code: "ta-IN" }, + { name: "Tamil (Malaysia)", code: "ta-MY" }, + { name: "Tamil (Singapore)", code: "ta-SG" }, + { name: "Tamil (Sri Lanka)", code: "ta-LK" }, + { name: "Telugu (India)", code: "te-IN" }, + { name: "Thai (Thailand)", code: "th-TH" }, + { name: "Turkish (Turkey)", code: "tr-TR" }, + { name: "Ukrainian (Ukraine)", code: "uk-UA" }, + { name: "Urdu (India)", code: "ur-IN" }, + { name: "Urdu (Pakistan)", code: "ur-PK" }, + { name: "Uzbek (Uzbekistan)", code: "uz-UZ" }, + { name: "Vietnamese (Vietnam)", code: "vi-VN" }, + { name: "Zulu (South Africa)", code: "zu-ZA" }, +]; + +export default languages; diff --git a/src/vendor/speech-recognizer/ms-speech-recognizer-lang.ts b/src/vendor/speech-recognizer/ms-speech-recognizer-lang.ts new file mode 100644 index 0000000..adec645 --- /dev/null +++ b/src/vendor/speech-recognizer/ms-speech-recognizer-lang.ts @@ -0,0 +1,494 @@ +import type { Language } from "../types"; + +export const languages: Language[] = [ + { + name: "Afrikaans (South Africa)", + code: "af-ZA", + }, + { + name: "Amharic (Ethiopia)", + code: "am-ET", + }, + { + name: "Arabic (Algeria)", + code: "ar-DZ", + }, + { + name: "Arabic (Bahrain)", + code: "ar-BH", + }, + { + name: "Arabic (Egypt)", + code: "ar-EG", + }, + { + name: "Arabic (Iraq)", + code: "ar-IQ", + }, + { + name: "Arabic (Israel)", + code: "ar-IL", + }, + { + name: "Arabic (Jordan)", + code: "ar-JO", + }, + { + name: "Arabic (Kuwait)", + code: "ar-KW", + }, + { + name: "Arabic (Lebanon)", + code: "ar-LB", + }, + { + name: "Arabic (Libya)", + code: "ar-LY", + }, + { + name: "Arabic (Morocco)", + code: "ar-MA", + }, + { + name: "Arabic (Oman)", + code: "ar-OM", + }, + { + name: "Arabic (Qatar)", + code: "ar-QA", + }, + { + name: "Arabic (Saudi Arabia)", + code: "ar-SA", + }, + { + name: "Arabic (Palestinian Authority)", + code: "ar-PS", + }, + { + name: "Arabic (Syria)", + code: "ar-SY", + }, + { + name: "Arabic (Tunisia)", + code: "ar-TN", + }, + { + name: "Arabic (United Arab Emirates)", + code: "ar-AE", + }, + { + name: "Arabic (Yemen)", + code: "ar-YE", + }, + { + name: "Bulgarian (Bulgaria)", + code: "bg-BG", + }, + { + name: "Bengali (India)", + code: "bn-IN", + }, + { + name: "Catalan (Spain)", + code: "ca-ES", + }, + { + name: "Chinese (Cantonese, Traditional)", + code: "zh-HK", + }, + { + name: "Chinese (Mandarin, Simplified)", + code: "zh-CN", + }, + { + name: "Chinese (Taiwanese Mandarin)", + code: "zh-TW", + }, + { + name: "Croatian (Croatia)", + code: "hr-HR", + }, + { + name: "Czech (Czech)", + code: "cs-CZ", + }, + { + name: "Danish (Denmark)", + code: "da-DK", + }, + { + name: "Dutch (Netherlands)", + code: "nl-NL", + }, + { + name: "Dutch (Belgium)", + code: "nl-BE", + }, + { + name: "English (Australia)", + code: "en-AU", + }, + { + name: "English (Canada)", + code: "en-CA", + }, + { + name: "English (Ghana)", + code: "en-GH", + }, + { + name: "English (Hong Kong)", + code: "en-HK", + }, + { + name: "English (India)", + code: "en-IN", + }, + { + name: "English (Ireland)", + code: "en-IE", + }, + { + name: "English (Kenya)", + code: "en-KE", + }, + { + name: "English (New Zealand)", + code: "en-NZ", + }, + { + name: "English (Nigeria)", + code: "en-NG", + }, + { + name: "English (Philippines)", + code: "en-PH", + }, + { + name: "English (Singapore)", + code: "en-SG", + }, + { + name: "English (South Africa)", + code: "en-ZA", + }, + { + name: "English (Tanzania)", + code: "en-TZ", + }, + { + name: "English (United Kingdom)", + code: "en-GB", + }, + { + name: "English (United States)", + code: "en-US", + }, + { + name: "Estonian(Estonia)", + code: "et-EE", + }, + { + name: "Filipino (Philippines)", + code: "fil-PH", + }, + { + name: "Finnish (Finland)", + code: "fi-FI", + }, + { + name: "French (Belgium)", + code: "fr-BE", + }, + { + name: "French (Canada)", + code: "fr-CA", + }, + { + name: "French (France)", + code: "fr-FR", + }, + { + name: "French (Switzerland)", + code: "fr-CH", + }, + { + name: "German (Austria)", + code: "de-AT", + }, + { + name: "German (Switzerland)", + code: "de-CH", + }, + { + name: "German (Germany)", + code: "de-DE", + }, + { + name: "Greek (Greece)", + code: "el-GR", + }, + { + name: "Gujarati (Indian)", + code: "gu-IN", + }, + { + name: "Hebrew (Israel)", + code: "he-IL", + }, + { + name: "Hindi (India)", + code: "hi-IN", + }, + { + name: "Hungarian (Hungary)", + code: "hu-HU", + }, + { + name: "Indonesian (Indonesia)", + code: "id-ID", + }, + { + name: "Icelandic (Iceland)", + code: "is-IS", + }, + { + name: "Irish (Ireland)", + code: "ga-IE", + }, + { + name: "Italian (Italy)", + code: "it-IT", + }, + { + name: "Japanese (Japan)", + code: "ja-JP", + }, + { + name: "Javanese (Indonesia)", + code: "jv-ID", + }, + { + name: "Kannada (India)", + code: "kn-IN", + }, + { + name: "Khmer (Cambodia)", + code: "km-KH", + }, + { + name: "Korean (Korea)", + code: "ko-KR", + }, + { + name: "Latvian (Latvia)", + code: "lv-LV", + }, + { + name: "Lao (Laos)", + code: "lo-LA", + }, + { + name: "Lithuanian (Lithuania)", + code: "lt-LT", + }, + { + name: "Malay (Malaysia)", + code: "ms-MY", + }, + { + name: "Macedonian (North Macedonia)", + code: "mk-MK", + }, + { + name: "Maltese (Malta)", + code: "mt-MT", + }, + { + name: "Marathi (India)", + code: "mr-IN", + }, + { + name: "Burmese (Myanmar)", + code: "my-MM", + }, + { + name: "Norwegian (Bokmål, Norway)", + code: "nb-NO", + }, + { + name: "Persian (Iran)", + code: "fa-IR", + }, + { + name: "Polish (Poland)", + code: "pl-PL", + }, + { + name: "Portuguese (Brazil)", + code: "pt-BR", + }, + { + name: "Portuguese (Portugal)", + code: "pt-PT", + }, + { + name: "Romanian (Romania)", + code: "ro-RO", + }, + { + name: "Russian (Russia)", + code: "ru-RU", + }, + { + name: "Slovak (Slovakia)", + code: "sk-SK", + }, + { + name: "Slovenian (Slovenia)", + code: "sl-SI", + }, + { + name: "Spanish (Argentina)", + code: "es-AR", + }, + { + name: "Spanish (Bolivia)", + code: "es-BO", + }, + { + name: "Spanish (Chile)", + code: "es-CL", + }, + { + name: "Spanish (Colombia)", + code: "es-CO", + }, + { + name: "Spanish (Costa Rica)", + code: "es-CR", + }, + { + name: "Spanish (Cuba)", + code: "es-CU", + }, + { + name: "Spanish (Dominican Republic)", + code: "es-DO", + }, + { + name: "Spanish (Ecuador)", + code: "es-EC", + }, + { + name: "Spanish (El Salvador)", + code: "es-SV", + }, + { + name: "Spanish (Equatorial Guinea)", + code: "es-GQ", + }, + { + name: "Spanish (Guatemala)", + code: "es-GT", + }, + { + name: "Spanish (Honduras)", + code: "es-HN", + }, + { + name: "Spanish (Mexico)", + code: "es-MX", + }, + { + name: "Spanish (Nicaragua)", + code: "es-NI", + }, + { + name: "Spanish (Panama)", + code: "es-PA", + }, + { + name: "Spanish (Paraguay)", + code: "es-PY", + }, + { + name: "Spanish (Peru)", + code: "es-PE", + }, + { + name: "Spanish (Puerto Rico)", + code: "es-PR", + }, + { + name: "Spanish (Spain)", + code: "es-ES", + }, + { + name: "Spanish (Uruguay)", + code: "es-UY", + }, + { + name: "Spanish (USA)", + code: "es-US", + }, + { + name: "Spanish (Venezuela)", + code: "es-VE", + }, + { + name: "Swahili (Kenya)", + code: "sw-KE", + }, + { + name: "Swahili (Tanzania)", + code: "sw-TZ", + }, + { + name: "Sinhala (Sri Lanka)", + code: "si-LK", + }, + { + name: "Swedish (Sweden)", + code: "sv-SE", + }, + { + name: "Serbian (Serbia)", + code: "sr-RS", + }, + { + name: "Tamil (India)", + code: "ta-IN", + }, + { + name: "Telugu (India)", + code: "te-IN", + }, + { + name: "Thai (Thailand)", + code: "th-TH", + }, + { + name: "Turkish (Turkey)", + code: "tr-TR", + }, + { + name: "Ukrainian (Ukraine)", + code: "uk-UA", + }, + { + name: "Uzbek (Uzbekistan)", + code: "uz-UZ", + }, + { + name: "Zulu (South Africa)", + code: "zu-ZA", + }, + { + name: "Vietnamese (Vietnam)", + code: "vi-VN", + }, +]; + +export default languages; diff --git a/src/vendor/speech-synthesis/aws-speech-synthesis-lang.ts b/src/vendor/speech-synthesis/aws-speech-synthesis-lang.ts new file mode 100644 index 0000000..dab72e0 --- /dev/null +++ b/src/vendor/speech-synthesis/aws-speech-synthesis-lang.ts @@ -0,0 +1,217 @@ +import type { VoiceLanguage } from "../types"; + +export const languages: VoiceLanguage[] = [ + { + code: "arb", + name: "Arabic", + voices: [{ value: "Zeina", name: "Zeina (Female)" }], + }, + { + code: "cmn-CN", + name: "Chinese, Mandarin", + voices: [{ value: "Zhiyu", name: "Zhiyu (Female)" }], + }, + { + code: "da-DK", + name: "Danish", + voices: [ + { value: "Naja", name: "Naja (Female)" }, + { value: "Mads", name: "Mads (Male)" }, + ], + }, + { + code: "nl-NL", + name: "Dutch", + voices: [ + { value: "Lotte", name: "Lotte (Female)" }, + { value: "Ruben", name: "Ruben (Male)" }, + ], + }, + { + code: "en-AU", + name: "English (Australian)", + voices: [ + { value: "Nicole", name: "Nicole (Female)" }, + { value: "Russell", name: "Russell (Male)" }, + ], + }, + { + code: "en-GB", + name: "English (British)", + voices: [ + { value: "Amy", name: "Amy (Female)" }, + { value: "Emma", name: "Emma (Female)" }, + { value: "Brian", name: "Brian (Male)" }, + ], + }, + { + code: "en-IN", + name: "English (Indian)", + voices: [ + { value: "Aditi", name: "Aditi (Female)" }, + { value: "Raveena", name: "Raveena (Female)" }, + ], + }, + { + code: "en-US", + name: "English (US)", + voices: [ + { value: "Joanna", name: "Joanna (Female)" }, + { value: "Kendra", name: "Kendra (Female)" }, + { value: "Kimberly", name: "Kimberly (Female)" }, + { value: "Ivy", name: "Ivy (Female child)" }, + { value: "Salli", name: "Salli (Female)" }, + { value: "Joey", name: "Joey (Male)" }, + { value: "Matthew", name: "Matthew (Male)" }, + { value: "Justin", name: "Justin (Male child)" }, + ], + }, + { + code: "en-GB-WLS", + name: "English (Welsh)", + voices: [{ value: "Geraint", name: "Geraint (Male)" }], + }, + { + code: "fr-FR", + name: "French", + voices: [ + { value: "Celine", name: "Céline (Female)" }, + { value: "Lea", name: "Léa (Female)" }, + { value: "Mathieu", name: "Mathieu (Male)" }, + ], + }, + { + code: "fr-CA", + name: "French (Canadian)", + voices: [{ value: "Chantal", name: "Chantal (Female)" }], + }, + { + code: "de-DE", + name: "German", + voices: [ + { value: "Marlene", name: "Marlene (Female)" }, + { value: "Vicki", name: "Vicki (Female)" }, + { value: "Hans", name: "Hans (Male)" }, + ], + }, + { + code: "hi-IN", + name: "Hindi", + voices: [{ value: "Aditi", name: "Aditi (Female)" }], + }, + { + code: "is-IS", + name: "Icelandic", + voices: [ + { value: "Dora", name: "Dóra (Female)" }, + { value: "Karl", name: "Karl (Male)" }, + ], + }, + { + code: "it-IT", + name: "Italian", + voices: [ + { value: "Carla", name: "Carla (Female)" }, + { value: "Bianca", name: "Bianca (Female)" }, + { value: "Giorgio", name: "Giorgio (Male)" }, + ], + }, + { + code: "ja-JP", + name: "Japanese", + voices: [ + { value: "Mizuki", name: "Mizuki (Female)" }, + { value: "Takumi", name: "Takumi (Male)" }, + ], + }, + { + code: "ko-KR", + name: "Korean", + voices: [{ value: "Seoyeon", name: "Seoyeon (Female)" }], + }, + { + code: "nb-NO", + name: "Norwegian", + voices: [{ value: "Liv", name: "Liv (Female)" }], + }, + { + code: "pl-PL", + name: "Polish", + voices: [ + { value: "Ewa", name: "Ewa (Female)" }, + { value: "Maja", name: "Maja (Female)" }, + { value: "Jacek", name: "Jacek (Male)" }, + { value: "Jan", name: "Jan (Male)" }, + ], + }, + { + code: "pt-BR", + name: "Portuguese (Brazilian)", + voices: [ + { value: "Camila", name: "Camila (Female)" }, + { value: "Vitoria", name: "Vitória (Female)" }, + { value: "Ricardo", name: "Ricardo (Male)" }, + ], + }, + { + code: "pt-PT", + name: "Portuguese (European)", + voices: [ + { value: "Ines", name: "Inês (Female)" }, + { value: "Cristiano", name: "Cristiano (Male)" }, + ], + }, + { + code: "ro-RO", + name: "Romanian", + voices: [{ value: "Carmen", name: "Carmen (Female)" }], + }, + { + code: "ru-RU", + name: "Russian", + voices: [ + { value: "Tatyana", name: "Tatyana (Female)" }, + { value: "Maxim", name: "Maxim (Male)" }, + ], + }, + { + code: "es-ES", + name: "Spanish (European)", + voices: [ + { value: "Conchita", name: "Conchita (Female)" }, + { value: "Lucia", name: "Lucia (Female)" }, + { value: "Enrique", name: "Enrique (Male)" }, + ], + }, + { + code: "es-MX", + name: "Spanish (Mexican)", + voices: [{ value: "Mia", name: "Mia (Female)" }], + }, + { + code: "es-US", + name: "Spanish (US)", + voices: [ + { value: "Lupe", name: "Lupe (Female)" }, + { value: "Penelope", name: "Penélope (Female)" }, + { value: "Miguel", name: "Miguel (Male)" }, + ], + }, + { + code: "sv-SE", + name: "Swedish", + voices: [{ value: "Astrid", name: "Astrid (Female)" }], + }, + { + code: "tr-TR", + name: "Turkish", + voices: [{ value: "Filiz", name: "Filiz (Female)" }], + }, + { + code: "cy-GB", + name: "Welsh", + voices: [{ value: "Gwyneth", name: "Gwyneth (Female)" }], + }, +]; + +export default languages; diff --git a/src/vendor/speech-synthesis/google-speech-synthesis-lang.ts b/src/vendor/speech-synthesis/google-speech-synthesis-lang.ts new file mode 100644 index 0000000..2c0ab32 --- /dev/null +++ b/src/vendor/speech-synthesis/google-speech-synthesis-lang.ts @@ -0,0 +1,412 @@ +import type { VoiceLanguage } from "../types"; + +export const languages: VoiceLanguage[] = [ + { + code: "ar-XA", + name: "Arabic", + voices: [ + { value: "ar-XA-Standard-A", name: "Standard-A (Female)" }, + { value: "ar-XA-Standard-B", name: "Standard-B (Male)" }, + { value: "ar-XA-Standard-C", name: "Standard-C (Male)" }, + { value: "ar-XA-Standard-D", name: "Standard-D (Female)" }, + { value: "ar-XA-Wavenet-A", name: "Wavenet-A (Female)" }, + { value: "ar-XA-Wavenet-B", name: "Wavenet-B (Male)" }, + { value: "ar-XA-Wavenet-C", name: "Wavenet-C (Male)" }, + ], + }, + { + code: "cs-CZ", + name: "Czech (Czech Republic)", + voices: [ + { value: "cs-CZ-Standard-A", name: "Standard-A (Female)" }, + { value: "cs-CZ-Wavenet-A", name: "Wavenet-A (Female)" }, + ], + }, + { + code: "da-DK", + name: "Danish (Denmark)", + voices: [ + { value: "da-DK-Standard-A", name: "Standard-A (Female)" }, + { value: "da-DK-Wavenet-A", name: "Wavenet-A (Female)" }, + ], + }, + { + code: "nl-NL", + name: "Dutch (Netherlands)", + voices: [ + { value: "nl-NL-Standard-A", name: "Standard-A (Female)" }, + { value: "nl-NL-Standard-B", name: "Standard-B (Male)" }, + { value: "nl-NL-Standard-C", name: "Standard-C (Male)" }, + { value: "nl-NL-Standard-D", name: "Standard-D (Female)" }, + { value: "nl-NL-Standard-E", name: "Standard-E (Female)" }, + { value: "nl-NL-Wavenet-A", name: "Wavenet-A (Female)" }, + { value: "nl-NL-Wavenet-B", name: "Wavenet-B (Male)" }, + { value: "nl-NL-Wavenet-C", name: "Wavenet-C (Male)" }, + { value: "nl-NL-Wavenet-D", name: "Wavenet-D (Female)" }, + { value: "nl-NL-Wavenet-E", name: "Wavenet-E (Female)" }, + ], + }, + { + code: "en-AU", + name: "English (Australia)", + voices: [ + { value: "en-AU-Standard-A", name: "Standard-A (Female)" }, + { value: "en-AU-Standard-B", name: "Standard-B (Male)" }, + { value: "en-AU-Standard-C", name: "Standard-C (Female)" }, + { value: "en-AU-Standard-D", name: "Standard-D (Male)" }, + { value: "en-AU-Wavenet-A", name: "Wavenet-A (Female)" }, + { value: "en-AU-Wavenet-B", name: "Wavenet-B (Male)" }, + { value: "en-AU-Wavenet-C", name: "Wavenet-C (Female)" }, + { value: "en-AU-Wavenet-D", name: "Wavenet-D (Male)" }, + ], + }, + { + code: "en-IN", + name: "English (India)", + voices: [ + { value: "en-IN-Standard-A", name: "Standard-A (Female)" }, + { value: "en-IN-Standard-B", name: "Standard-B (Male)" }, + { value: "en-IN-Standard-C", name: "Standard-C (Male)" }, + { value: "en-IN-Standard-D", name: "Standard-D (Female)" }, + { value: "en-IN-Wavenet-A", name: "Wavenet-A (Female)" }, + { value: "en-IN-Wavenet-B", name: "Wavenet-B (Male)" }, + { value: "en-IN-Wavenet-C", name: "Wavenet-C (Male)" }, + { value: "en-IN-Wavenet-D", name: "Wavenet-D (Female)" }, + ], + }, + { + code: "en-GB", + name: "English (UK)", + voices: [ + { value: "en-GB-Standard-A", name: "Standard-A (Female)" }, + { value: "en-GB-Standard-B", name: "Standard-B (Male)" }, + { value: "en-GB-Standard-C", name: "Standard-C (Female)" }, + { value: "en-GB-Standard-D", name: "Standard-D (Male)" }, + { value: "en-GB-Wavenet-A", name: "Wavenet-A (Female)" }, + { value: "en-GB-Wavenet-B", name: "Wavenet-B (Male)" }, + { value: "en-GB-Wavenet-C", name: "Wavenet-C (Female)" }, + { value: "en-GB-Wavenet-D", name: "Wavenet-D (Male)" }, + ], + }, + { + code: "en-US", + name: "English (US)", + voices: [ + { value: "en-US-Standard-B", name: "Standard-B (Male)" }, + { value: "en-US-Standard-C", name: "Standard-C (Female)" }, + { value: "en-US-Standard-D", name: "Standard-D (Male)" }, + { value: "en-US-Standard-E", name: "Standard-E (Female)" }, + { value: "en-US-Wavenet-A", name: "Wavenet-A (Male)" }, + { value: "en-US-Wavenet-B", name: "Wavenet-B (Male)" }, + { value: "en-US-Wavenet-C", name: "Wavenet-C (Female)" }, + { value: "en-US-Wavenet-D", name: "Wavenet-D (Male)" }, + { value: "en-US-Wavenet-E", name: "Wavenet-E (Female)" }, + { value: "en-US-Wavenet-F", name: "Wavenet-F (Female)" }, + ], + }, + { + code: "fil-PH", + name: "Filipino (Philippines)", + voices: [ + { value: "fil-PH-Standard-A", name: "Standard-A (Female)" }, + { value: "fil-PH-Wavenet-A", name: "Wavenet-A (Female)" }, + ], + }, + { + code: "fi-FI", + name: "Finnish (Finland)", + voices: [ + { value: "fi-FI-Standard-A", name: "Standard-A (Female)" }, + { value: "fi-FI-Wavenet-A", name: "Wavenet-A (Female)" }, + ], + }, + { + code: "fr-CA", + name: "French (Canada)", + voices: [ + { value: "fr-CA-Standard-A", name: "Standard-A (Female)" }, + { value: "fr-CA-Standard-B", name: "Standard-B (Male)" }, + { value: "fr-CA-Standard-C", name: "Standard-C (Female)" }, + { value: "fr-CA-Standard-D", name: "Standard-D (Male)" }, + { value: "fr-CA-Wavenet-A", name: "Wavenet-A (Female)" }, + { value: "fr-CA-Wavenet-B", name: "Wavenet-B (Male)" }, + { value: "fr-CA-Wavenet-C", name: "Wavenet-C (Female)" }, + { value: "fr-CA-Wavenet-D", name: "Wavenet-D (Male)" }, + ], + }, + { + code: "fr-FR", + name: "French (France)", + voices: [ + { value: "fr-FR-Standard-A", name: "Standard-A (Female)" }, + { value: "fr-FR-Standard-B", name: "Standard-B (Male)" }, + { value: "fr-FR-Standard-C", name: "Standard-C (Female)" }, + { value: "fr-FR-Standard-D", name: "Standard-D (Male)" }, + { value: "fr-FR-Standard-E", name: "Standard-E (Female)" }, + { value: "fr-FR-Wavenet-A", name: "Wavenet-A (Female)" }, + { value: "fr-FR-Wavenet-B", name: "Wavenet-B (Male)" }, + { value: "fr-FR-Wavenet-C", name: "Wavenet-C (Female)" }, + { value: "fr-FR-Wavenet-D", name: "Wavenet-D (Male)" }, + { value: "fr-FR-Wavenet-E", name: "Wavenet-E (Female)" }, + ], + }, + { + code: "de-DE", + name: "German (Germany)", + voices: [ + { value: "de-DE-Standard-A", name: "Standard-A (Female)" }, + { value: "de-DE-Standard-B", name: "Standard-B (Male)" }, + { value: "de-DE-Standard-E", name: "Standard-E (Male)" }, + { value: "de-DE-Standard-F", name: "Standard-F (Female)" }, + { value: "de-DE-Wavenet-A", name: "Wavenet-A (Female)" }, + { value: "de-DE-Wavenet-B", name: "Wavenet-B (Male)" }, + { value: "de-DE-Wavenet-C", name: "Wavenet-C (Female)" }, + { value: "de-DE-Wavenet-D", name: "Wavenet-D (Male)" }, + { value: "de-DE-Wavenet-E", name: "Wavenet-E (Male)" }, + { value: "de-DE-Wavenet-F", name: "Wavenet-F (Female)" }, + ], + }, + { + code: "el-GR", + name: "Greek (Greece)", + voices: [ + { value: "el-GR-Standard-A", name: "Standard-A (Female)" }, + { value: "el-GR-Wavenet-A", name: "Wavenet-A (Female)" }, + ], + }, + { + code: "hi-IN", + name: "Hindi (India)", + voices: [ + { value: "hi-IN-Standard-A", name: "Standard-A (Female)" }, + { value: "hi-IN-Standard-B", name: "Standard-B (Male)" }, + { value: "hi-IN-Standard-C", name: "Standard-C (Male)" }, + { value: "hi-IN-Standard-D", name: "Standard-D (Female)" }, + { value: "hi-IN-Wavenet-A", name: "Wavenet-A (Female)" }, + { value: "hi-IN-Wavenet-B", name: "Wavenet-B (Male)" }, + { value: "hi-IN-Wavenet-C", name: "Wavenet-C (Male)" }, + { value: "hi-IN-Wavenet-D", name: "Wavenet-D (Female)" }, + ], + }, + { + code: "hu-HU", + name: "Hungarian (Hungary)", + voices: [ + { value: "hu-HU-Standard-A", name: "Standard-A (Female)" }, + { value: "hu-HU-Wavenet-A", name: "Wavenet-A (Female)" }, + ], + }, + { + code: "id-ID", + name: "Indonesian (Indonesia)", + voices: [ + { value: "id-ID-Standard-A", name: "Standard-A (Female)" }, + { value: "id-ID-Standard-B", name: "Standard-B (Male)" }, + { value: "id-ID-Standard-C", name: "Standard-C (Male)" }, + { value: "id-ID-Standard-D", name: "Standard-D (Female)" }, + { value: "id-ID-Wavenet-A", name: "Wavenet-A (Female)" }, + { value: "id-ID-Wavenet-B", name: "Wavenet-B (Male)" }, + { value: "id-ID-Wavenet-C", name: "Wavenet-C (Male)" }, + { value: "id-ID-Wavenet-D", name: "Wavenet-D (Female)" }, + ], + }, + { + code: "it-IT", + name: "Italian (Italy)", + voices: [ + { value: "it-IT-Standard-A", name: "Standard-A (Female)" }, + { value: "it-IT-Standard-B", name: "Standard-B (Female)" }, + { value: "it-IT-Standard-C", name: "Standard-C (Male)" }, + { value: "it-IT-Standard-D", name: "Standard-D (Male)" }, + { value: "it-IT-Wavenet-A", name: "Wavenet-A (Female)" }, + { value: "it-IT-Wavenet-B", name: "Wavenet-B (Female)" }, + { value: "it-IT-Wavenet-C", name: "Wavenet-C (Male)" }, + { value: "it-IT-Wavenet-D", name: "Wavenet-D (Male)" }, + ], + }, + { + code: "ja-JP", + name: "Japanese (Japan)", + voices: [ + { value: "ja-JP-Standard-A", name: "Standard-A (Female)" }, + { value: "ja-JP-Standard-B", name: "Standard-B (Female)" }, + { value: "ja-JP-Standard-C", name: "Standard-C (Male)" }, + { value: "ja-JP-Standard-D", name: "Standard-D (Male)" }, + { value: "ja-JP-Wavenet-A", name: "Wavenet-A (Female)" }, + { value: "ja-JP-Wavenet-B", name: "Wavenet-B (Female)" }, + { value: "ja-JP-Wavenet-C", name: "Wavenet-C (Male)" }, + { value: "ja-JP-Wavenet-D", name: "Wavenet-D (Male)" }, + ], + }, + { + code: "ko-KR", + name: "Korean (South Korea)", + voices: [ + { value: "ko-KR-Standard-A", name: "Standard-A (Female)" }, + { value: "ko-KR-Standard-B", name: "Standard-B (Female)" }, + { value: "ko-KR-Standard-C", name: "Standard-C (Male)" }, + { value: "ko-KR-Standard-D", name: "Standard-D (Male)" }, + { value: "ko-KR-Wavenet-A", name: "Wavenet-A (Female)" }, + { value: "ko-KR-Wavenet-B", name: "Wavenet-B (Female)" }, + { value: "ko-KR-Wavenet-C", name: "Wavenet-C (Male)" }, + { value: "ko-KR-Wavenet-D", name: "Wavenet-D (Male)" }, + ], + }, + { + code: "cmn-CN", + name: "Mandarin Chinese", + voices: [ + { value: "cmn-CN-Standard-A", name: "Standard-A (Female)" }, + { value: "cmn-CN-Standard-B", name: "Standard-B (Male)" }, + { value: "cmn-CN-Standard-C", name: "Standard-C (Male)" }, + { value: "cmn-CN-Standard-D", name: "Standard-D (Female)" }, + { value: "cmn-CN-Wavenet-A", name: "Wavenet-A (Female)" }, + { value: "cmn-CN-Wavenet-B", name: "Wavenet-B (Male)" }, + { value: "cmn-CN-Wavenet-C", name: "Wavenet-C (Male)" }, + { value: "cmn-CN-Wavenet-D", name: "Wavenet-D (Female)" }, + ], + }, + { + code: "cmn-TW", + name: "Mandarin Chinese (Traditional)", + voices: [ + { value: "cmn-TW-Standard-A-Alpha", name: "Standard-A-Alpha (Female)" }, + { value: "cmn-TW-Standard-B-Alpha", name: "Standard-B-Alpha (Male)" }, + { value: "cmn-TW-Standard-C-Alpha", name: "Standard-C-Alpha (Male)" }, + { value: "cmn-TW-Wavenet-A-Alpha", name: "Wavenet-A-Alpha (Female)" }, + { value: "cmn-TW-Wavenet-B-Alpha", name: "Wavenet-B-Alpha (Male)" }, + { value: "cmn-TW-Wavenet-C-Alpha", name: "Wavenet-C-Alpha (Male)" }, + ], + }, + { + code: "nb-NO", + name: "Norwegian (Norway)", + voices: [ + { value: "nb-NO-Standard-A", name: "Standard-A (Female)" }, + { value: "nb-NO-Standard-B", name: "Standard-B (Male)" }, + { value: "nb-NO-Standard-C", name: "Standard-C (Female)" }, + { value: "nb-NO-Standard-D", name: "Standard-D (Male)" }, + { value: "nb-no-Standard-E", name: "Standard-E (Female)" }, + { value: "nb-NO-Wavenet-A", name: "Wavenet-A (Female)" }, + { value: "nb-NO-Wavenet-B", name: "Wavenet-B (Male)" }, + { value: "nb-NO-Wavenet-C", name: "Wavenet-C (Female)" }, + { value: "nb-NO-Wavenet-D", name: "Wavenet-D (Male)" }, + { value: "nb-no-Wavenet-E", name: "Wavenet-E (Female)" }, + ], + }, + { + code: "pl-PL", + name: "Polish (Poland)", + voices: [ + { value: "pl-PL-Standard-A", name: "Standard-A (Female)" }, + { value: "pl-PL-Standard-B", name: "Standard-B (Male)" }, + { value: "pl-PL-Standard-C", name: "Standard-C (Male)" }, + { value: "pl-PL-Standard-D", name: "Standard-D (Female)" }, + { value: "pl-PL-Standard-E", name: "Standard-E (Female)" }, + { value: "pl-PL-Wavenet-A", name: "Wavenet-A (Female)" }, + { value: "pl-PL-Wavenet-B", name: "Wavenet-B (Male)" }, + { value: "pl-PL-Wavenet-C", name: "Wavenet-C (Male)" }, + { value: "pl-PL-Wavenet-D", name: "Wavenet-D (Female)" }, + { value: "pl-PL-Wavenet-E", name: "Wavenet-E (Female)" }, + ], + }, + { + code: "pt-BR", + name: "Portuguese (Brazil)", + voices: [ + { value: "pt-BR-Standard-A", name: "Standard-A (Female)" }, + { value: "pt-BR-Wavenet-A", name: "Wavenet-A (Female)" }, + ], + }, + { + code: "pt-PT", + name: "Portuguese (Portugal)", + voices: [ + { value: "pt-PT-Standard-A", name: "Standard-A (Female)" }, + { value: "pt-PT-Standard-B", name: "Standard-B (Male)" }, + { value: "pt-PT-Standard-C", name: "Standard-C (Male)" }, + { value: "pt-PT-Standard-D", name: "Standard-D (Female)" }, + { value: "pt-PT-Wavenet-A", name: "Wavenet-A (Female)" }, + { value: "pt-PT-Wavenet-B", name: "Wavenet-B (Male)" }, + { value: "pt-PT-Wavenet-C", name: "Wavenet-C (Male)" }, + { value: "pt-PT-Wavenet-D", name: "Wavenet-D (Female)" }, + ], + }, + { + code: "ru-RU", + name: "Russian (Russia)", + voices: [ + { value: "ru-RU-Standard-A", name: "Standard-A (Female)" }, + { value: "ru-RU-Standard-B", name: "Standard-B (Male)" }, + { value: "ru-RU-Standard-C", name: "Standard-C (Female)" }, + { value: "ru-RU-Standard-D", name: "Standard-D (Male)" }, + { value: "ru-RU-Standard-E", name: "Standard-E (Female)" }, + { value: "ru-RU-Wavenet-A", name: "Wavenet-A (Female)" }, + { value: "ru-RU-Wavenet-B", name: "Wavenet-B (Male)" }, + { value: "ru-RU-Wavenet-C", name: "Wavenet-C (Female)" }, + { value: "ru-RU-Wavenet-D", name: "Wavenet-D (Male)" }, + { value: "ru-RU-Wavenet-E", name: "Wavenet-E (Female)" }, + ], + }, + { + code: "sk-SK", + name: "Slovak (Slovakia)", + voices: [ + { value: "sk-SK-Standard-A", name: "Standard-A (Female)" }, + { value: "sk-SK-Wavenet-A", name: "Wavenet-A (Female)" }, + ], + }, + { + code: "es-ES", + name: "Spanish (Spain)", + voices: [{ value: "es-ES-Standard-A", name: "Standard-A (Female)" }], + }, + { + code: "sv-SE", + name: "Swedish (Sweden)", + voices: [ + { value: "sv-SE-Standard-A", name: "Standard-A (Female)" }, + { value: "sv-SE-Wavenet-A", name: "Wavenet-A (Female)" }, + ], + }, + { + code: "tr-TR", + name: "Turkish (Turkey)", + voices: [ + { value: "tr-TR-Standard-A", name: "Standard-A (Female)" }, + { value: "tr-TR-Standard-B", name: "Standard-B (Male)" }, + { value: "tr-TR-Standard-C", name: "Standard-C (Female)" }, + { value: "tr-TR-Standard-D", name: "Standard-D (Female)" }, + { value: "tr-TR-Standard-E", name: "Standard-E (Male)" }, + { value: "tr-TR-Wavenet-A", name: "Wavenet-A (Female)" }, + { value: "tr-TR-Wavenet-B", name: "Wavenet-B (Male)" }, + { value: "tr-TR-Wavenet-C", name: "Wavenet-C (Female)" }, + { value: "tr-TR-Wavenet-D", name: "Wavenet-D (Female)" }, + { value: "tr-TR-Wavenet-E", name: "Wavenet-E (Male)" }, + ], + }, + { + code: "uk-UA", + name: "Ukrainian (Ukraine)", + voices: [ + { value: "uk-UA-Standard-A", name: "Standard-A (Female)" }, + { value: "uk-UA-Wavenet-A", name: "Wavenet-A (Female)" }, + ], + }, + { + code: "vi-VN", + name: "Vietnamese (Vietnam)", + voices: [ + { value: "vi-VN-Standard-A", name: "Standard-A (Female)" }, + { value: "vi-VN-Standard-B", name: "Standard-B (Male)" }, + { value: "vi-VN-Standard-C", name: "Standard-C (Female)" }, + { value: "vi-VN-Standard-D", name: "Standard-D (Male)" }, + { value: "vi-VN-Wavenet-A", name: "Wavenet-A (Female)" }, + { value: "vi-VN-Wavenet-B", name: "Wavenet-B (Male)" }, + { value: "vi-VN-Wavenet-C", name: "Wavenet-C (Female)" }, + { value: "vi-VN-Wavenet-D", name: "Wavenet-D (Male)" }, + ], + }, +]; + +export default languages; diff --git a/src/vendor/speech-synthesis/ms-speech-synthesis-lang.ts b/src/vendor/speech-synthesis/ms-speech-synthesis-lang.ts new file mode 100644 index 0000000..5bab3c7 --- /dev/null +++ b/src/vendor/speech-synthesis/ms-speech-synthesis-lang.ts @@ -0,0 +1,30 @@ +import { rawData } from "./ms-speech-synthesis-raw"; + +import type { VoiceLanguage } from "../types"; + +export const languages: VoiceLanguage[] = []; + +rawData.forEach((data) => { + const lang = languages.find((l) => { + return l.code === data.Locale; + }); + + if (!lang) { + languages.push({ + code: data.Locale, + name: data.LocaleName, + voices: rawData + .filter((d) => { + return d.Locale === data.Locale; + }) + .map((d) => { + return { + value: d.ShortName, + name: `${d.DisplayName} (${d.Gender})`, + }; + }), + }); + } +}); + +export default languages; diff --git a/src/vendor/speech-synthesis/ms-speech-synthesis-raw.ts b/src/vendor/speech-synthesis/ms-speech-synthesis-raw.ts new file mode 100644 index 0000000..7840aa7 --- /dev/null +++ b/src/vendor/speech-synthesis/ms-speech-synthesis-raw.ts @@ -0,0 +1,4404 @@ +import type { MSRawSpeech } from "../types"; + +export const rawData: MSRawSpeech[] = [ + { + Name: "Microsoft Server Speech Text to Speech Voice (af-ZA, AdriNeural)", + DisplayName: "Adri", + LocalName: "Adri", + ShortName: "af-ZA-AdriNeural", + Gender: "Female", + Locale: "af-ZA", + LocaleName: "Afrikaans (South Africa)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (af-ZA, WillemNeural)", + DisplayName: "Willem", + LocalName: "Willem", + ShortName: "af-ZA-WillemNeural", + Gender: "Male", + Locale: "af-ZA", + LocaleName: "Afrikaans (South Africa)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (am-ET, AmehaNeural)", + DisplayName: "Ameha", + LocalName: "አምሀ", + ShortName: "am-ET-AmehaNeural", + Gender: "Male", + Locale: "am-ET", + LocaleName: "Amharic (Ethiopia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (am-ET, MekdesNeural)", + DisplayName: "Mekdes", + LocalName: "መቅደስ", + ShortName: "am-ET-MekdesNeural", + Gender: "Female", + Locale: "am-ET", + LocaleName: "Amharic (Ethiopia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ar-AE, FatimaNeural)", + DisplayName: "Fatima", + LocalName: "فاطمة", + ShortName: "ar-AE-FatimaNeural", + Gender: "Female", + Locale: "ar-AE", + LocaleName: "Arabic (United Arab Emirates)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ar-AE, HamdanNeural)", + DisplayName: "Hamdan", + LocalName: "حمدان", + ShortName: "ar-AE-HamdanNeural", + Gender: "Male", + Locale: "ar-AE", + LocaleName: "Arabic (United Arab Emirates)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ar-BH, AliNeural)", + DisplayName: "Ali", + LocalName: "علي", + ShortName: "ar-BH-AliNeural", + Gender: "Male", + Locale: "ar-BH", + LocaleName: "Arabic (Bahrain)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ar-BH, LailaNeural)", + DisplayName: "Laila", + LocalName: "ليلى", + ShortName: "ar-BH-LailaNeural", + Gender: "Female", + Locale: "ar-BH", + LocaleName: "Arabic (Bahrain)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ar-DZ, AminaNeural)", + DisplayName: "Amina", + LocalName: "أمينة", + ShortName: "ar-DZ-AminaNeural", + Gender: "Female", + Locale: "ar-DZ", + LocaleName: "Arabic (Algeria)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ar-DZ, IsmaelNeural)", + DisplayName: "Ismael", + LocalName: "إسماعيل", + ShortName: "ar-DZ-IsmaelNeural", + Gender: "Male", + Locale: "ar-DZ", + LocaleName: "Arabic (Algeria)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ar-EG, SalmaNeural)", + DisplayName: "Salma", + LocalName: "سلمى", + ShortName: "ar-EG-SalmaNeural", + Gender: "Female", + Locale: "ar-EG", + LocaleName: "Arabic (Egypt)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ar-EG, ShakirNeural)", + DisplayName: "Shakir", + LocalName: "شاكر", + ShortName: "ar-EG-ShakirNeural", + Gender: "Male", + Locale: "ar-EG", + LocaleName: "Arabic (Egypt)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ar-IQ, BasselNeural)", + DisplayName: "Bassel", + LocalName: "باسل", + ShortName: "ar-IQ-BasselNeural", + Gender: "Male", + Locale: "ar-IQ", + LocaleName: "Arabic (Iraq)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ar-IQ, RanaNeural)", + DisplayName: "Rana", + LocalName: "رنا", + ShortName: "ar-IQ-RanaNeural", + Gender: "Female", + Locale: "ar-IQ", + LocaleName: "Arabic (Iraq)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ar-JO, SanaNeural)", + DisplayName: "Sana", + LocalName: "سناء", + ShortName: "ar-JO-SanaNeural", + Gender: "Female", + Locale: "ar-JO", + LocaleName: "Arabic (Jordan)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ar-JO, TaimNeural)", + DisplayName: "Taim", + LocalName: "تيم", + ShortName: "ar-JO-TaimNeural", + Gender: "Male", + Locale: "ar-JO", + LocaleName: "Arabic (Jordan)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ar-KW, FahedNeural)", + DisplayName: "Fahed", + LocalName: "فهد", + ShortName: "ar-KW-FahedNeural", + Gender: "Male", + Locale: "ar-KW", + LocaleName: "Arabic (Kuwait)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ar-KW, NouraNeural)", + DisplayName: "Noura", + LocalName: "نورا", + ShortName: "ar-KW-NouraNeural", + Gender: "Female", + Locale: "ar-KW", + LocaleName: "Arabic (Kuwait)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ar-LY, ImanNeural)", + DisplayName: "Iman", + LocalName: "إيمان", + ShortName: "ar-LY-ImanNeural", + Gender: "Female", + Locale: "ar-LY", + LocaleName: "Arabic (Libya)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ar-LY, OmarNeural)", + DisplayName: "Omar", + LocalName: "أحمد", + ShortName: "ar-LY-OmarNeural", + Gender: "Male", + Locale: "ar-LY", + LocaleName: "Arabic (Libya)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ar-MA, JamalNeural)", + DisplayName: "Jamal", + LocalName: "جمال", + ShortName: "ar-MA-JamalNeural", + Gender: "Male", + Locale: "ar-MA", + LocaleName: "Arabic (Morocco)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ar-MA, MounaNeural)", + DisplayName: "Mouna", + LocalName: "منى", + ShortName: "ar-MA-MounaNeural", + Gender: "Female", + Locale: "ar-MA", + LocaleName: "Arabic (Morocco)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ar-QA, AmalNeural)", + DisplayName: "Amal", + LocalName: "أمل", + ShortName: "ar-QA-AmalNeural", + Gender: "Female", + Locale: "ar-QA", + LocaleName: "Arabic (Qatar)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ar-QA, MoazNeural)", + DisplayName: "Moaz", + LocalName: "معاذ", + ShortName: "ar-QA-MoazNeural", + Gender: "Male", + Locale: "ar-QA", + LocaleName: "Arabic (Qatar)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ar-SA, HamedNeural)", + DisplayName: "Hamed", + LocalName: "حامد", + ShortName: "ar-SA-HamedNeural", + Gender: "Male", + Locale: "ar-SA", + LocaleName: "Arabic (Saudi Arabia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ar-SA, ZariyahNeural)", + DisplayName: "Zariyah", + LocalName: "زارية", + ShortName: "ar-SA-ZariyahNeural", + Gender: "Female", + Locale: "ar-SA", + LocaleName: "Arabic (Saudi Arabia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ar-SY, AmanyNeural)", + DisplayName: "Amany", + LocalName: "أماني", + ShortName: "ar-SY-AmanyNeural", + Gender: "Female", + Locale: "ar-SY", + LocaleName: "Arabic (Syria)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ar-SY, LaithNeural)", + DisplayName: "Laith", + LocalName: "ليث", + ShortName: "ar-SY-LaithNeural", + Gender: "Male", + Locale: "ar-SY", + LocaleName: "Arabic (Syria)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ar-TN, HediNeural)", + DisplayName: "Hedi", + LocalName: "هادي", + ShortName: "ar-TN-HediNeural", + Gender: "Male", + Locale: "ar-TN", + LocaleName: "Arabic (Tunisia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ar-TN, ReemNeural)", + DisplayName: "Reem", + LocalName: "ريم", + ShortName: "ar-TN-ReemNeural", + Gender: "Female", + Locale: "ar-TN", + LocaleName: "Arabic (Tunisia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ar-YE, MaryamNeural)", + DisplayName: "Maryam", + LocalName: "مريم", + ShortName: "ar-YE-MaryamNeural", + Gender: "Female", + Locale: "ar-YE", + LocaleName: "Arabic (Yemen)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ar-YE, SalehNeural)", + DisplayName: "Saleh", + LocalName: "صالح", + ShortName: "ar-YE-SalehNeural", + Gender: "Male", + Locale: "ar-YE", + LocaleName: "Arabic (Yemen)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (bg-BG, BorislavNeural)", + DisplayName: "Borislav", + LocalName: "Борислав", + ShortName: "bg-BG-BorislavNeural", + Gender: "Male", + Locale: "bg-BG", + LocaleName: "Bulgarian (Bulgaria)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (bg-BG, KalinaNeural)", + DisplayName: "Kalina", + LocalName: "Калина", + ShortName: "bg-BG-KalinaNeural", + Gender: "Female", + Locale: "bg-BG", + LocaleName: "Bulgarian (Bulgaria)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (bn-BD, NabanitaNeural)", + DisplayName: "Nabanita", + LocalName: "নবনীতা", + ShortName: "bn-BD-NabanitaNeural", + Gender: "Female", + Locale: "bn-BD", + LocaleName: "Bangla (Bangladesh)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (bn-BD, PradeepNeural)", + DisplayName: "Pradeep", + LocalName: "প্রদ্বীপ", + ShortName: "bn-BD-PradeepNeural", + Gender: "Male", + Locale: "bn-BD", + LocaleName: "Bangla (Bangladesh)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (bn-IN, BashkarNeural)", + DisplayName: "Bashkar", + LocalName: "ভাস্কর", + ShortName: "bn-IN-BashkarNeural", + Gender: "Male", + Locale: "bn-IN", + LocaleName: "Bengali (India)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (bn-IN, TanishaaNeural)", + DisplayName: "Tanishaa", + LocalName: "তানিশা", + ShortName: "bn-IN-TanishaaNeural", + Gender: "Female", + Locale: "bn-IN", + LocaleName: "Bengali (India)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ca-ES, JoanaNeural)", + DisplayName: "Joana", + LocalName: "Joana", + ShortName: "ca-ES-JoanaNeural", + Gender: "Female", + Locale: "ca-ES", + LocaleName: "Catalan (Spain)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ca-ES, AlbaNeural)", + DisplayName: "Alba", + LocalName: "Alba", + ShortName: "ca-ES-AlbaNeural", + Gender: "Female", + Locale: "ca-ES", + LocaleName: "Catalan (Spain)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ca-ES, EnricNeural)", + DisplayName: "Enric", + LocalName: "Enric", + ShortName: "ca-ES-EnricNeural", + Gender: "Male", + Locale: "ca-ES", + LocaleName: "Catalan (Spain)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (cs-CZ, AntoninNeural)", + DisplayName: "Antonin", + LocalName: "Antonín", + ShortName: "cs-CZ-AntoninNeural", + Gender: "Male", + Locale: "cs-CZ", + LocaleName: "Czech (Czech)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (cs-CZ, VlastaNeural)", + DisplayName: "Vlasta", + LocalName: "Vlasta", + ShortName: "cs-CZ-VlastaNeural", + Gender: "Female", + Locale: "cs-CZ", + LocaleName: "Czech (Czech)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (cy-GB, AledNeural)", + DisplayName: "Aled", + LocalName: "Aled", + ShortName: "cy-GB-AledNeural", + Gender: "Male", + Locale: "cy-GB", + LocaleName: "Welsh (United Kingdom)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (cy-GB, NiaNeural)", + DisplayName: "Nia", + LocalName: "Nia", + ShortName: "cy-GB-NiaNeural", + Gender: "Female", + Locale: "cy-GB", + LocaleName: "Welsh (United Kingdom)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (da-DK, ChristelNeural)", + DisplayName: "Christel", + LocalName: "Christel", + ShortName: "da-DK-ChristelNeural", + Gender: "Female", + Locale: "da-DK", + LocaleName: "Danish (Denmark)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (da-DK, JeppeNeural)", + DisplayName: "Jeppe", + LocalName: "Jeppe", + ShortName: "da-DK-JeppeNeural", + Gender: "Male", + Locale: "da-DK", + LocaleName: "Danish (Denmark)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (de-AT, IngridNeural)", + DisplayName: "Ingrid", + LocalName: "Ingrid", + ShortName: "de-AT-IngridNeural", + Gender: "Female", + Locale: "de-AT", + LocaleName: "German (Austria)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (de-AT, JonasNeural)", + DisplayName: "Jonas", + LocalName: "Jonas", + ShortName: "de-AT-JonasNeural", + Gender: "Male", + Locale: "de-AT", + LocaleName: "German (Austria)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (de-CH, JanNeural)", + DisplayName: "Jan", + LocalName: "Jan", + ShortName: "de-CH-JanNeural", + Gender: "Male", + Locale: "de-CH", + LocaleName: "German (Switzerland)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (de-CH, LeniNeural)", + DisplayName: "Leni", + LocalName: "Leni", + ShortName: "de-CH-LeniNeural", + Gender: "Female", + Locale: "de-CH", + LocaleName: "German (Switzerland)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (de-DE, KatjaNeural)", + DisplayName: "Katja", + LocalName: "Katja", + ShortName: "de-DE-KatjaNeural", + Gender: "Female", + Locale: "de-DE", + LocaleName: "German (Germany)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (de-DE, ConradNeural)", + DisplayName: "Conrad", + LocalName: "Conrad", + ShortName: "de-DE-ConradNeural", + Gender: "Male", + Locale: "de-DE", + LocaleName: "German (Germany)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (de-DE, AmalaNeural)", + DisplayName: "Amala", + LocalName: "Amala", + ShortName: "de-DE-AmalaNeural", + Gender: "Female", + Locale: "de-DE", + LocaleName: "German (Germany)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (de-DE, BerndNeural)", + DisplayName: "Bernd", + LocalName: "Bernd", + ShortName: "de-DE-BerndNeural", + Gender: "Male", + Locale: "de-DE", + LocaleName: "German (Germany)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (de-DE, ChristophNeural)", + DisplayName: "Christoph", + LocalName: "Christoph", + ShortName: "de-DE-ChristophNeural", + Gender: "Male", + Locale: "de-DE", + LocaleName: "German (Germany)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (de-DE, ElkeNeural)", + DisplayName: "Elke", + LocalName: "Elke", + ShortName: "de-DE-ElkeNeural", + Gender: "Female", + Locale: "de-DE", + LocaleName: "German (Germany)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (de-DE, GiselaNeural)", + DisplayName: "Gisela", + LocalName: "Gisela", + ShortName: "de-DE-GiselaNeural", + Gender: "Female", + Locale: "de-DE", + LocaleName: "German (Germany)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (de-DE, KasperNeural)", + DisplayName: "Kasper", + LocalName: "Kasper", + ShortName: "de-DE-KasperNeural", + Gender: "Male", + Locale: "de-DE", + LocaleName: "German (Germany)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (de-DE, KillianNeural)", + DisplayName: "Killian", + LocalName: "Killian", + ShortName: "de-DE-KillianNeural", + Gender: "Male", + Locale: "de-DE", + LocaleName: "German (Germany)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (de-DE, KlarissaNeural)", + DisplayName: "Klarissa", + LocalName: "Klarissa", + ShortName: "de-DE-KlarissaNeural", + Gender: "Female", + Locale: "de-DE", + LocaleName: "German (Germany)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (de-DE, KlausNeural)", + DisplayName: "Klaus", + LocalName: "Klaus", + ShortName: "de-DE-KlausNeural", + Gender: "Male", + Locale: "de-DE", + LocaleName: "German (Germany)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (de-DE, LouisaNeural)", + DisplayName: "Louisa", + LocalName: "Louisa", + ShortName: "de-DE-LouisaNeural", + Gender: "Female", + Locale: "de-DE", + LocaleName: "German (Germany)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (de-DE, MajaNeural)", + DisplayName: "Maja", + LocalName: "Maja", + ShortName: "de-DE-MajaNeural", + Gender: "Female", + Locale: "de-DE", + LocaleName: "German (Germany)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (de-DE, RalfNeural)", + DisplayName: "Ralf", + LocalName: "Ralf", + ShortName: "de-DE-RalfNeural", + Gender: "Male", + Locale: "de-DE", + LocaleName: "German (Germany)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (de-DE, TanjaNeural)", + DisplayName: "Tanja", + LocalName: "Tanja", + ShortName: "de-DE-TanjaNeural", + Gender: "Female", + Locale: "de-DE", + LocaleName: "German (Germany)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (el-GR, AthinaNeural)", + DisplayName: "Athina", + LocalName: "Αθηνά", + ShortName: "el-GR-AthinaNeural", + Gender: "Female", + Locale: "el-GR", + LocaleName: "Greek (Greece)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (el-GR, NestorasNeural)", + DisplayName: "Nestoras", + LocalName: "Νέστορας", + ShortName: "el-GR-NestorasNeural", + Gender: "Male", + Locale: "el-GR", + LocaleName: "Greek (Greece)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-AU, NatashaNeural)", + DisplayName: "Natasha", + LocalName: "Natasha", + ShortName: "en-AU-NatashaNeural", + Gender: "Female", + Locale: "en-AU", + LocaleName: "English (Australia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-AU, WilliamNeural)", + DisplayName: "William", + LocalName: "William", + ShortName: "en-AU-WilliamNeural", + Gender: "Male", + Locale: "en-AU", + LocaleName: "English (Australia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-CA, ClaraNeural)", + DisplayName: "Clara", + LocalName: "Clara", + ShortName: "en-CA-ClaraNeural", + Gender: "Female", + Locale: "en-CA", + LocaleName: "English (Canada)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-CA, LiamNeural)", + DisplayName: "Liam", + LocalName: "Liam", + ShortName: "en-CA-LiamNeural", + Gender: "Male", + Locale: "en-CA", + LocaleName: "English (Canada)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-GB, LibbyNeural)", + DisplayName: "Libby", + LocalName: "Libby", + ShortName: "en-GB-LibbyNeural", + Gender: "Female", + Locale: "en-GB", + LocaleName: "English (United Kingdom)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-GB, RyanNeural)", + DisplayName: "Ryan", + LocalName: "Ryan", + ShortName: "en-GB-RyanNeural", + Gender: "Male", + Locale: "en-GB", + LocaleName: "English (United Kingdom)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-GB, SoniaNeural)", + DisplayName: "Sonia", + LocalName: "Sonia", + ShortName: "en-GB-SoniaNeural", + Gender: "Female", + Locale: "en-GB", + LocaleName: "English (United Kingdom)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-GB, AbbiNeural)", + DisplayName: "Abbi", + LocalName: "Abbi", + ShortName: "en-GB-AbbiNeural", + Gender: "Female", + Locale: "en-GB", + LocaleName: "English (United Kingdom)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-GB, AlfieNeural)", + DisplayName: "Alfie", + LocalName: "Alfie", + ShortName: "en-GB-AlfieNeural", + Gender: "Male", + Locale: "en-GB", + LocaleName: "English (United Kingdom)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-GB, BellaNeural)", + DisplayName: "Bella", + LocalName: "Bella", + ShortName: "en-GB-BellaNeural", + Gender: "Female", + Locale: "en-GB", + LocaleName: "English (United Kingdom)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-GB, ElliotNeural)", + DisplayName: "Elliot", + LocalName: "Elliot", + ShortName: "en-GB-ElliotNeural", + Gender: "Male", + Locale: "en-GB", + LocaleName: "English (United Kingdom)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-GB, EthanNeural)", + DisplayName: "Ethan", + LocalName: "Ethan", + ShortName: "en-GB-EthanNeural", + Gender: "Male", + Locale: "en-GB", + LocaleName: "English (United Kingdom)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-GB, HollieNeural)", + DisplayName: "Hollie", + LocalName: "Hollie", + ShortName: "en-GB-HollieNeural", + Gender: "Female", + Locale: "en-GB", + LocaleName: "English (United Kingdom)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-GB, MaisieNeural)", + DisplayName: "Maisie", + LocalName: "Maisie", + ShortName: "en-GB-MaisieNeural", + Gender: "Female", + Locale: "en-GB", + LocaleName: "English (United Kingdom)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-GB, NoahNeural)", + DisplayName: "Noah", + LocalName: "Noah", + ShortName: "en-GB-NoahNeural", + Gender: "Male", + Locale: "en-GB", + LocaleName: "English (United Kingdom)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-GB, OliverNeural)", + DisplayName: "Oliver", + LocalName: "Oliver", + ShortName: "en-GB-OliverNeural", + Gender: "Male", + Locale: "en-GB", + LocaleName: "English (United Kingdom)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-GB, OliviaNeural)", + DisplayName: "Olivia", + LocalName: "Olivia", + ShortName: "en-GB-OliviaNeural", + Gender: "Female", + Locale: "en-GB", + LocaleName: "English (United Kingdom)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-GB, ThomasNeural)", + DisplayName: "Thomas", + LocalName: "Thomas", + ShortName: "en-GB-ThomasNeural", + Gender: "Male", + Locale: "en-GB", + LocaleName: "English (United Kingdom)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-GB, MiaNeural)", + DisplayName: "Mia", + LocalName: "Mia", + ShortName: "en-GB-MiaNeural", + Gender: "Female", + Locale: "en-GB", + LocaleName: "English (United Kingdom)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Deprecated", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-HK, SamNeural)", + DisplayName: "Sam", + LocalName: "Sam", + ShortName: "en-HK-SamNeural", + Gender: "Male", + Locale: "en-HK", + LocaleName: "English (Hongkong)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-HK, YanNeural)", + DisplayName: "Yan", + LocalName: "Yan", + ShortName: "en-HK-YanNeural", + Gender: "Female", + Locale: "en-HK", + LocaleName: "English (Hongkong)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-IE, ConnorNeural)", + DisplayName: "Connor", + LocalName: "Connor", + ShortName: "en-IE-ConnorNeural", + Gender: "Male", + Locale: "en-IE", + LocaleName: "English (Ireland)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-IE, EmilyNeural)", + DisplayName: "Emily", + LocalName: "Emily", + ShortName: "en-IE-EmilyNeural", + Gender: "Female", + Locale: "en-IE", + LocaleName: "English (Ireland)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-IN, NeerjaNeural)", + DisplayName: "Neerja", + LocalName: "Neerja", + ShortName: "en-IN-NeerjaNeural", + Gender: "Female", + Locale: "en-IN", + LocaleName: "English (India)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-IN, PrabhatNeural)", + DisplayName: "Prabhat", + LocalName: "Prabhat", + ShortName: "en-IN-PrabhatNeural", + Gender: "Male", + Locale: "en-IN", + LocaleName: "English (India)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-KE, AsiliaNeural)", + DisplayName: "Asilia", + LocalName: "Asilia", + ShortName: "en-KE-AsiliaNeural", + Gender: "Female", + Locale: "en-KE", + LocaleName: "English (Kenya)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-KE, ChilembaNeural)", + DisplayName: "Chilemba", + LocalName: "Chilemba", + ShortName: "en-KE-ChilembaNeural", + Gender: "Male", + Locale: "en-KE", + LocaleName: "English (Kenya)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-NG, AbeoNeural)", + DisplayName: "Abeo", + LocalName: "Abeo", + ShortName: "en-NG-AbeoNeural", + Gender: "Male", + Locale: "en-NG", + LocaleName: "English (Nigeria)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-NG, EzinneNeural)", + DisplayName: "Ezinne", + LocalName: "Ezinne", + ShortName: "en-NG-EzinneNeural", + Gender: "Female", + Locale: "en-NG", + LocaleName: "English (Nigeria)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-NZ, MitchellNeural)", + DisplayName: "Mitchell", + LocalName: "Mitchell", + ShortName: "en-NZ-MitchellNeural", + Gender: "Male", + Locale: "en-NZ", + LocaleName: "English (New Zealand)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-NZ, MollyNeural)", + DisplayName: "Molly", + LocalName: "Molly", + ShortName: "en-NZ-MollyNeural", + Gender: "Female", + Locale: "en-NZ", + LocaleName: "English (New Zealand)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-PH, JamesNeural)", + DisplayName: "James", + LocalName: "James", + ShortName: "en-PH-JamesNeural", + Gender: "Male", + Locale: "en-PH", + LocaleName: "English (Philippines)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-PH, RosaNeural)", + DisplayName: "Rosa", + LocalName: "Rosa", + ShortName: "en-PH-RosaNeural", + Gender: "Female", + Locale: "en-PH", + LocaleName: "English (Philippines)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-SG, LunaNeural)", + DisplayName: "Luna", + LocalName: "Luna", + ShortName: "en-SG-LunaNeural", + Gender: "Female", + Locale: "en-SG", + LocaleName: "English (Singapore)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-SG, WayneNeural)", + DisplayName: "Wayne", + LocalName: "Wayne", + ShortName: "en-SG-WayneNeural", + Gender: "Male", + Locale: "en-SG", + LocaleName: "English (Singapore)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-TZ, ElimuNeural)", + DisplayName: "Elimu", + LocalName: "Elimu", + ShortName: "en-TZ-ElimuNeural", + Gender: "Male", + Locale: "en-TZ", + LocaleName: "English (Tanzania)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-TZ, ImaniNeural)", + DisplayName: "Imani", + LocalName: "Imani", + ShortName: "en-TZ-ImaniNeural", + Gender: "Female", + Locale: "en-TZ", + LocaleName: "English (Tanzania)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-US, JennyNeural)", + DisplayName: "Jenny", + LocalName: "Jenny", + ShortName: "en-US-JennyNeural", + Gender: "Female", + Locale: "en-US", + LocaleName: "English (United States)", + StyleList: [ + "assistant", + "chat", + "customerservice", + "newscast", + "angry", + "cheerful", + "sad", + "excited", + "friendly", + "terrified", + "shouting", + "unfriendly", + "whispering", + "hopeful", + ], + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-US, JennyMultilingualNeural)", + DisplayName: "Jenny Multilingual", + LocalName: "Jenny Multilingual", + ShortName: "en-US-JennyMultilingualNeural", + Gender: "Female", + Locale: "en-US", + LocaleName: "English (United States)", + SecondaryLocaleList: [ + "de-DE", + "en-AU", + "en-CA", + "en-GB", + "es-ES", + "es-MX", + "fr-CA", + "fr-FR", + "it-IT", + "ja-JP", + "ko-KR", + "pt-BR", + "zh-CN", + ], + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-US, GuyNeural)", + DisplayName: "Guy", + LocalName: "Guy", + ShortName: "en-US-GuyNeural", + Gender: "Male", + Locale: "en-US", + LocaleName: "English (United States)", + StyleList: [ + "newscast", + "angry", + "cheerful", + "sad", + "excited", + "friendly", + "terrified", + "shouting", + "unfriendly", + "whispering", + "hopeful", + ], + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + WordPerMinute: { + default: "215", + newscast: "210", + }, + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-US, AmberNeural)", + DisplayName: "Amber", + LocalName: "Amber", + ShortName: "en-US-AmberNeural", + Gender: "Female", + Locale: "en-US", + LocaleName: "English (United States)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-US, AnaNeural)", + DisplayName: "Ana", + LocalName: "Ana", + ShortName: "en-US-AnaNeural", + Gender: "Female", + Locale: "en-US", + LocaleName: "English (United States)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-US, AriaNeural)", + DisplayName: "Aria", + LocalName: "Aria", + ShortName: "en-US-AriaNeural", + Gender: "Female", + Locale: "en-US", + LocaleName: "English (United States)", + StyleList: [ + "chat", + "customerservice", + "narration-professional", + "newscast-casual", + "newscast-formal", + "cheerful", + "empathetic", + "angry", + "sad", + "excited", + "friendly", + "terrified", + "shouting", + "unfriendly", + "whispering", + "hopeful", + ], + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-US, AshleyNeural)", + DisplayName: "Ashley", + LocalName: "Ashley", + ShortName: "en-US-AshleyNeural", + Gender: "Female", + Locale: "en-US", + LocaleName: "English (United States)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + WordPerMinute: { + default: "149", + }, + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-US, BrandonNeural)", + DisplayName: "Brandon", + LocalName: "Brandon", + ShortName: "en-US-BrandonNeural", + Gender: "Male", + Locale: "en-US", + LocaleName: "English (United States)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-US, ChristopherNeural)", + DisplayName: "Christopher", + LocalName: "Christopher", + ShortName: "en-US-ChristopherNeural", + Gender: "Male", + Locale: "en-US", + LocaleName: "English (United States)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-US, CoraNeural)", + DisplayName: "Cora", + LocalName: "Cora", + ShortName: "en-US-CoraNeural", + Gender: "Female", + Locale: "en-US", + LocaleName: "English (United States)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-US, ElizabethNeural)", + DisplayName: "Elizabeth", + LocalName: "Elizabeth", + ShortName: "en-US-ElizabethNeural", + Gender: "Female", + Locale: "en-US", + LocaleName: "English (United States)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-US, EricNeural)", + DisplayName: "Eric", + LocalName: "Eric", + ShortName: "en-US-EricNeural", + Gender: "Male", + Locale: "en-US", + LocaleName: "English (United States)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-US, JacobNeural)", + DisplayName: "Jacob", + LocalName: "Jacob", + ShortName: "en-US-JacobNeural", + Gender: "Male", + Locale: "en-US", + LocaleName: "English (United States)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-US, MichelleNeural)", + DisplayName: "Michelle", + LocalName: "Michelle", + ShortName: "en-US-MichelleNeural", + Gender: "Female", + Locale: "en-US", + LocaleName: "English (United States)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-US, MonicaNeural)", + DisplayName: "Monica", + LocalName: "Monica", + ShortName: "en-US-MonicaNeural", + Gender: "Female", + Locale: "en-US", + LocaleName: "English (United States)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-US, SaraNeural)", + DisplayName: "Sara", + LocalName: "Sara", + ShortName: "en-US-SaraNeural", + Gender: "Female", + Locale: "en-US", + LocaleName: "English (United States)", + StyleList: [ + "angry", + "cheerful", + "excited", + "friendly", + "hopeful", + "sad", + "shouting", + "terrified", + "unfriendly", + "whispering", + ], + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-US, DavisNeural)", + DisplayName: "Davis", + LocalName: "Davis", + ShortName: "en-US-DavisNeural", + Gender: "Male", + Locale: "en-US", + LocaleName: "English (United States)", + StyleList: [ + "chat", + "angry", + "cheerful", + "excited", + "friendly", + "hopeful", + "sad", + "shouting", + "terrified", + "unfriendly", + "whispering", + ], + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-US, JaneNeural)", + DisplayName: "Jane", + LocalName: "Jane", + ShortName: "en-US-JaneNeural", + Gender: "Female", + Locale: "en-US", + LocaleName: "English (United States)", + StyleList: [ + "angry", + "cheerful", + "excited", + "friendly", + "hopeful", + "sad", + "shouting", + "terrified", + "unfriendly", + "whispering", + ], + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-US, JasonNeural)", + DisplayName: "Jason", + LocalName: "Jason", + ShortName: "en-US-JasonNeural", + Gender: "Male", + Locale: "en-US", + LocaleName: "English (United States)", + StyleList: [ + "angry", + "cheerful", + "excited", + "friendly", + "hopeful", + "sad", + "shouting", + "terrified", + "unfriendly", + "whispering", + ], + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-US, NancyNeural)", + DisplayName: "Nancy", + LocalName: "Nancy", + ShortName: "en-US-NancyNeural", + Gender: "Female", + Locale: "en-US", + LocaleName: "English (United States)", + StyleList: [ + "angry", + "cheerful", + "excited", + "friendly", + "hopeful", + "sad", + "shouting", + "terrified", + "unfriendly", + "whispering", + ], + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-US, TonyNeural)", + DisplayName: "Tony", + LocalName: "Tony", + ShortName: "en-US-TonyNeural", + Gender: "Male", + Locale: "en-US", + LocaleName: "English (United States)", + StyleList: [ + "angry", + "cheerful", + "excited", + "friendly", + "hopeful", + "sad", + "shouting", + "terrified", + "unfriendly", + "whispering", + ], + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-ZA, LeahNeural)", + DisplayName: "Leah", + LocalName: "Leah", + ShortName: "en-ZA-LeahNeural", + Gender: "Female", + Locale: "en-ZA", + LocaleName: "English (South Africa)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (en-ZA, LukeNeural)", + DisplayName: "Luke", + LocalName: "Luke", + ShortName: "en-ZA-LukeNeural", + Gender: "Male", + Locale: "en-ZA", + LocaleName: "English (South Africa)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-AR, ElenaNeural)", + DisplayName: "Elena", + LocalName: "Elena", + ShortName: "es-AR-ElenaNeural", + Gender: "Female", + Locale: "es-AR", + LocaleName: "Spanish (Argentina)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-AR, TomasNeural)", + DisplayName: "Tomas", + LocalName: "Tomas", + ShortName: "es-AR-TomasNeural", + Gender: "Male", + Locale: "es-AR", + LocaleName: "Spanish (Argentina)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-BO, MarceloNeural)", + DisplayName: "Marcelo", + LocalName: "Marcelo", + ShortName: "es-BO-MarceloNeural", + Gender: "Male", + Locale: "es-BO", + LocaleName: "Spanish (Bolivia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-BO, SofiaNeural)", + DisplayName: "Sofia", + LocalName: "Sofia", + ShortName: "es-BO-SofiaNeural", + Gender: "Female", + Locale: "es-BO", + LocaleName: "Spanish (Bolivia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-CL, CatalinaNeural)", + DisplayName: "Catalina", + LocalName: "Catalina", + ShortName: "es-CL-CatalinaNeural", + Gender: "Female", + Locale: "es-CL", + LocaleName: "Spanish (Chile)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-CL, LorenzoNeural)", + DisplayName: "Lorenzo", + LocalName: "Lorenzo", + ShortName: "es-CL-LorenzoNeural", + Gender: "Male", + Locale: "es-CL", + LocaleName: "Spanish (Chile)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-CO, GonzaloNeural)", + DisplayName: "Gonzalo", + LocalName: "Gonzalo", + ShortName: "es-CO-GonzaloNeural", + Gender: "Male", + Locale: "es-CO", + LocaleName: "Spanish (Colombia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-CO, SalomeNeural)", + DisplayName: "Salome", + LocalName: "Salome", + ShortName: "es-CO-SalomeNeural", + Gender: "Female", + Locale: "es-CO", + LocaleName: "Spanish (Colombia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-CR, JuanNeural)", + DisplayName: "Juan", + LocalName: "Juan", + ShortName: "es-CR-JuanNeural", + Gender: "Male", + Locale: "es-CR", + LocaleName: "Spanish (Costa Rica)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-CR, MariaNeural)", + DisplayName: "Maria", + LocalName: "María", + ShortName: "es-CR-MariaNeural", + Gender: "Female", + Locale: "es-CR", + LocaleName: "Spanish (Costa Rica)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-CU, BelkysNeural)", + DisplayName: "Belkys", + LocalName: "Belkys", + ShortName: "es-CU-BelkysNeural", + Gender: "Female", + Locale: "es-CU", + LocaleName: "Spanish (Cuba)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-CU, ManuelNeural)", + DisplayName: "Manuel", + LocalName: "Manuel", + ShortName: "es-CU-ManuelNeural", + Gender: "Male", + Locale: "es-CU", + LocaleName: "Spanish (Cuba)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-DO, EmilioNeural)", + DisplayName: "Emilio", + LocalName: "Emilio", + ShortName: "es-DO-EmilioNeural", + Gender: "Male", + Locale: "es-DO", + LocaleName: "Spanish (Dominican Republic)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-DO, RamonaNeural)", + DisplayName: "Ramona", + LocalName: "Ramona", + ShortName: "es-DO-RamonaNeural", + Gender: "Female", + Locale: "es-DO", + LocaleName: "Spanish (Dominican Republic)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-EC, AndreaNeural)", + DisplayName: "Andrea", + LocalName: "Andrea", + ShortName: "es-EC-AndreaNeural", + Gender: "Female", + Locale: "es-EC", + LocaleName: "Spanish (Ecuador)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-EC, LuisNeural)", + DisplayName: "Luis", + LocalName: "Luis", + ShortName: "es-EC-LuisNeural", + Gender: "Male", + Locale: "es-EC", + LocaleName: "Spanish (Ecuador)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-ES, AlvaroNeural)", + DisplayName: "Alvaro", + LocalName: "Álvaro", + ShortName: "es-ES-AlvaroNeural", + Gender: "Male", + Locale: "es-ES", + LocaleName: "Spanish (Spain)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-ES, ElviraNeural)", + DisplayName: "Elvira", + LocalName: "Elvira", + ShortName: "es-ES-ElviraNeural", + Gender: "Female", + Locale: "es-ES", + LocaleName: "Spanish (Spain)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-GQ, JavierNeural)", + DisplayName: "Javier", + LocalName: "Javier", + ShortName: "es-GQ-JavierNeural", + Gender: "Male", + Locale: "es-GQ", + LocaleName: "Spanish (Equatorial Guinea)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-GQ, TeresaNeural)", + DisplayName: "Teresa", + LocalName: "Teresa", + ShortName: "es-GQ-TeresaNeural", + Gender: "Female", + Locale: "es-GQ", + LocaleName: "Spanish (Equatorial Guinea)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-GT, AndresNeural)", + DisplayName: "Andres", + LocalName: "Andrés", + ShortName: "es-GT-AndresNeural", + Gender: "Male", + Locale: "es-GT", + LocaleName: "Spanish (Guatemala)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-GT, MartaNeural)", + DisplayName: "Marta", + LocalName: "Marta", + ShortName: "es-GT-MartaNeural", + Gender: "Female", + Locale: "es-GT", + LocaleName: "Spanish (Guatemala)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-HN, CarlosNeural)", + DisplayName: "Carlos", + LocalName: "Carlos", + ShortName: "es-HN-CarlosNeural", + Gender: "Male", + Locale: "es-HN", + LocaleName: "Spanish (Honduras)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-HN, KarlaNeural)", + DisplayName: "Karla", + LocalName: "Karla", + ShortName: "es-HN-KarlaNeural", + Gender: "Female", + Locale: "es-HN", + LocaleName: "Spanish (Honduras)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-MX, DaliaNeural)", + DisplayName: "Dalia", + LocalName: "Dalia", + ShortName: "es-MX-DaliaNeural", + Gender: "Female", + Locale: "es-MX", + LocaleName: "Spanish (Mexico)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-MX, JorgeNeural)", + DisplayName: "Jorge", + LocalName: "Jorge", + ShortName: "es-MX-JorgeNeural", + Gender: "Male", + Locale: "es-MX", + LocaleName: "Spanish (Mexico)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-NI, FedericoNeural)", + DisplayName: "Federico", + LocalName: "Federico", + ShortName: "es-NI-FedericoNeural", + Gender: "Male", + Locale: "es-NI", + LocaleName: "Spanish (Nicaragua)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-NI, YolandaNeural)", + DisplayName: "Yolanda", + LocalName: "Yolanda", + ShortName: "es-NI-YolandaNeural", + Gender: "Female", + Locale: "es-NI", + LocaleName: "Spanish (Nicaragua)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-PA, MargaritaNeural)", + DisplayName: "Margarita", + LocalName: "Margarita", + ShortName: "es-PA-MargaritaNeural", + Gender: "Female", + Locale: "es-PA", + LocaleName: "Spanish (Panama)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-PA, RobertoNeural)", + DisplayName: "Roberto", + LocalName: "Roberto", + ShortName: "es-PA-RobertoNeural", + Gender: "Male", + Locale: "es-PA", + LocaleName: "Spanish (Panama)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-PE, AlexNeural)", + DisplayName: "Alex", + LocalName: "Alex", + ShortName: "es-PE-AlexNeural", + Gender: "Male", + Locale: "es-PE", + LocaleName: "Spanish (Peru)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-PE, CamilaNeural)", + DisplayName: "Camila", + LocalName: "Camila", + ShortName: "es-PE-CamilaNeural", + Gender: "Female", + Locale: "es-PE", + LocaleName: "Spanish (Peru)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-PR, KarinaNeural)", + DisplayName: "Karina", + LocalName: "Karina", + ShortName: "es-PR-KarinaNeural", + Gender: "Female", + Locale: "es-PR", + LocaleName: "Spanish (Puerto Rico)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-PR, VictorNeural)", + DisplayName: "Victor", + LocalName: "Víctor", + ShortName: "es-PR-VictorNeural", + Gender: "Male", + Locale: "es-PR", + LocaleName: "Spanish (Puerto Rico)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-PY, MarioNeural)", + DisplayName: "Mario", + LocalName: "Mario", + ShortName: "es-PY-MarioNeural", + Gender: "Male", + Locale: "es-PY", + LocaleName: "Spanish (Paraguay)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-PY, TaniaNeural)", + DisplayName: "Tania", + LocalName: "Tania", + ShortName: "es-PY-TaniaNeural", + Gender: "Female", + Locale: "es-PY", + LocaleName: "Spanish (Paraguay)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-SV, LorenaNeural)", + DisplayName: "Lorena", + LocalName: "Lorena", + ShortName: "es-SV-LorenaNeural", + Gender: "Female", + Locale: "es-SV", + LocaleName: "Spanish (El Salvador)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-SV, RodrigoNeural)", + DisplayName: "Rodrigo", + LocalName: "Rodrigo", + ShortName: "es-SV-RodrigoNeural", + Gender: "Male", + Locale: "es-SV", + LocaleName: "Spanish (El Salvador)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-US, AlonsoNeural)", + DisplayName: "Alonso", + LocalName: "Alonso", + ShortName: "es-US-AlonsoNeural", + Gender: "Male", + Locale: "es-US", + LocaleName: "Spanish (United States)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-US, PalomaNeural)", + DisplayName: "Paloma", + LocalName: "Paloma", + ShortName: "es-US-PalomaNeural", + Gender: "Female", + Locale: "es-US", + LocaleName: "Spanish (United States)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-UY, MateoNeural)", + DisplayName: "Mateo", + LocalName: "Mateo", + ShortName: "es-UY-MateoNeural", + Gender: "Male", + Locale: "es-UY", + LocaleName: "Spanish (Uruguay)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-UY, ValentinaNeural)", + DisplayName: "Valentina", + LocalName: "Valentina", + ShortName: "es-UY-ValentinaNeural", + Gender: "Female", + Locale: "es-UY", + LocaleName: "Spanish (Uruguay)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-VE, PaolaNeural)", + DisplayName: "Paola", + LocalName: "Paola", + ShortName: "es-VE-PaolaNeural", + Gender: "Female", + Locale: "es-VE", + LocaleName: "Spanish (Venezuela)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (es-VE, SebastianNeural)", + DisplayName: "Sebastian", + LocalName: "Sebastián", + ShortName: "es-VE-SebastianNeural", + Gender: "Male", + Locale: "es-VE", + LocaleName: "Spanish (Venezuela)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (et-EE, AnuNeural)", + DisplayName: "Anu", + LocalName: "Anu", + ShortName: "et-EE-AnuNeural", + Gender: "Female", + Locale: "et-EE", + LocaleName: "Estonian (Estonia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (et-EE, KertNeural)", + DisplayName: "Kert", + LocalName: "Kert", + ShortName: "et-EE-KertNeural", + Gender: "Male", + Locale: "et-EE", + LocaleName: "Estonian (Estonia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (fa-IR, DilaraNeural)", + DisplayName: "Dilara", + LocalName: "دلارا", + ShortName: "fa-IR-DilaraNeural", + Gender: "Female", + Locale: "fa-IR", + LocaleName: "Persian (Iran)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (fa-IR, FaridNeural)", + DisplayName: "Farid", + LocalName: "فرید", + ShortName: "fa-IR-FaridNeural", + Gender: "Male", + Locale: "fa-IR", + LocaleName: "Persian (Iran)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (fi-FI, SelmaNeural)", + DisplayName: "Selma", + LocalName: "Selma", + ShortName: "fi-FI-SelmaNeural", + Gender: "Female", + Locale: "fi-FI", + LocaleName: "Finnish (Finland)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (fi-FI, HarriNeural)", + DisplayName: "Harri", + LocalName: "Harri", + ShortName: "fi-FI-HarriNeural", + Gender: "Male", + Locale: "fi-FI", + LocaleName: "Finnish (Finland)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (fi-FI, NooraNeural)", + DisplayName: "Noora", + LocalName: "Noora", + ShortName: "fi-FI-NooraNeural", + Gender: "Female", + Locale: "fi-FI", + LocaleName: "Finnish (Finland)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (fil-PH, AngeloNeural)", + DisplayName: "Angelo", + LocalName: "Angelo", + ShortName: "fil-PH-AngeloNeural", + Gender: "Male", + Locale: "fil-PH", + LocaleName: "Filipino (Philippines)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (fil-PH, BlessicaNeural)", + DisplayName: "Blessica", + LocalName: "Blessica", + ShortName: "fil-PH-BlessicaNeural", + Gender: "Female", + Locale: "fil-PH", + LocaleName: "Filipino (Philippines)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (fr-BE, CharlineNeural)", + DisplayName: "Charline", + LocalName: "Charline", + ShortName: "fr-BE-CharlineNeural", + Gender: "Female", + Locale: "fr-BE", + LocaleName: "French (Belgium)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (fr-BE, GerardNeural)", + DisplayName: "Gerard", + LocalName: "Gerard", + ShortName: "fr-BE-GerardNeural", + Gender: "Male", + Locale: "fr-BE", + LocaleName: "French (Belgium)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (fr-CA, SylvieNeural)", + DisplayName: "Sylvie", + LocalName: "Sylvie", + ShortName: "fr-CA-SylvieNeural", + Gender: "Female", + Locale: "fr-CA", + LocaleName: "French (Canada)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (fr-CA, AntoineNeural)", + DisplayName: "Antoine", + LocalName: "Antoine", + ShortName: "fr-CA-AntoineNeural", + Gender: "Male", + Locale: "fr-CA", + LocaleName: "French (Canada)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (fr-CA, JeanNeural)", + DisplayName: "Jean", + LocalName: "Jean", + ShortName: "fr-CA-JeanNeural", + Gender: "Male", + Locale: "fr-CA", + LocaleName: "French (Canada)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (fr-CH, ArianeNeural)", + DisplayName: "Ariane", + LocalName: "Ariane", + ShortName: "fr-CH-ArianeNeural", + Gender: "Female", + Locale: "fr-CH", + LocaleName: "French (Switzerland)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (fr-CH, FabriceNeural)", + DisplayName: "Fabrice", + LocalName: "Fabrice", + ShortName: "fr-CH-FabriceNeural", + Gender: "Male", + Locale: "fr-CH", + LocaleName: "French (Switzerland)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (fr-FR, DeniseNeural)", + DisplayName: "Denise", + LocalName: "Denise", + ShortName: "fr-FR-DeniseNeural", + Gender: "Female", + Locale: "fr-FR", + LocaleName: "French (France)", + StyleList: ["cheerful", "sad"], + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (fr-FR, HenriNeural)", + DisplayName: "Henri", + LocalName: "Henri", + ShortName: "fr-FR-HenriNeural", + Gender: "Male", + Locale: "fr-FR", + LocaleName: "French (France)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (fr-FR, AlainNeural)", + DisplayName: "Alain", + LocalName: "Alain", + ShortName: "fr-FR-AlainNeural", + Gender: "Male", + Locale: "fr-FR", + LocaleName: "French (France)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (fr-FR, BrigitteNeural)", + DisplayName: "Brigitte", + LocalName: "Brigitte", + ShortName: "fr-FR-BrigitteNeural", + Gender: "Female", + Locale: "fr-FR", + LocaleName: "French (France)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (fr-FR, CelesteNeural)", + DisplayName: "Celeste", + LocalName: "Celeste", + ShortName: "fr-FR-CelesteNeural", + Gender: "Female", + Locale: "fr-FR", + LocaleName: "French (France)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (fr-FR, ClaudeNeural)", + DisplayName: "Claude", + LocalName: "Claude", + ShortName: "fr-FR-ClaudeNeural", + Gender: "Male", + Locale: "fr-FR", + LocaleName: "French (France)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (fr-FR, CoralieNeural)", + DisplayName: "Coralie", + LocalName: "Coralie", + ShortName: "fr-FR-CoralieNeural", + Gender: "Female", + Locale: "fr-FR", + LocaleName: "French (France)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (fr-FR, EloiseNeural)", + DisplayName: "Eloise", + LocalName: "Eloise", + ShortName: "fr-FR-EloiseNeural", + Gender: "Female", + Locale: "fr-FR", + LocaleName: "French (France)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (fr-FR, JacquelineNeural)", + DisplayName: "Jacqueline", + LocalName: "Jacqueline", + ShortName: "fr-FR-JacquelineNeural", + Gender: "Female", + Locale: "fr-FR", + LocaleName: "French (France)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (fr-FR, JeromeNeural)", + DisplayName: "Jerome", + LocalName: "Jerome", + ShortName: "fr-FR-JeromeNeural", + Gender: "Male", + Locale: "fr-FR", + LocaleName: "French (France)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (fr-FR, JosephineNeural)", + DisplayName: "Josephine", + LocalName: "Josephine", + ShortName: "fr-FR-JosephineNeural", + Gender: "Female", + Locale: "fr-FR", + LocaleName: "French (France)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (fr-FR, MauriceNeural)", + DisplayName: "Maurice", + LocalName: "Maurice", + ShortName: "fr-FR-MauriceNeural", + Gender: "Male", + Locale: "fr-FR", + LocaleName: "French (France)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (fr-FR, YvesNeural)", + DisplayName: "Yves", + LocalName: "Yves", + ShortName: "fr-FR-YvesNeural", + Gender: "Male", + Locale: "fr-FR", + LocaleName: "French (France)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (fr-FR, YvetteNeural)", + DisplayName: "Yvette", + LocalName: "Yvette", + ShortName: "fr-FR-YvetteNeural", + Gender: "Female", + Locale: "fr-FR", + LocaleName: "French (France)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ga-IE, ColmNeural)", + DisplayName: "Colm", + LocalName: "Colm", + ShortName: "ga-IE-ColmNeural", + Gender: "Male", + Locale: "ga-IE", + LocaleName: "Irish (Ireland)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ga-IE, OrlaNeural)", + DisplayName: "Orla", + LocalName: "Orla", + ShortName: "ga-IE-OrlaNeural", + Gender: "Female", + Locale: "ga-IE", + LocaleName: "Irish (Ireland)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (gl-ES, RoiNeural)", + DisplayName: "Roi", + LocalName: "Roi", + ShortName: "gl-ES-RoiNeural", + Gender: "Male", + Locale: "gl-ES", + LocaleName: "Galician (Spain)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (gl-ES, SabelaNeural)", + DisplayName: "Sabela", + LocalName: "Sabela", + ShortName: "gl-ES-SabelaNeural", + Gender: "Female", + Locale: "gl-ES", + LocaleName: "Galician (Spain)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (gu-IN, DhwaniNeural)", + DisplayName: "Dhwani", + LocalName: "ધ્વની", + ShortName: "gu-IN-DhwaniNeural", + Gender: "Female", + Locale: "gu-IN", + LocaleName: "Gujarati (India)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (gu-IN, NiranjanNeural)", + DisplayName: "Niranjan", + LocalName: "નિરંજન", + ShortName: "gu-IN-NiranjanNeural", + Gender: "Male", + Locale: "gu-IN", + LocaleName: "Gujarati (India)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (he-IL, AvriNeural)", + DisplayName: "Avri", + LocalName: "אברי", + ShortName: "he-IL-AvriNeural", + Gender: "Male", + Locale: "he-IL", + LocaleName: "Hebrew (Israel)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (he-IL, HilaNeural)", + DisplayName: "Hila", + LocalName: "הילה", + ShortName: "he-IL-HilaNeural", + Gender: "Female", + Locale: "he-IL", + LocaleName: "Hebrew (Israel)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (hi-IN, MadhurNeural)", + DisplayName: "Madhur", + LocalName: "मधुर", + ShortName: "hi-IN-MadhurNeural", + Gender: "Male", + Locale: "hi-IN", + LocaleName: "Hindi (India)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (hi-IN, SwaraNeural)", + DisplayName: "Swara", + LocalName: "स्वरा", + ShortName: "hi-IN-SwaraNeural", + Gender: "Female", + Locale: "hi-IN", + LocaleName: "Hindi (India)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (hr-HR, GabrijelaNeural)", + DisplayName: "Gabrijela", + LocalName: "Gabrijela", + ShortName: "hr-HR-GabrijelaNeural", + Gender: "Female", + Locale: "hr-HR", + LocaleName: "Croatian (Croatia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (hr-HR, SreckoNeural)", + DisplayName: "Srecko", + LocalName: "Srećko", + ShortName: "hr-HR-SreckoNeural", + Gender: "Male", + Locale: "hr-HR", + LocaleName: "Croatian (Croatia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (hu-HU, NoemiNeural)", + DisplayName: "Noemi", + LocalName: "Noémi", + ShortName: "hu-HU-NoemiNeural", + Gender: "Female", + Locale: "hu-HU", + LocaleName: "Hungarian (Hungary)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (hu-HU, TamasNeural)", + DisplayName: "Tamas", + LocalName: "Tamás", + ShortName: "hu-HU-TamasNeural", + Gender: "Male", + Locale: "hu-HU", + LocaleName: "Hungarian (Hungary)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (id-ID, ArdiNeural)", + DisplayName: "Ardi", + LocalName: "Ardi", + ShortName: "id-ID-ArdiNeural", + Gender: "Male", + Locale: "id-ID", + LocaleName: "Indonesian (Indonesia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (id-ID, GadisNeural)", + DisplayName: "Gadis", + LocalName: "Gadis", + ShortName: "id-ID-GadisNeural", + Gender: "Female", + Locale: "id-ID", + LocaleName: "Indonesian (Indonesia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (is-IS, GudrunNeural)", + DisplayName: "Gudrun", + LocalName: "Guðrún", + ShortName: "is-IS-GudrunNeural", + Gender: "Female", + Locale: "is-IS", + LocaleName: "Icelandic (Iceland)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (is-IS, GunnarNeural)", + DisplayName: "Gunnar", + LocalName: "Gunnar", + ShortName: "is-IS-GunnarNeural", + Gender: "Male", + Locale: "is-IS", + LocaleName: "Icelandic (Iceland)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (it-IT, IsabellaNeural)", + DisplayName: "Isabella", + LocalName: "Isabella", + ShortName: "it-IT-IsabellaNeural", + Gender: "Female", + Locale: "it-IT", + LocaleName: "Italian (Italy)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (it-IT, DiegoNeural)", + DisplayName: "Diego", + LocalName: "Diego", + ShortName: "it-IT-DiegoNeural", + Gender: "Male", + Locale: "it-IT", + LocaleName: "Italian (Italy)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (it-IT, ElsaNeural)", + DisplayName: "Elsa", + LocalName: "Elsa", + ShortName: "it-IT-ElsaNeural", + Gender: "Female", + Locale: "it-IT", + LocaleName: "Italian (Italy)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ja-JP, NanamiNeural)", + DisplayName: "Nanami", + LocalName: "七海", + ShortName: "ja-JP-NanamiNeural", + Gender: "Female", + Locale: "ja-JP", + LocaleName: "Japanese (Japan)", + StyleList: ["chat", "customerservice", "cheerful"], + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ja-JP, KeitaNeural)", + DisplayName: "Keita", + LocalName: "圭太", + ShortName: "ja-JP-KeitaNeural", + Gender: "Male", + Locale: "ja-JP", + LocaleName: "Japanese (Japan)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (jv-ID, DimasNeural)", + DisplayName: "Dimas", + LocalName: "Dimas", + ShortName: "jv-ID-DimasNeural", + Gender: "Male", + Locale: "jv-ID", + LocaleName: "Javanese (Indonesia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (jv-ID, SitiNeural)", + DisplayName: "Siti", + LocalName: "Siti", + ShortName: "jv-ID-SitiNeural", + Gender: "Female", + Locale: "jv-ID", + LocaleName: "Javanese (Indonesia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (kk-KZ, AigulNeural)", + DisplayName: "Aigul", + LocalName: "Айгүл", + ShortName: "kk-KZ-AigulNeural", + Gender: "Female", + Locale: "kk-KZ", + LocaleName: "Kazakh (Kazakhstan)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (kk-KZ, DauletNeural)", + DisplayName: "Daulet", + LocalName: "Дәулет", + ShortName: "kk-KZ-DauletNeural", + Gender: "Male", + Locale: "kk-KZ", + LocaleName: "Kazakh (Kazakhstan)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (km-KH, PisethNeural)", + DisplayName: "Piseth", + LocalName: "ពិសិដ្ឋ", + ShortName: "km-KH-PisethNeural", + Gender: "Male", + Locale: "km-KH", + LocaleName: "Khmer (Cambodia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (km-KH, SreymomNeural)", + DisplayName: "Sreymom", + LocalName: "ស្រីមុំ", + ShortName: "km-KH-SreymomNeural", + Gender: "Female", + Locale: "km-KH", + LocaleName: "Khmer (Cambodia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (kn-IN, GaganNeural)", + DisplayName: "Gagan", + LocalName: "ಗಗನ್", + ShortName: "kn-IN-GaganNeural", + Gender: "Male", + Locale: "kn-IN", + LocaleName: "Kannada (India)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (kn-IN, SapnaNeural)", + DisplayName: "Sapna", + LocalName: "ಸಪ್ನಾ", + ShortName: "kn-IN-SapnaNeural", + Gender: "Female", + Locale: "kn-IN", + LocaleName: "Kannada (India)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ko-KR, SunHiNeural)", + DisplayName: "Sun-Hi", + LocalName: "선히", + ShortName: "ko-KR-SunHiNeural", + Gender: "Female", + Locale: "ko-KR", + LocaleName: "Korean (Korea)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ko-KR, InJoonNeural)", + DisplayName: "InJoon", + LocalName: "인준", + ShortName: "ko-KR-InJoonNeural", + Gender: "Male", + Locale: "ko-KR", + LocaleName: "Korean (Korea)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (lo-LA, ChanthavongNeural)", + DisplayName: "Chanthavong", + LocalName: "ຈັນທະວົງ", + ShortName: "lo-LA-ChanthavongNeural", + Gender: "Male", + Locale: "lo-LA", + LocaleName: "Lao (Laos)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (lo-LA, KeomanyNeural)", + DisplayName: "Keomany", + LocalName: "ແກ້ວມະນີ", + ShortName: "lo-LA-KeomanyNeural", + Gender: "Female", + Locale: "lo-LA", + LocaleName: "Lao (Laos)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (lt-LT, LeonasNeural)", + DisplayName: "Leonas", + LocalName: "Leonas", + ShortName: "lt-LT-LeonasNeural", + Gender: "Male", + Locale: "lt-LT", + LocaleName: "Lithuanian (Lithuania)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (lt-LT, OnaNeural)", + DisplayName: "Ona", + LocalName: "Ona", + ShortName: "lt-LT-OnaNeural", + Gender: "Female", + Locale: "lt-LT", + LocaleName: "Lithuanian (Lithuania)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (lv-LV, EveritaNeural)", + DisplayName: "Everita", + LocalName: "Everita", + ShortName: "lv-LV-EveritaNeural", + Gender: "Female", + Locale: "lv-LV", + LocaleName: "Latvian (Latvia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (lv-LV, NilsNeural)", + DisplayName: "Nils", + LocalName: "Nils", + ShortName: "lv-LV-NilsNeural", + Gender: "Male", + Locale: "lv-LV", + LocaleName: "Latvian (Latvia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (mk-MK, AleksandarNeural)", + DisplayName: "Aleksandar", + LocalName: "Александар", + ShortName: "mk-MK-AleksandarNeural", + Gender: "Male", + Locale: "mk-MK", + LocaleName: "Macedonian (Republic of North Macedonia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (mk-MK, MarijaNeural)", + DisplayName: "Marija", + LocalName: "Марија", + ShortName: "mk-MK-MarijaNeural", + Gender: "Female", + Locale: "mk-MK", + LocaleName: "Macedonian (Republic of North Macedonia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ml-IN, MidhunNeural)", + DisplayName: "Midhun", + LocalName: "മിഥുൻ", + ShortName: "ml-IN-MidhunNeural", + Gender: "Male", + Locale: "ml-IN", + LocaleName: "Malayalam (India)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ml-IN, SobhanaNeural)", + DisplayName: "Sobhana", + LocalName: "ശോഭന", + ShortName: "ml-IN-SobhanaNeural", + Gender: "Female", + Locale: "ml-IN", + LocaleName: "Malayalam (India)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (mr-IN, AarohiNeural)", + DisplayName: "Aarohi", + LocalName: "आरोही", + ShortName: "mr-IN-AarohiNeural", + Gender: "Female", + Locale: "mr-IN", + LocaleName: "Marathi (India)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (mr-IN, ManoharNeural)", + DisplayName: "Manohar", + LocalName: "मनोहर", + ShortName: "mr-IN-ManoharNeural", + Gender: "Male", + Locale: "mr-IN", + LocaleName: "Marathi (India)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ms-MY, OsmanNeural)", + DisplayName: "Osman", + LocalName: "Osman", + ShortName: "ms-MY-OsmanNeural", + Gender: "Male", + Locale: "ms-MY", + LocaleName: "Malay (Malaysia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ms-MY, YasminNeural)", + DisplayName: "Yasmin", + LocalName: "Yasmin", + ShortName: "ms-MY-YasminNeural", + Gender: "Female", + Locale: "ms-MY", + LocaleName: "Malay (Malaysia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (mt-MT, GraceNeural)", + DisplayName: "Grace", + LocalName: "Grace", + ShortName: "mt-MT-GraceNeural", + Gender: "Female", + Locale: "mt-MT", + LocaleName: "Maltese (Malta)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (mt-MT, JosephNeural)", + DisplayName: "Joseph", + LocalName: "Joseph", + ShortName: "mt-MT-JosephNeural", + Gender: "Male", + Locale: "mt-MT", + LocaleName: "Maltese (Malta)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (my-MM, NilarNeural)", + DisplayName: "Nilar", + LocalName: "နီလာ", + ShortName: "my-MM-NilarNeural", + Gender: "Female", + Locale: "my-MM", + LocaleName: "Burmese (Myanmar)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (my-MM, ThihaNeural)", + DisplayName: "Thiha", + LocalName: "သီဟ", + ShortName: "my-MM-ThihaNeural", + Gender: "Male", + Locale: "my-MM", + LocaleName: "Burmese (Myanmar)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (nb-NO, PernilleNeural)", + DisplayName: "Pernille", + LocalName: "Pernille", + ShortName: "nb-NO-PernilleNeural", + Gender: "Female", + Locale: "nb-NO", + LocaleName: "Norwegian (Bokmål, Norway)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (nb-NO, FinnNeural)", + DisplayName: "Finn", + LocalName: "Finn", + ShortName: "nb-NO-FinnNeural", + Gender: "Male", + Locale: "nb-NO", + LocaleName: "Norwegian (Bokmål, Norway)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (nb-NO, IselinNeural)", + DisplayName: "Iselin", + LocalName: "Iselin", + ShortName: "nb-NO-IselinNeural", + Gender: "Female", + Locale: "nb-NO", + LocaleName: "Norwegian (Bokmål, Norway)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (nl-BE, ArnaudNeural)", + DisplayName: "Arnaud", + LocalName: "Arnaud", + ShortName: "nl-BE-ArnaudNeural", + Gender: "Male", + Locale: "nl-BE", + LocaleName: "Dutch (Belgium)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (nl-BE, DenaNeural)", + DisplayName: "Dena", + LocalName: "Dena", + ShortName: "nl-BE-DenaNeural", + Gender: "Female", + Locale: "nl-BE", + LocaleName: "Dutch (Belgium)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (nl-NL, ColetteNeural)", + DisplayName: "Colette", + LocalName: "Colette", + ShortName: "nl-NL-ColetteNeural", + Gender: "Female", + Locale: "nl-NL", + LocaleName: "Dutch (Netherlands)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (nl-NL, FennaNeural)", + DisplayName: "Fenna", + LocalName: "Fenna", + ShortName: "nl-NL-FennaNeural", + Gender: "Female", + Locale: "nl-NL", + LocaleName: "Dutch (Netherlands)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (nl-NL, MaartenNeural)", + DisplayName: "Maarten", + LocalName: "Maarten", + ShortName: "nl-NL-MaartenNeural", + Gender: "Male", + Locale: "nl-NL", + LocaleName: "Dutch (Netherlands)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (pl-PL, AgnieszkaNeural)", + DisplayName: "Agnieszka", + LocalName: "Agnieszka", + ShortName: "pl-PL-AgnieszkaNeural", + Gender: "Female", + Locale: "pl-PL", + LocaleName: "Polish (Poland)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (pl-PL, MarekNeural)", + DisplayName: "Marek", + LocalName: "Marek", + ShortName: "pl-PL-MarekNeural", + Gender: "Male", + Locale: "pl-PL", + LocaleName: "Polish (Poland)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (pl-PL, ZofiaNeural)", + DisplayName: "Zofia", + LocalName: "Zofia", + ShortName: "pl-PL-ZofiaNeural", + Gender: "Female", + Locale: "pl-PL", + LocaleName: "Polish (Poland)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ps-AF, GulNawazNeural)", + DisplayName: "Gul Nawaz", + LocalName: " ګل نواز", + ShortName: "ps-AF-GulNawazNeural", + Gender: "Male", + Locale: "ps-AF", + LocaleName: "Pashto (Afghanistan)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ps-AF, LatifaNeural)", + DisplayName: "Latifa", + LocalName: "لطيفه", + ShortName: "ps-AF-LatifaNeural", + Gender: "Female", + Locale: "ps-AF", + LocaleName: "Pashto (Afghanistan)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (pt-BR, FranciscaNeural)", + DisplayName: "Francisca", + LocalName: "Francisca", + ShortName: "pt-BR-FranciscaNeural", + Gender: "Female", + Locale: "pt-BR", + LocaleName: "Portuguese (Brazil)", + StyleList: ["calm"], + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (pt-BR, AntonioNeural)", + DisplayName: "Antonio", + LocalName: "Antônio", + ShortName: "pt-BR-AntonioNeural", + Gender: "Male", + Locale: "pt-BR", + LocaleName: "Portuguese (Brazil)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (pt-PT, DuarteNeural)", + DisplayName: "Duarte", + LocalName: "Duarte", + ShortName: "pt-PT-DuarteNeural", + Gender: "Male", + Locale: "pt-PT", + LocaleName: "Portuguese (Portugal)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (pt-PT, FernandaNeural)", + DisplayName: "Fernanda", + LocalName: "Fernanda", + ShortName: "pt-PT-FernandaNeural", + Gender: "Female", + Locale: "pt-PT", + LocaleName: "Portuguese (Portugal)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (pt-PT, RaquelNeural)", + DisplayName: "Raquel", + LocalName: "Raquel", + ShortName: "pt-PT-RaquelNeural", + Gender: "Female", + Locale: "pt-PT", + LocaleName: "Portuguese (Portugal)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ro-RO, AlinaNeural)", + DisplayName: "Alina", + LocalName: "Alina", + ShortName: "ro-RO-AlinaNeural", + Gender: "Female", + Locale: "ro-RO", + LocaleName: "Romanian (Romania)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ro-RO, EmilNeural)", + DisplayName: "Emil", + LocalName: "Emil", + ShortName: "ro-RO-EmilNeural", + Gender: "Male", + Locale: "ro-RO", + LocaleName: "Romanian (Romania)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ru-RU, SvetlanaNeural)", + DisplayName: "Svetlana", + LocalName: "Светлана", + ShortName: "ru-RU-SvetlanaNeural", + Gender: "Female", + Locale: "ru-RU", + LocaleName: "Russian (Russia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ru-RU, DariyaNeural)", + DisplayName: "Dariya", + LocalName: "Дария", + ShortName: "ru-RU-DariyaNeural", + Gender: "Female", + Locale: "ru-RU", + LocaleName: "Russian (Russia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ru-RU, DmitryNeural)", + DisplayName: "Dmitry", + LocalName: "Дмитрий", + ShortName: "ru-RU-DmitryNeural", + Gender: "Male", + Locale: "ru-RU", + LocaleName: "Russian (Russia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (si-LK, SameeraNeural)", + DisplayName: "Sameera", + LocalName: "සමීර", + ShortName: "si-LK-SameeraNeural", + Gender: "Male", + Locale: "si-LK", + LocaleName: "Sinhala (Sri Lanka)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (si-LK, ThiliniNeural)", + DisplayName: "Thilini", + LocalName: "තිළිණි", + ShortName: "si-LK-ThiliniNeural", + Gender: "Female", + Locale: "si-LK", + LocaleName: "Sinhala (Sri Lanka)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (sk-SK, LukasNeural)", + DisplayName: "Lukas", + LocalName: "Lukáš", + ShortName: "sk-SK-LukasNeural", + Gender: "Male", + Locale: "sk-SK", + LocaleName: "Slovak (Slovakia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (sk-SK, ViktoriaNeural)", + DisplayName: "Viktoria", + LocalName: "Viktória", + ShortName: "sk-SK-ViktoriaNeural", + Gender: "Female", + Locale: "sk-SK", + LocaleName: "Slovak (Slovakia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (sl-SI, PetraNeural)", + DisplayName: "Petra", + LocalName: "Petra", + ShortName: "sl-SI-PetraNeural", + Gender: "Female", + Locale: "sl-SI", + LocaleName: "Slovenian (Slovenia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (sl-SI, RokNeural)", + DisplayName: "Rok", + LocalName: "Rok", + ShortName: "sl-SI-RokNeural", + Gender: "Male", + Locale: "sl-SI", + LocaleName: "Slovenian (Slovenia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (so-SO, MuuseNeural)", + DisplayName: "Muuse", + LocalName: "Muuse", + ShortName: "so-SO-MuuseNeural", + Gender: "Male", + Locale: "so-SO", + LocaleName: "Somali (Somalia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (so-SO, UbaxNeural)", + DisplayName: "Ubax", + LocalName: "Ubax", + ShortName: "so-SO-UbaxNeural", + Gender: "Female", + Locale: "so-SO", + LocaleName: "Somali (Somalia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (sr-RS, NicholasNeural)", + DisplayName: "Nicholas", + LocalName: "Никола", + ShortName: "sr-RS-NicholasNeural", + Gender: "Male", + Locale: "sr-RS", + LocaleName: "Serbian (Serbia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (sr-RS, SophieNeural)", + DisplayName: "Sophie", + LocalName: "Софија", + ShortName: "sr-RS-SophieNeural", + Gender: "Female", + Locale: "sr-RS", + LocaleName: "Serbian (Serbia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (su-ID, JajangNeural)", + DisplayName: "Jajang", + LocalName: "Jajang", + ShortName: "su-ID-JajangNeural", + Gender: "Male", + Locale: "su-ID", + LocaleName: "Sundanese (Indonesia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (su-ID, TutiNeural)", + DisplayName: "Tuti", + LocalName: "Tuti", + ShortName: "su-ID-TutiNeural", + Gender: "Female", + Locale: "su-ID", + LocaleName: "Sundanese (Indonesia)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (sv-SE, SofieNeural)", + DisplayName: "Sofie", + LocalName: "Sofie", + ShortName: "sv-SE-SofieNeural", + Gender: "Female", + Locale: "sv-SE", + LocaleName: "Swedish (Sweden)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (sv-SE, HilleviNeural)", + DisplayName: "Hillevi", + LocalName: "Hillevi", + ShortName: "sv-SE-HilleviNeural", + Gender: "Female", + Locale: "sv-SE", + LocaleName: "Swedish (Sweden)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (sv-SE, MattiasNeural)", + DisplayName: "Mattias", + LocalName: "Mattias", + ShortName: "sv-SE-MattiasNeural", + Gender: "Male", + Locale: "sv-SE", + LocaleName: "Swedish (Sweden)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (sw-KE, RafikiNeural)", + DisplayName: "Rafiki", + LocalName: "Rafiki", + ShortName: "sw-KE-RafikiNeural", + Gender: "Male", + Locale: "sw-KE", + LocaleName: "Swahili (Kenya)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (sw-KE, ZuriNeural)", + DisplayName: "Zuri", + LocalName: "Zuri", + ShortName: "sw-KE-ZuriNeural", + Gender: "Female", + Locale: "sw-KE", + LocaleName: "Swahili (Kenya)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (sw-TZ, DaudiNeural)", + DisplayName: "Daudi", + LocalName: "Daudi", + ShortName: "sw-TZ-DaudiNeural", + Gender: "Male", + Locale: "sw-TZ", + LocaleName: "Swahili (Tanzania)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (sw-TZ, RehemaNeural)", + DisplayName: "Rehema", + LocalName: "Rehema", + ShortName: "sw-TZ-RehemaNeural", + Gender: "Female", + Locale: "sw-TZ", + LocaleName: "Swahili (Tanzania)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ta-IN, PallaviNeural)", + DisplayName: "Pallavi", + LocalName: "பல்லவி", + ShortName: "ta-IN-PallaviNeural", + Gender: "Female", + Locale: "ta-IN", + LocaleName: "Tamil (India)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ta-IN, ValluvarNeural)", + DisplayName: "Valluvar", + LocalName: "வள்ளுவர்", + ShortName: "ta-IN-ValluvarNeural", + Gender: "Male", + Locale: "ta-IN", + LocaleName: "Tamil (India)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ta-LK, KumarNeural)", + DisplayName: "Kumar", + LocalName: "குமார்", + ShortName: "ta-LK-KumarNeural", + Gender: "Male", + Locale: "ta-LK", + LocaleName: "Tamil (Sri Lanka)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ta-LK, SaranyaNeural)", + DisplayName: "Saranya", + LocalName: "சரண்யா", + ShortName: "ta-LK-SaranyaNeural", + Gender: "Female", + Locale: "ta-LK", + LocaleName: "Tamil (Sri Lanka)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ta-SG, AnbuNeural)", + DisplayName: "Anbu", + LocalName: "அன்பு", + ShortName: "ta-SG-AnbuNeural", + Gender: "Male", + Locale: "ta-SG", + LocaleName: "Tamil (Singapore)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ta-SG, VenbaNeural)", + DisplayName: "Venba", + LocalName: "வெண்பா", + ShortName: "ta-SG-VenbaNeural", + Gender: "Female", + Locale: "ta-SG", + LocaleName: "Tamil (Singapore)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (te-IN, MohanNeural)", + DisplayName: "Mohan", + LocalName: "మోహన్", + ShortName: "te-IN-MohanNeural", + Gender: "Male", + Locale: "te-IN", + LocaleName: "Telugu (India)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (te-IN, ShrutiNeural)", + DisplayName: "Shruti", + LocalName: "శ్రుతి", + ShortName: "te-IN-ShrutiNeural", + Gender: "Female", + Locale: "te-IN", + LocaleName: "Telugu (India)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (th-TH, PremwadeeNeural)", + DisplayName: "Premwadee", + LocalName: "เปรมวดี", + ShortName: "th-TH-PremwadeeNeural", + Gender: "Female", + Locale: "th-TH", + LocaleName: "Thai (Thailand)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (th-TH, AcharaNeural)", + DisplayName: "Achara", + LocalName: "อัจฉรา", + ShortName: "th-TH-AcharaNeural", + Gender: "Female", + Locale: "th-TH", + LocaleName: "Thai (Thailand)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (th-TH, NiwatNeural)", + DisplayName: "Niwat", + LocalName: "นิวัฒน์", + ShortName: "th-TH-NiwatNeural", + Gender: "Male", + Locale: "th-TH", + LocaleName: "Thai (Thailand)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (tr-TR, AhmetNeural)", + DisplayName: "Ahmet", + LocalName: "Ahmet", + ShortName: "tr-TR-AhmetNeural", + Gender: "Male", + Locale: "tr-TR", + LocaleName: "Turkish (Turkey)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (tr-TR, EmelNeural)", + DisplayName: "Emel", + LocalName: "Emel", + ShortName: "tr-TR-EmelNeural", + Gender: "Female", + Locale: "tr-TR", + LocaleName: "Turkish (Turkey)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (uk-UA, OstapNeural)", + DisplayName: "Ostap", + LocalName: "Остап", + ShortName: "uk-UA-OstapNeural", + Gender: "Male", + Locale: "uk-UA", + LocaleName: "Ukrainian (Ukraine)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (uk-UA, PolinaNeural)", + DisplayName: "Polina", + LocalName: "Поліна", + ShortName: "uk-UA-PolinaNeural", + Gender: "Female", + Locale: "uk-UA", + LocaleName: "Ukrainian (Ukraine)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ur-IN, GulNeural)", + DisplayName: "Gul", + LocalName: "گل", + ShortName: "ur-IN-GulNeural", + Gender: "Female", + Locale: "ur-IN", + LocaleName: "Urdu (India)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ur-IN, SalmanNeural)", + DisplayName: "Salman", + LocalName: "سلمان", + ShortName: "ur-IN-SalmanNeural", + Gender: "Male", + Locale: "ur-IN", + LocaleName: "Urdu (India)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ur-PK, AsadNeural)", + DisplayName: "Asad", + LocalName: "اسد", + ShortName: "ur-PK-AsadNeural", + Gender: "Male", + Locale: "ur-PK", + LocaleName: "Urdu (Pakistan)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (ur-PK, UzmaNeural)", + DisplayName: "Uzma", + LocalName: "عظمیٰ", + ShortName: "ur-PK-UzmaNeural", + Gender: "Female", + Locale: "ur-PK", + LocaleName: "Urdu (Pakistan)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (uz-UZ, MadinaNeural)", + DisplayName: "Madina", + LocalName: "Madina", + ShortName: "uz-UZ-MadinaNeural", + Gender: "Female", + Locale: "uz-UZ", + LocaleName: "Uzbek (Uzbekistan)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (uz-UZ, SardorNeural)", + DisplayName: "Sardor", + LocalName: "Sardor", + ShortName: "uz-UZ-SardorNeural", + Gender: "Male", + Locale: "uz-UZ", + LocaleName: "Uzbek (Uzbekistan)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (vi-VN, HoaiMyNeural)", + DisplayName: "HoaiMy", + LocalName: "Hoài My", + ShortName: "vi-VN-HoaiMyNeural", + Gender: "Female", + Locale: "vi-VN", + LocaleName: "Vietnamese (Vietnam)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (vi-VN, NamMinhNeural)", + DisplayName: "NamMinh", + LocalName: "Nam Minh", + ShortName: "vi-VN-NamMinhNeural", + Gender: "Male", + Locale: "vi-VN", + LocaleName: "Vietnamese (Vietnam)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (zh-CN, XiaoxiaoNeural)", + DisplayName: "Xiaoxiao", + LocalName: "晓晓", + ShortName: "zh-CN-XiaoxiaoNeural", + Gender: "Female", + Locale: "zh-CN", + LocaleName: "Chinese (Mandarin, Simplified)", + StyleList: [ + "assistant", + "chat", + "customerservice", + "newscast", + "affectionate", + "angry", + "calm", + "cheerful", + "disgruntled", + "fearful", + "gentle", + "lyrical", + "sad", + "serious", + ], + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (zh-CN, YunyangNeural)", + DisplayName: "Yunyang", + LocalName: "云扬", + ShortName: "zh-CN-YunyangNeural", + Gender: "Male", + Locale: "zh-CN", + LocaleName: "Chinese (Mandarin, Simplified)", + StyleList: ["customerservice", "narration-professional", "newscast-casual"], + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (zh-CN, XiaochenNeural)", + DisplayName: "Xiaochen", + LocalName: "晓辰", + ShortName: "zh-CN-XiaochenNeural", + Gender: "Female", + Locale: "zh-CN", + LocaleName: "Chinese (Mandarin, Simplified)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (zh-CN, XiaohanNeural)", + DisplayName: "Xiaohan", + LocalName: "晓涵", + ShortName: "zh-CN-XiaohanNeural", + Gender: "Female", + Locale: "zh-CN", + LocaleName: "Chinese (Mandarin, Simplified)", + StyleList: [ + "calm", + "fearful", + "cheerful", + "disgruntled", + "serious", + "angry", + "sad", + "gentle", + "affectionate", + "embarrassed", + ], + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (zh-CN, XiaomoNeural)", + DisplayName: "Xiaomo", + LocalName: "晓墨", + ShortName: "zh-CN-XiaomoNeural", + Gender: "Female", + Locale: "zh-CN", + LocaleName: "Chinese (Mandarin, Simplified)", + StyleList: [ + "embarrassed", + "calm", + "fearful", + "cheerful", + "disgruntled", + "serious", + "angry", + "sad", + "depressed", + "affectionate", + "gentle", + "envious", + ], + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + RolePlayList: [ + "YoungAdultFemale", + "YoungAdultMale", + "OlderAdultFemale", + "OlderAdultMale", + "SeniorFemale", + "SeniorMale", + "Girl", + "Boy", + ], + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (zh-CN, XiaoqiuNeural)", + DisplayName: "Xiaoqiu", + LocalName: "晓秋", + ShortName: "zh-CN-XiaoqiuNeural", + Gender: "Female", + Locale: "zh-CN", + LocaleName: "Chinese (Mandarin, Simplified)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (zh-CN, XiaoruiNeural)", + DisplayName: "Xiaorui", + LocalName: "晓睿", + ShortName: "zh-CN-XiaoruiNeural", + Gender: "Female", + Locale: "zh-CN", + LocaleName: "Chinese (Mandarin, Simplified)", + StyleList: ["calm", "fearful", "angry", "sad"], + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (zh-CN, XiaoshuangNeural)", + DisplayName: "Xiaoshuang", + LocalName: "晓双", + ShortName: "zh-CN-XiaoshuangNeural", + Gender: "Female", + Locale: "zh-CN", + LocaleName: "Chinese (Mandarin, Simplified)", + StyleList: ["chat"], + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (zh-CN, XiaoxuanNeural)", + DisplayName: "Xiaoxuan", + LocalName: "晓萱", + ShortName: "zh-CN-XiaoxuanNeural", + Gender: "Female", + Locale: "zh-CN", + LocaleName: "Chinese (Mandarin, Simplified)", + StyleList: [ + "calm", + "fearful", + "cheerful", + "disgruntled", + "serious", + "angry", + "gentle", + "depressed", + ], + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + RolePlayList: [ + "YoungAdultFemale", + "YoungAdultMale", + "OlderAdultFemale", + "OlderAdultMale", + "SeniorFemale", + "SeniorMale", + "Girl", + "Boy", + ], + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (zh-CN, XiaoyanNeural)", + DisplayName: "Xiaoyan", + LocalName: "晓颜", + ShortName: "zh-CN-XiaoyanNeural", + Gender: "Female", + Locale: "zh-CN", + LocaleName: "Chinese (Mandarin, Simplified)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (zh-CN, XiaoyouNeural)", + DisplayName: "Xiaoyou", + LocalName: "晓悠", + ShortName: "zh-CN-XiaoyouNeural", + Gender: "Female", + Locale: "zh-CN", + LocaleName: "Chinese (Mandarin, Simplified)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (zh-CN, YunxiNeural)", + DisplayName: "Yunxi", + LocalName: "云希", + ShortName: "zh-CN-YunxiNeural", + Gender: "Male", + Locale: "zh-CN", + LocaleName: "Chinese (Mandarin, Simplified)", + StyleList: [ + "narration-relaxed", + "embarrassed", + "fearful", + "cheerful", + "disgruntled", + "serious", + "angry", + "sad", + "depressed", + "chat", + "assistant", + "newscast", + ], + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + RolePlayList: ["Narrator", "YoungAdultMale", "Boy"], + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (zh-CN, YunyeNeural)", + DisplayName: "Yunye", + LocalName: "云野", + ShortName: "zh-CN-YunyeNeural", + Gender: "Male", + Locale: "zh-CN", + LocaleName: "Chinese (Mandarin, Simplified)", + StyleList: [ + "embarrassed", + "calm", + "fearful", + "cheerful", + "disgruntled", + "serious", + "angry", + "sad", + ], + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + RolePlayList: [ + "YoungAdultFemale", + "YoungAdultMale", + "OlderAdultFemale", + "OlderAdultMale", + "SeniorFemale", + "SeniorMale", + "Girl", + "Boy", + ], + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (zh-CN-LN, XiaobeiNeural)", + DisplayName: "Xiaobei", + LocalName: "晓北", + ShortName: "zh-CN-LN-XiaobeiNeural", + Gender: "Female", + Locale: "zh-CN", + LocaleName: "Chinese (Mandarin, Simplified)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (zh-CN-SC, YunxiNeural)", + DisplayName: "YunxiSichuan", + LocalName: "云希四川", + ShortName: "zh-CN-SC-YunxiNeural", + Gender: "Male", + Locale: "zh-CN", + LocaleName: "Chinese (Mandarin, Simplified)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (zh-CN, YunfengNeural)", + DisplayName: "Yunfeng", + LocalName: "云枫", + ShortName: "zh-CN-YunfengNeural", + Gender: "Male", + Locale: "zh-CN", + LocaleName: "Chinese (Mandarin, Simplified)", + StyleList: [ + "angry", + "disgruntled", + "cheerful", + "fearful", + "sad", + "serious", + "depressed", + ], + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (zh-CN, YunhaoNeural)", + DisplayName: "Yunhao", + LocalName: "云皓", + ShortName: "zh-CN-YunhaoNeural", + Gender: "Male", + Locale: "zh-CN", + LocaleName: "Chinese (Mandarin, Simplified)", + StyleList: ["Advertisement_upbeat"], + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (zh-CN, YunjianNeural)", + DisplayName: "Yunjian", + LocalName: "云健", + ShortName: "zh-CN-YunjianNeural", + Gender: "Male", + Locale: "zh-CN", + LocaleName: "Chinese (Mandarin, Simplified)", + StyleList: [ + "Narration-relaxed", + "Sports_commentary", + "Sports_commentary_excited", + ], + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "Preview", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (zh-HK, HiuMaanNeural)", + DisplayName: "HiuMaan", + LocalName: "曉曼", + ShortName: "zh-HK-HiuMaanNeural", + Gender: "Female", + Locale: "zh-HK", + LocaleName: "Chinese (Cantonese, Traditional)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (zh-HK, HiuGaaiNeural)", + DisplayName: "HiuGaai", + LocalName: "曉佳", + ShortName: "zh-HK-HiuGaaiNeural", + Gender: "Female", + Locale: "zh-HK", + LocaleName: "Chinese (Cantonese, Traditional)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (zh-HK, WanLungNeural)", + DisplayName: "WanLung", + LocalName: "雲龍", + ShortName: "zh-HK-WanLungNeural", + Gender: "Male", + Locale: "zh-HK", + LocaleName: "Chinese (Cantonese, Traditional)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (zh-TW, HsiaoChenNeural)", + DisplayName: "HsiaoChen", + LocalName: "曉臻", + ShortName: "zh-TW-HsiaoChenNeural", + Gender: "Female", + Locale: "zh-TW", + LocaleName: "Chinese (Taiwanese Mandarin)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (zh-TW, HsiaoYuNeural)", + DisplayName: "HsiaoYu", + LocalName: "曉雨", + ShortName: "zh-TW-HsiaoYuNeural", + Gender: "Female", + Locale: "zh-TW", + LocaleName: "Chinese (Taiwanese Mandarin)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (zh-TW, YunJheNeural)", + DisplayName: "YunJhe", + LocalName: "雲哲", + ShortName: "zh-TW-YunJheNeural", + Gender: "Male", + Locale: "zh-TW", + LocaleName: "Chinese (Taiwanese Mandarin)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (zu-ZA, ThandoNeural)", + DisplayName: "Thando", + LocalName: "Thando", + ShortName: "zu-ZA-ThandoNeural", + Gender: "Female", + Locale: "zu-ZA", + LocaleName: "Zulu (South Africa)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, + { + Name: "Microsoft Server Speech Text to Speech Voice (zu-ZA, ThembaNeural)", + DisplayName: "Themba", + LocalName: "Themba", + ShortName: "zu-ZA-ThembaNeural", + Gender: "Male", + Locale: "zu-ZA", + LocaleName: "Zulu (South Africa)", + SampleRateHertz: "24000", + VoiceType: "Neural", + Status: "GA", + }, +]; + +export default rawData; diff --git a/src/vendor/speech-synthesis/wellsaid-speech-synthesis-lang.ts b/src/vendor/speech-synthesis/wellsaid-speech-synthesis-lang.ts new file mode 100644 index 0000000..8b7db50 --- /dev/null +++ b/src/vendor/speech-synthesis/wellsaid-speech-synthesis-lang.ts @@ -0,0 +1,43 @@ +import type { VoiceLanguage } from "../types"; + +export const languages: VoiceLanguage[] = [ + { + code: "en-US", + name: "English (US)", + voices: [ + { value: "3", name: "Alana B." }, + { value: "4", name: "Ramona J." }, + { value: "5", name: "Ramona J. (promo)" }, + { value: "7", name: "Wade C." }, + { value: "8", name: "Sofia H." }, + { value: "9", name: "David D." }, + { value: "11", name: "Isabel V." }, + { value: "12", name: "Ava H." }, + { value: "13", name: "Jeremy G." }, + { value: "14", name: "Nicole L." }, + { value: "15", name: "Paige L." }, + { value: "16", name: "Tobin A." }, + { value: "17", name: "Kai M." }, + { value: "18", name: "Tristan F." }, + { value: "19", name: "Patrick K." }, + { value: "20", name: "Soifia H. (promo)" }, + { value: "21", name: "Damian P. (promo)" }, + { value: "22", name: "Jodi P. (promo)" }, + { value: "23", name: "Lee M. (promo)" }, + { value: "24", name: "Selene R. (promo)" }, + { value: "26", name: "Wade C. (promo)" }, + { value: "27", name: "Joe F." }, + { value: "28", name: "Joe F. (promo)" }, + { value: "29", name: "Garry J. (character)" }, + { value: "33", name: "Jude D." }, + { value: "34", name: "Eric S. (promo)" }, + { value: "35", name: "Chase J." }, + { value: "37", name: "Steve B. (promo)" }, + { value: "38", name: "Bella B. (promo)" }, + { value: "39", name: "Tilda C. (promo)" }, + { value: "41", name: "Paul B. (promo)" }, + ], + }, +]; + +export default languages; diff --git a/src/vendor/types.ts b/src/vendor/types.ts new file mode 100644 index 0000000..294488f --- /dev/null +++ b/src/vendor/types.ts @@ -0,0 +1,74 @@ +export type Vendor = "Google" | "AWS" | "Microsoft" | "WellSaid"; + +export interface VendorOptions { + name: Vendor; + value: Lowercase; +} + +export interface Region { + name: string; + value: string; +} + +export interface Voice { + name: string; + value: string; +} + +export interface Language { + name: string; + code: string; +} + +export interface VoiceLanguage extends Language { + voices: Voice[]; +} + +/** https://cloud.google.com/iam/docs/creating-managing-service-account-keys */ +export interface GoogleServiceKey { + type: string; + auth_uri: string; + token_uri: string; + client_id: string; + project_id: string; + private_key: string; + client_email: string; + private_key_id: string; + client_x509_cert_url: string; + auth_provider_x509_cert_url: string; +} + +export interface RegionVendors { + aws: Region[]; + microsoft: Region[]; +} + +export interface RecognizerVendors { + aws: Language[]; + google: Language[]; + microsoft: Language[]; +} + +export interface SynthesisVendors { + aws: VoiceLanguage[]; + google: VoiceLanguage[]; + microsoft: VoiceLanguage[]; + wellsaid: VoiceLanguage[]; +} + +export interface MSRawSpeech { + Name: string; + DisplayName: string; + LocalName: string; + ShortName: string; + Gender: string; + Locale: string; + LocaleName: string; + SampleRateHertz: string; + VoiceType: string; + Status: string; + StyleList?: string[]; + RolePlayList?: string[]; + WordPerMinute?: Record; + SecondaryLocaleList?: string[]; +} diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..b93b327 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,27 @@ +{ + "compilerOptions": { + "types": ["@types/react", "@types/react-dom", "@types/react-blockies"], + "target": "ESNext", + "useDefineForClassFields": true, + "lib": ["DOM", "DOM.Iterable", "ESNext"], + "allowJs": false, + "skipLibCheck": true, + "esModuleInterop": false, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "module": "ESNext", + "moduleResolution": "Node", + "resolveJsonModule": true, + "removeComments": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + "baseUrl": ".", + "paths": { + "src": ["./src"] + } + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/tsconfig.node.json b/tsconfig.node.json new file mode 100644 index 0000000..35acd00 --- /dev/null +++ b/tsconfig.node.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "types": ["@types/node", "@types/express", "@types/cors"], + "composite": true, + "module": "esnext", + "moduleResolution": "node", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts", "server/dev.server.ts"] +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..2919ff1 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,21 @@ +import path from "path"; +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react"; + +import type { UserConfigExport } from "vite"; + +// https://vitejs.dev/config/ +export default defineConfig(() => { + const config: UserConfigExport = { + plugins: [react()], + + // Alias our local ./src directory for app imports + resolve: { + alias: { + src: path.resolve(__dirname, "src"), + }, + }, + }; + + return config; +});

    bE;M^?uOLNg~6hkkSvx7c4GHkGc$MX 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�N*`1KZNgxSH8Uh3YZGf~;meLlcK$mIhOs8*#?o4M|V7g2@ zU1&Sg256@%UFZg7T1aPz{Jy_)uVmSl12b>l=lvfaY)881oO_nv`R$8Wacxm_**Pm_ zT8`M%a$iU-44t=ydTKmXA)CFS!U%ijPFww^>gi5z)KphuHrD&gKWy!sxM(uZ84FCC zudMB_FmBRloq=rM;G~ysi#%(hV#Zd@sFQya*0$i0zTFiK(;%EL3k#JmyeK8q^w-q){jmZNSd_ z5whbgdlX&%s6^?tv;%#Mq>pgtlV9WqSc!Ak?x`_7UJ2J_IIeL`FJX3-lFC|nHI!q^ z8grDzJL+~p#zPfNpsywUXkL-Uev2;8RM)t8CsO3(-cz(aCrt9(s7~49`^ZbtIWWM4 zfuVt+HG`e)$rj3m2)!r8{P(kdrBJb)sK5$Hk!5*QI9z^5IAH=`K#hQT@h?JEa!OE? zGG(zFZ@>LIce`CO)HP41{A=3Xg%_uxzCKWIy16tS?C3@IW_!r4y`i*YCkwt-`qt}j zxKL%RGbS23hJB{S{#f?<0-wH{(y>4)yfqMQifx!say!Fwo;|RCKOhmFdXiIo7IE5d z<`DE|b~lGCe6P~d_u>)${XJ4Z{vHrFSMdFZbKe8(&J>Ju4|{j6z4)Di?>|i6145mE z(Bpv6abYSCp|Eah#h&i4N>Vdz6K?M!gwiA3ibotm3m=szy)vePZ&k{-1rVwj7&(M$ zwX&NI5lV;{bL!;~y1X$!8+J3)>Cq~{wxXX5q4|CQD1ITx+LnjVWt{+_S8flCotvAC zsdMw>5IQlzgo&w%DI`0}w6(^gp`hDoF#)xWGvuk@oN3NX2RH8=kXBo*yhxwaQ+(jMD#>j9u@YsGe$x#Ns`NwPl_0jkmXUDS z;r5uE>1>`etQ ze0^IqU%{WL>xbhA%C`q?j&%$wP~EDF zFovk1F@shj^DolyYf(!bt_CAeIjL0|^#R}`VHZHQiTG7OibPd?BjUKBN)X)6dOJAM zfFVH1Abh?OT@9iQh}VZlMKDd5++bZy|3MziC?d=EaJ=i#8fO0D=)LFT{m*rbTYScr z`i6KiI(;TJ9h+y{GP_gzz7V;;Cz<_gm7{t?rN!@Vuy3gEPfcvX?SXHRxE(7f!N0&I zA*(m#ija_u0KNzZ`D}UF