From e85b7f718da0e0e56d9fd03c0260bd983aa1ed83 Mon Sep 17 00:00:00 2001 From: LoneRifle Date: Tue, 18 Jun 2024 11:56:30 +0800 Subject: [PATCH] chore: switch to pnpm, add voucher pkg --- .github/workflows/voucher.yml | 86 + .gitignore | 140 +- .husky/install.mjs | 6 + .husky/pre-push | 3 + .npmrc | 12 + .nvmrc | 1 + THIRD-PARTY-LICENSES.txt | 23345 ++++++++++++++++ lerna.json | 4 - package-lock.json | 7818 ------ package.json | 17 +- packages/voucher/.env.development | 13 + packages/voucher/.eslintrc.js | 81 + packages/voucher/.gitignore | 30 + packages/voucher/.i18n-json.eslintrc.js | 15 + packages/voucher/.nvmrc | 1 + packages/voucher/.prettierrc.js | 9 + packages/voucher/README.md | 131 + packages/voucher/THIRD-PARTY-LICENSES.txt | 82 + packages/voucher/e2e/GroupPageDefault.spec.ts | 325 + .../e2e/GroupPageWithVoucherTypes.spec.ts | 384 + packages/voucher/e2e/constants/merchant.ts | 14 + packages/voucher/e2e/constants/voucher.ts | 1 + .../mocks/DefaultGroupedVouchers.response.ts | 60 + .../mocks/GroupedVoucherEvents.response.ts | 36 + .../mocks/TypedGroupedVouchers.response.ts | 51 + packages/voucher/e2e/mocks/common.ts | 194 + packages/voucher/e2e/mocks/vouchers.ts | 1115 + packages/voucher/e2e/utils/helpers.ts | 79 + packages/voucher/e2e/utils/network.ts | 161 + packages/voucher/package.json | 106 + packages/voucher/playwright.config.ts | 57 + packages/voucher/public/apple-touch-icon.png | Bin 0 -> 8434 bytes packages/voucher/public/favicon-16x16.png | Bin 0 -> 609 bytes packages/voucher/public/favicon-32x32.png | Bin 0 -> 1193 bytes packages/voucher/public/favicon.ico | Bin 0 -> 15406 bytes .../voucher/public/images/fridge_logo.png | Bin 0 -> 240729 bytes packages/voucher/public/images/light_logo.png | Bin 0 -> 103347 bytes packages/voucher/public/images/sg_united.png | Bin 0 -> 22661 bytes .../voucher/public/images/shower_logo.png | Bin 0 -> 109750 bytes .../voucher/public/images/voucher_sms.png | Bin 0 -> 58984 bytes packages/voucher/public/index.html | 80 + packages/voucher/public/logo192.png | Bin 0 -> 9283 bytes packages/voucher/public/logo512.png | Bin 0 -> 28967 bytes packages/voucher/public/manifest.json | 15 + packages/voucher/public/robots.txt | 8 + packages/voucher/src/app/App.tsx | 146 + .../voucher/src/components/Banner/Banner.tsx | 92 + .../voucher/src/components/Banner/index.ts | 1 + .../BrandmarkBackground.tsx | 46 + .../components/BrandmarkBackground/index.ts | 1 + .../CanvasWithImage/CanvasWithImage.tsx | 66 + .../src/components/CanvasWithImage/index.ts | 1 + .../DesktopAlertOverlay.tsx | 11 + .../components/DesktopAlertOverlay/index.ts | 1 + .../src/components/DetectDefaultLanguage.tsx | 29 + .../FeatureFlagNotificationBanner.tsx | 37 + .../FeatureFlagNotificationBanner/index.ts | 1 + .../voucher/src/components/Footer/Footer.tsx | 204 + .../voucher/src/components/Footer/OGPLogo.tsx | 38 + .../voucher/src/components/Footer/index.ts | 1 + .../voucher/src/components/InlineMessage.tsx | 21 + .../LanguageSelector/LanguageSelector.tsx | 99 + .../src/components/LanguageSelector/index.ts | 1 + .../voucher/src/components/Modal/Modal.scss | 97 + .../voucher/src/components/Modal/Modal.tsx | 57 + .../voucher/src/components/Modal/index.ts | 1 + packages/voucher/src/components/QrCode.tsx | 52 + .../ScrollToTopOnPathChange.tsx | 16 + .../ScrollToTopOnPathChange/index.ts | 1 + .../voucher/src/components/Toast/Toast.scss | 49 + .../voucher/src/components/Toast/Toast.tsx | 33 + .../voucher/src/components/Toast/index.ts | 1 + .../ViewTermsAndConditionsText.tsx | 34 + .../ViewTermsAndConditionsText/index.ts | 1 + .../components/VoucherError/ErrorTemplate.tsx | 74 + .../components/VoucherError/VoucherError.tsx | 26 + .../src/components/VoucherError/index.ts | 1 + .../voucher/src/components/basic/Header.tsx | 22 + .../src/components/icons/BiErrorCircle.tsx | 18 + .../src/components/icons/BiInfoCircle.tsx | 21 + packages/voucher/src/components/icons/BiX.tsx | 18 + .../voucher/src/components/icons/index.ts | 3 + packages/voucher/src/constants/config.ts | 23 + packages/voucher/src/constants/datadog.ts | 10 + packages/voucher/src/constants/intervals.ts | 7 + packages/voucher/src/constants/limits.ts | 2 + packages/voucher/src/constants/requests.ts | 5 + packages/voucher/src/constants/routes.ts | 4 + packages/voucher/src/constants/sizes.ts | 3 + packages/voucher/src/constants/spacing.ts | 1 + packages/voucher/src/constants/translation.ts | 20 + packages/voucher/src/constants/voucherType.ts | 25 + packages/voucher/src/helpers/contactNumber.ts | 3 + packages/voucher/src/helpers/date.ts | 12 + packages/voucher/src/helpers/hooks.ts | 31 + packages/voucher/src/helpers/i18n.ts | 66 + packages/voucher/src/helpers/monitoring.ts | 104 + packages/voucher/src/helpers/navigate.ts | 11 + packages/voucher/src/helpers/timezone.ts | 5 + packages/voucher/src/helpers/user.ts | 8 + packages/voucher/src/helpers/utils.ts | 37 + packages/voucher/src/helpers/vouchers.ts | 124 + packages/voucher/src/hooks/FeatureFlag.ts | 14 + packages/voucher/src/hooks/useClipboard.tsx | 58 + packages/voucher/src/hooks/useErrorStates.tsx | 34 + .../useFetchTransactionHistoryWithGroupId.ts | 66 + .../src/hooks/useGroupWithRefetchInterval.ts | 66 + packages/voucher/src/hooks/useKeyPress.ts | 14 + .../voucher/src/hooks/useNavigatorOffline.ts | 30 + .../voucher/src/images/bx-error-circle.svg | 3 + .../src/images/bxs-check-circle-black.svg | 3 + .../src/images/bxs-check-circle-danger.svg | 3 + .../src/images/bxs-check-circle-disabled.svg | 3 + .../src/images/bxs-check-circle-info.svg | 3 + .../src/images/bxs-check-circle-success.svg | 3 + .../voucher/src/images/bxs-check-circle.svg | 3 + .../voucher/src/images/bxs-info-circle.svg | 0 .../src/images/chevron-left-circle.svg | 3 + .../src/images/chevron-right-circle.svg | 3 + packages/voucher/src/images/cross.svg | 19 + .../src/images/empty-transaction-history.svg | 185 + .../voucher/src/images/error-circle-solid.svg | 3 + .../voucher/src/images/error-page-graphic.svg | 88 + packages/voucher/src/images/fb-logo.svg | 1 + packages/voucher/src/images/image-warn.png | Bin 0 -> 1609 bytes packages/voucher/src/images/image-warn.svg | 4 + packages/voucher/src/images/left-hand.svg | 18 + packages/voucher/src/images/linkedin-logo.svg | 2 + .../images/merchant-list-btn-background.svg | 37 + .../voucher/src/images/ogp-logo-black.svg | 1 + .../src/images/ogp-logo-mark-white.svg | 11 + packages/voucher/src/images/ogp-logo.svg | 128 + packages/voucher/src/images/question-mark.svg | 3 + packages/voucher/src/images/redeem-full.png | Bin 0 -> 4905 bytes packages/voucher/src/images/redeem-full.svg | 18 + .../src/images/redeem-logo-brandmark.svg | 12 + .../voucher/src/images/redeem-logo-light.svg | 10 + packages/voucher/src/images/redeem-logo.svg | 18 + packages/voucher/src/images/right-hand.svg | 67 + .../src/images/supermarket-vouchers.svg | 5 + .../images/voucher-info-btn-background.svg | 16 + .../src/images/voucher-redemption-graphic.svg | 141 + packages/voucher/src/images/vouchers.svg | 4 + packages/voucher/src/images/warning-icon.svg | 4 + .../src/images/x-circle-solid-danger.svg | 4 + packages/voucher/src/index.scss | 1 + packages/voucher/src/index.tsx | 67 + packages/voucher/src/locales/en/alertsEN.json | 8 + .../src/locales/en/campaignErrorsEN.json | 12 + packages/voucher/src/locales/en/commonEN.json | 12 + .../src/locales/en/drawerHeaderEN.json | 3 + packages/voucher/src/locales/en/errorsEN.json | 13 + packages/voucher/src/locales/en/headerEN.json | 6 + packages/voucher/src/locales/en/helpEN.json | 27 + packages/voucher/src/locales/en/index.ts | 1 + .../voucher/src/locales/en/infoAndHelpEN.json | 23 + packages/voucher/src/locales/en/mainEN.json | 9 + .../voucher/src/locales/en/redemptionEN.json | 19 + .../voucher/src/locales/en/subheaderEN.json | 5 + packages/voucher/src/locales/en/toastsEN.json | 9 + .../src/locales/en/transactionHistoryEN.json | 10 + .../voucher/src/locales/en/translationsEN.ts | 31 + .../en/voucherTypesSelectVouchersEN.json | 4 + packages/voucher/src/locales/index.ts | 1 + packages/voucher/src/locales/locales.ts | 4 + packages/voucher/src/locales/ms/alertsMS.json | 8 + .../src/locales/ms/campaignErrorsMS.json | 12 + packages/voucher/src/locales/ms/commonMS.json | 12 + .../src/locales/ms/drawerHeaderMS.json | 3 + packages/voucher/src/locales/ms/errorsMS.json | 13 + packages/voucher/src/locales/ms/headerMS.json | 6 + packages/voucher/src/locales/ms/helpMS.json | 27 + packages/voucher/src/locales/ms/index.ts | 1 + .../voucher/src/locales/ms/infoAndHelpMS.json | 23 + packages/voucher/src/locales/ms/mainMS.json | 8 + .../voucher/src/locales/ms/redemptionMS.json | 19 + .../voucher/src/locales/ms/subheaderMS.json | 5 + packages/voucher/src/locales/ms/toastsMS.json | 9 + .../src/locales/ms/transactionHistoryMS.json | 10 + .../voucher/src/locales/ms/translationsMS.ts | 31 + .../ms/voucherTypesSelectVouchersMS.json | 4 + packages/voucher/src/locales/ta/alertsTA.json | 8 + .../src/locales/ta/campaignErrorsTA.json | 12 + packages/voucher/src/locales/ta/commonTA.json | 12 + .../src/locales/ta/drawerHeaderTA.json | 3 + packages/voucher/src/locales/ta/errorsTA.json | 13 + packages/voucher/src/locales/ta/headerTA.json | 6 + packages/voucher/src/locales/ta/helpTA.json | 27 + packages/voucher/src/locales/ta/index.ts | 1 + .../voucher/src/locales/ta/infoAndHelpTA.json | 23 + packages/voucher/src/locales/ta/mainTA.json | 8 + .../voucher/src/locales/ta/redemptionTA.json | 19 + .../voucher/src/locales/ta/subheaderTA.json | 5 + packages/voucher/src/locales/ta/toastsTA.json | 9 + .../src/locales/ta/transactionHistoryTA.json | 10 + .../voucher/src/locales/ta/translationsTA.ts | 31 + .../ta/voucherTypesSelectVouchersTA.json | 4 + packages/voucher/src/locales/zh/alertsZH.json | 8 + .../src/locales/zh/campaignErrorsZH.json | 12 + packages/voucher/src/locales/zh/commonZH.json | 12 + .../src/locales/zh/drawerHeaderZH.json | 3 + packages/voucher/src/locales/zh/errorsZH.json | 13 + packages/voucher/src/locales/zh/headerZH.json | 6 + packages/voucher/src/locales/zh/helpZH.json | 27 + packages/voucher/src/locales/zh/index.ts | 1 + .../voucher/src/locales/zh/infoAndHelpZH.json | 23 + packages/voucher/src/locales/zh/mainZH.json | 8 + .../voucher/src/locales/zh/redemptionZH.json | 19 + .../voucher/src/locales/zh/subheaderZH.json | 5 + packages/voucher/src/locales/zh/toastsZH.json | 9 + .../src/locales/zh/transactionHistoryZH.json | 10 + .../voucher/src/locales/zh/translationsZH.ts | 31 + .../zh/voucherTypesSelectVouchersZH.json | 4 + .../voucher/src/pages/GroupPage/GroupPage.tsx | 106 + .../components/BackButton/BackButton.tsx | 44 + .../GroupPage/components/BackButton/index.ts | 1 + .../DrawerHeaderWithCloseButton.tsx | 54 + .../DrawerHeaderWithCloseButton/index.js | 1 + .../GroupPageBottomOverlay.tsx | 74 + .../GroupPageBottomOverlay/index.ts | 1 + .../GroupPageCampaignError.tsx | 53 + .../GroupPageCampaignErrorComponent.tsx | 97 + ...GroupPageErrorCampaignOrganiserSection.tsx | 47 + .../GroupPageCampaignError/index.ts | 1 + .../GroupPageDefault/GroupPageDefault.tsx | 73 + .../DefaultSelectVouchersPage.tsx | 135 + .../DefaultSelectVouchersPage/index.ts | 1 + .../components/GroupPageDefault/index.ts | 1 + .../GroupPageHeader/GroupPageHeader.tsx | 199 + .../GroupPageHeaderButton.tsx | 50 + .../components/GroupPageHeaderButton/index.ts | 1 + .../GroupPageHeaderInfo.tsx | 40 + .../components/GroupPageHeaderInfo/index.ts | 1 + .../components/VoidInlineMessage.tsx | 39 + .../components/GroupPageHeader/index.js | 1 + .../GroupPageMain/GroupPageMain.tsx | 112 + .../VoucherListing/VoucherListing.tsx | 190 + .../RedeemedStampSmall/RedeemedStampSmall.tsx | 60 + .../components/RedeemedStampSmall/index.ts | 1 + .../components/VoidStamp/VoidStamp.tsx | 28 + .../components/VoidStamp/index.ts | 1 + .../VoucherListingCheckBox.tsx | 64 + .../VoucherListingCheckBox/index.ts | 1 + .../components/VoucherListing/hooks.ts | 78 + .../components/VoucherListing/index.ts | 1 + .../components/GroupPageMain/index.ts | 1 + .../GroupPageWithVoucherTypes.tsx | 65 + .../SelectVoucherTypePage.tsx | 94 + .../components/SelectVoucherTypeMain.tsx | 107 + .../components/VoucherTypeButton.tsx | 73 + .../components/SelectVoucherTypePage/index.ts | 1 + .../VoucherTypeVouchers.tsx | 108 + .../VoucherTypeSelectVouchersPage.tsx | 103 + .../VoucherTypeSelectVouchersHeader.tsx | 64 + .../VoucherTypeSelectVouchersPage/index.tsx | 1 + .../components/VoucherTypeVouchers/index.ts | 1 + .../GroupPageWithVoucherTypes/index.ts | 1 + .../InfoAndHelpDrawer/InfoAndHelpDrawer.tsx | 83 + .../components/HowToSection/HowToSection.tsx | 88 + .../HelpLearnMoreButton.tsx | 77 + .../components/HelpLearnMoreButton/index.ts | 1 + .../components/HowToSection/index.ts | 1 + .../components/InfoAndHelpDrawer/index.ts | 1 + .../OrganiserContactSection.tsx | 142 + .../HelpInfoEntry/HelpInfoEntry.tsx | 28 + .../components/HelpInfoEntry/index.tsx | 1 + .../OrganiserContactSection/index.ts | 1 + .../RedemptionPage/RedemptionPage.tsx | 144 + .../AlreadyRedeemedModal.tsx | 38 + .../components/AlreadyRedeemedModal/index.ts | 1 + .../RedemptionErrorModal.tsx | 40 + .../components/RedemptionErrorModal/index.ts | 1 + .../RedemptionPageHeader.tsx | 50 + .../components/RedemptionPageHeader/index.ts | 1 + .../RedemptionPageMain/RedemptionPageMain.tsx | 59 + .../RedemptionCard/RedemptionCard.scss | 252 + .../RedemptionCard/RedemptionCard.tsx | 129 + .../RedemptionCard/RedemptionCardFooter.tsx | 63 + .../components/RedemptionCard/index.ts | 1 + .../components/RedemptionPageMain/index.ts | 1 + .../components/RedemptionPage/index.ts | 1 + .../TransactionHistoryDrawer.tsx | 74 + .../TransactionHistoryDrawerContent.tsx | 74 + .../TransactionHistoryDrawerEmptyContent.tsx | 77 + .../components/TransactionHistoryListing.tsx | 46 + .../TransactionHistorySubHeader.tsx | 35 + .../TransactionHistoryDrawer/index.ts | 1 + .../TransactionHistoryDrawerButton.tsx | 39 + .../TransactionHistoryDrawerButton/index.ts | 1 + .../WhereToUseButton/WhereToUseButton.tsx | 45 + .../components/WhereToUseButton/index.ts | 1 + .../voucher/src/pages/GroupPage/hooks.tsx | 188 + packages/voucher/src/pages/GroupPage/index.ts | 1 + .../TryAgainLaterPage/TryAgainLaterPage.tsx | 61 + .../src/pages/TryAgainLaterPage/index.ts | 1 + packages/voucher/src/react-app-env.d.ts | 1 + .../src/services/RedeemApi/RedeemApi.ts | 12 + .../src/services/RedeemApi/baseConfig.ts | 21 + .../voucher/src/services/RedeemApi/index.js | 1 + packages/voucher/src/setupTests.js | 5 + packages/voucher/src/styles/base.scss | 694 + packages/voucher/src/styles/colors.scss | 59 + packages/voucher/src/styles/constants.scss | 2 + packages/voucher/src/styles/styles.scss | 3 + packages/voucher/src/styles/typography.scss | 156 + packages/voucher/src/theme/breakpoints.ts | 8 + .../voucher/src/theme/components/Avatar.ts | 10 + .../voucher/src/theme/components/Banner.ts | 94 + .../voucher/src/theme/components/Button.ts | 65 + .../voucher/src/theme/components/Checkbox.ts | 17 + .../voucher/src/theme/components/Divider.ts | 8 + .../voucher/src/theme/components/Drawer.ts | 33 + .../src/theme/components/GroupPageHeader.ts | 37 + .../src/theme/components/InlineMessage.ts | 25 + .../voucher/src/theme/components/Input.ts | 50 + .../src/theme/components/LanguageSelector.ts | 76 + packages/voucher/src/theme/components/Link.ts | 13 + packages/voucher/src/theme/components/Menu.ts | 18 + .../voucher/src/theme/components/Modal.ts | 32 + .../voucher/src/theme/components/Progress.ts | 12 + .../voucher/src/theme/components/Radio.ts | 38 + .../voucher/src/theme/components/Select.ts | 42 + packages/voucher/src/theme/components/Stat.ts | 35 + .../voucher/src/theme/components/Switch.ts | 21 + .../voucher/src/theme/components/Table.ts | 29 + packages/voucher/src/theme/components/Tabs.ts | 41 + .../voucher/src/theme/components/Tooltip.ts | 12 + .../voucher/src/theme/components/index.ts | 45 + .../voucher/src/theme/foundations/colors.ts | 101 + .../voucher/src/theme/foundations/fonts.ts | 7 + .../voucher/src/theme/foundations/index.ts | 7 + packages/voucher/src/theme/index.ts | 21 + packages/voucher/src/theme/layerStyles.ts | 16 + packages/voucher/src/theme/styles.ts | 16 + packages/voucher/src/theme/textStyles.ts | 135 + packages/voucher/src/theme/types.ts | 19 + packages/voucher/src/types/campaign.ts | 33 + packages/voucher/src/types/voucher.ts | 53 + packages/voucher/trans-syntax-custom.js | 31 + packages/voucher/tsconfig.json | 8 + pnpm-lock.yaml | 21438 ++++++++++++++ pnpm-workspace.yaml | 3 + tsconfig.json | 18 + 343 files changed, 57943 insertions(+), 7949 deletions(-) create mode 100644 .github/workflows/voucher.yml create mode 100644 .husky/install.mjs create mode 100755 .husky/pre-push create mode 100644 .npmrc create mode 100644 .nvmrc create mode 100644 THIRD-PARTY-LICENSES.txt delete mode 100644 lerna.json delete mode 100644 package-lock.json create mode 100644 packages/voucher/.env.development create mode 100644 packages/voucher/.eslintrc.js create mode 100644 packages/voucher/.gitignore create mode 100644 packages/voucher/.i18n-json.eslintrc.js create mode 100644 packages/voucher/.nvmrc create mode 100644 packages/voucher/.prettierrc.js create mode 100644 packages/voucher/README.md create mode 100644 packages/voucher/THIRD-PARTY-LICENSES.txt create mode 100644 packages/voucher/e2e/GroupPageDefault.spec.ts create mode 100644 packages/voucher/e2e/GroupPageWithVoucherTypes.spec.ts create mode 100644 packages/voucher/e2e/constants/merchant.ts create mode 100644 packages/voucher/e2e/constants/voucher.ts create mode 100644 packages/voucher/e2e/mocks/DefaultGroupedVouchers.response.ts create mode 100644 packages/voucher/e2e/mocks/GroupedVoucherEvents.response.ts create mode 100644 packages/voucher/e2e/mocks/TypedGroupedVouchers.response.ts create mode 100644 packages/voucher/e2e/mocks/common.ts create mode 100644 packages/voucher/e2e/mocks/vouchers.ts create mode 100644 packages/voucher/e2e/utils/helpers.ts create mode 100644 packages/voucher/e2e/utils/network.ts create mode 100644 packages/voucher/package.json create mode 100644 packages/voucher/playwright.config.ts create mode 100644 packages/voucher/public/apple-touch-icon.png create mode 100644 packages/voucher/public/favicon-16x16.png create mode 100644 packages/voucher/public/favicon-32x32.png create mode 100644 packages/voucher/public/favicon.ico create mode 100644 packages/voucher/public/images/fridge_logo.png create mode 100644 packages/voucher/public/images/light_logo.png create mode 100644 packages/voucher/public/images/sg_united.png create mode 100644 packages/voucher/public/images/shower_logo.png create mode 100644 packages/voucher/public/images/voucher_sms.png create mode 100644 packages/voucher/public/index.html create mode 100644 packages/voucher/public/logo192.png create mode 100644 packages/voucher/public/logo512.png create mode 100644 packages/voucher/public/manifest.json create mode 100644 packages/voucher/public/robots.txt create mode 100644 packages/voucher/src/app/App.tsx create mode 100644 packages/voucher/src/components/Banner/Banner.tsx create mode 100644 packages/voucher/src/components/Banner/index.ts create mode 100644 packages/voucher/src/components/BrandmarkBackground/BrandmarkBackground.tsx create mode 100644 packages/voucher/src/components/BrandmarkBackground/index.ts create mode 100644 packages/voucher/src/components/CanvasWithImage/CanvasWithImage.tsx create mode 100644 packages/voucher/src/components/CanvasWithImage/index.ts create mode 100644 packages/voucher/src/components/DesktopAlertOverlay/DesktopAlertOverlay.tsx create mode 100644 packages/voucher/src/components/DesktopAlertOverlay/index.ts create mode 100644 packages/voucher/src/components/DetectDefaultLanguage.tsx create mode 100644 packages/voucher/src/components/FeatureFlagNotificationBanner/FeatureFlagNotificationBanner.tsx create mode 100644 packages/voucher/src/components/FeatureFlagNotificationBanner/index.ts create mode 100644 packages/voucher/src/components/Footer/Footer.tsx create mode 100644 packages/voucher/src/components/Footer/OGPLogo.tsx create mode 100644 packages/voucher/src/components/Footer/index.ts create mode 100644 packages/voucher/src/components/InlineMessage.tsx create mode 100644 packages/voucher/src/components/LanguageSelector/LanguageSelector.tsx create mode 100644 packages/voucher/src/components/LanguageSelector/index.ts create mode 100644 packages/voucher/src/components/Modal/Modal.scss create mode 100644 packages/voucher/src/components/Modal/Modal.tsx create mode 100644 packages/voucher/src/components/Modal/index.ts create mode 100644 packages/voucher/src/components/QrCode.tsx create mode 100644 packages/voucher/src/components/ScrollToTopOnPathChange/ScrollToTopOnPathChange.tsx create mode 100644 packages/voucher/src/components/ScrollToTopOnPathChange/index.ts create mode 100644 packages/voucher/src/components/Toast/Toast.scss create mode 100644 packages/voucher/src/components/Toast/Toast.tsx create mode 100644 packages/voucher/src/components/Toast/index.ts create mode 100644 packages/voucher/src/components/ViewTermsAndConditionsText/ViewTermsAndConditionsText.tsx create mode 100644 packages/voucher/src/components/ViewTermsAndConditionsText/index.ts create mode 100644 packages/voucher/src/components/VoucherError/ErrorTemplate.tsx create mode 100644 packages/voucher/src/components/VoucherError/VoucherError.tsx create mode 100644 packages/voucher/src/components/VoucherError/index.ts create mode 100644 packages/voucher/src/components/basic/Header.tsx create mode 100644 packages/voucher/src/components/icons/BiErrorCircle.tsx create mode 100644 packages/voucher/src/components/icons/BiInfoCircle.tsx create mode 100644 packages/voucher/src/components/icons/BiX.tsx create mode 100644 packages/voucher/src/components/icons/index.ts create mode 100644 packages/voucher/src/constants/config.ts create mode 100644 packages/voucher/src/constants/datadog.ts create mode 100644 packages/voucher/src/constants/intervals.ts create mode 100644 packages/voucher/src/constants/limits.ts create mode 100644 packages/voucher/src/constants/requests.ts create mode 100644 packages/voucher/src/constants/routes.ts create mode 100644 packages/voucher/src/constants/sizes.ts create mode 100644 packages/voucher/src/constants/spacing.ts create mode 100644 packages/voucher/src/constants/translation.ts create mode 100644 packages/voucher/src/constants/voucherType.ts create mode 100644 packages/voucher/src/helpers/contactNumber.ts create mode 100644 packages/voucher/src/helpers/date.ts create mode 100644 packages/voucher/src/helpers/hooks.ts create mode 100644 packages/voucher/src/helpers/i18n.ts create mode 100644 packages/voucher/src/helpers/monitoring.ts create mode 100644 packages/voucher/src/helpers/navigate.ts create mode 100644 packages/voucher/src/helpers/timezone.ts create mode 100644 packages/voucher/src/helpers/user.ts create mode 100644 packages/voucher/src/helpers/utils.ts create mode 100644 packages/voucher/src/helpers/vouchers.ts create mode 100644 packages/voucher/src/hooks/FeatureFlag.ts create mode 100644 packages/voucher/src/hooks/useClipboard.tsx create mode 100644 packages/voucher/src/hooks/useErrorStates.tsx create mode 100644 packages/voucher/src/hooks/useFetchTransactionHistoryWithGroupId.ts create mode 100644 packages/voucher/src/hooks/useGroupWithRefetchInterval.ts create mode 100644 packages/voucher/src/hooks/useKeyPress.ts create mode 100644 packages/voucher/src/hooks/useNavigatorOffline.ts create mode 100644 packages/voucher/src/images/bx-error-circle.svg create mode 100644 packages/voucher/src/images/bxs-check-circle-black.svg create mode 100644 packages/voucher/src/images/bxs-check-circle-danger.svg create mode 100644 packages/voucher/src/images/bxs-check-circle-disabled.svg create mode 100644 packages/voucher/src/images/bxs-check-circle-info.svg create mode 100644 packages/voucher/src/images/bxs-check-circle-success.svg create mode 100644 packages/voucher/src/images/bxs-check-circle.svg create mode 100644 packages/voucher/src/images/bxs-info-circle.svg create mode 100644 packages/voucher/src/images/chevron-left-circle.svg create mode 100644 packages/voucher/src/images/chevron-right-circle.svg create mode 100644 packages/voucher/src/images/cross.svg create mode 100644 packages/voucher/src/images/empty-transaction-history.svg create mode 100644 packages/voucher/src/images/error-circle-solid.svg create mode 100644 packages/voucher/src/images/error-page-graphic.svg create mode 100644 packages/voucher/src/images/fb-logo.svg create mode 100644 packages/voucher/src/images/image-warn.png create mode 100644 packages/voucher/src/images/image-warn.svg create mode 100644 packages/voucher/src/images/left-hand.svg create mode 100644 packages/voucher/src/images/linkedin-logo.svg create mode 100644 packages/voucher/src/images/merchant-list-btn-background.svg create mode 100644 packages/voucher/src/images/ogp-logo-black.svg create mode 100644 packages/voucher/src/images/ogp-logo-mark-white.svg create mode 100644 packages/voucher/src/images/ogp-logo.svg create mode 100644 packages/voucher/src/images/question-mark.svg create mode 100644 packages/voucher/src/images/redeem-full.png create mode 100644 packages/voucher/src/images/redeem-full.svg create mode 100644 packages/voucher/src/images/redeem-logo-brandmark.svg create mode 100644 packages/voucher/src/images/redeem-logo-light.svg create mode 100644 packages/voucher/src/images/redeem-logo.svg create mode 100644 packages/voucher/src/images/right-hand.svg create mode 100644 packages/voucher/src/images/supermarket-vouchers.svg create mode 100644 packages/voucher/src/images/voucher-info-btn-background.svg create mode 100644 packages/voucher/src/images/voucher-redemption-graphic.svg create mode 100644 packages/voucher/src/images/vouchers.svg create mode 100644 packages/voucher/src/images/warning-icon.svg create mode 100644 packages/voucher/src/images/x-circle-solid-danger.svg create mode 100644 packages/voucher/src/index.scss create mode 100644 packages/voucher/src/index.tsx create mode 100644 packages/voucher/src/locales/en/alertsEN.json create mode 100644 packages/voucher/src/locales/en/campaignErrorsEN.json create mode 100644 packages/voucher/src/locales/en/commonEN.json create mode 100644 packages/voucher/src/locales/en/drawerHeaderEN.json create mode 100644 packages/voucher/src/locales/en/errorsEN.json create mode 100644 packages/voucher/src/locales/en/headerEN.json create mode 100644 packages/voucher/src/locales/en/helpEN.json create mode 100644 packages/voucher/src/locales/en/index.ts create mode 100644 packages/voucher/src/locales/en/infoAndHelpEN.json create mode 100644 packages/voucher/src/locales/en/mainEN.json create mode 100644 packages/voucher/src/locales/en/redemptionEN.json create mode 100644 packages/voucher/src/locales/en/subheaderEN.json create mode 100644 packages/voucher/src/locales/en/toastsEN.json create mode 100644 packages/voucher/src/locales/en/transactionHistoryEN.json create mode 100644 packages/voucher/src/locales/en/translationsEN.ts create mode 100644 packages/voucher/src/locales/en/voucherTypesSelectVouchersEN.json create mode 100644 packages/voucher/src/locales/index.ts create mode 100644 packages/voucher/src/locales/locales.ts create mode 100644 packages/voucher/src/locales/ms/alertsMS.json create mode 100644 packages/voucher/src/locales/ms/campaignErrorsMS.json create mode 100644 packages/voucher/src/locales/ms/commonMS.json create mode 100644 packages/voucher/src/locales/ms/drawerHeaderMS.json create mode 100644 packages/voucher/src/locales/ms/errorsMS.json create mode 100644 packages/voucher/src/locales/ms/headerMS.json create mode 100644 packages/voucher/src/locales/ms/helpMS.json create mode 100644 packages/voucher/src/locales/ms/index.ts create mode 100644 packages/voucher/src/locales/ms/infoAndHelpMS.json create mode 100644 packages/voucher/src/locales/ms/mainMS.json create mode 100644 packages/voucher/src/locales/ms/redemptionMS.json create mode 100644 packages/voucher/src/locales/ms/subheaderMS.json create mode 100644 packages/voucher/src/locales/ms/toastsMS.json create mode 100644 packages/voucher/src/locales/ms/transactionHistoryMS.json create mode 100644 packages/voucher/src/locales/ms/translationsMS.ts create mode 100644 packages/voucher/src/locales/ms/voucherTypesSelectVouchersMS.json create mode 100644 packages/voucher/src/locales/ta/alertsTA.json create mode 100644 packages/voucher/src/locales/ta/campaignErrorsTA.json create mode 100644 packages/voucher/src/locales/ta/commonTA.json create mode 100644 packages/voucher/src/locales/ta/drawerHeaderTA.json create mode 100644 packages/voucher/src/locales/ta/errorsTA.json create mode 100644 packages/voucher/src/locales/ta/headerTA.json create mode 100644 packages/voucher/src/locales/ta/helpTA.json create mode 100644 packages/voucher/src/locales/ta/index.ts create mode 100644 packages/voucher/src/locales/ta/infoAndHelpTA.json create mode 100644 packages/voucher/src/locales/ta/mainTA.json create mode 100644 packages/voucher/src/locales/ta/redemptionTA.json create mode 100644 packages/voucher/src/locales/ta/subheaderTA.json create mode 100644 packages/voucher/src/locales/ta/toastsTA.json create mode 100644 packages/voucher/src/locales/ta/transactionHistoryTA.json create mode 100644 packages/voucher/src/locales/ta/translationsTA.ts create mode 100644 packages/voucher/src/locales/ta/voucherTypesSelectVouchersTA.json create mode 100644 packages/voucher/src/locales/zh/alertsZH.json create mode 100644 packages/voucher/src/locales/zh/campaignErrorsZH.json create mode 100644 packages/voucher/src/locales/zh/commonZH.json create mode 100644 packages/voucher/src/locales/zh/drawerHeaderZH.json create mode 100644 packages/voucher/src/locales/zh/errorsZH.json create mode 100644 packages/voucher/src/locales/zh/headerZH.json create mode 100644 packages/voucher/src/locales/zh/helpZH.json create mode 100644 packages/voucher/src/locales/zh/index.ts create mode 100644 packages/voucher/src/locales/zh/infoAndHelpZH.json create mode 100644 packages/voucher/src/locales/zh/mainZH.json create mode 100644 packages/voucher/src/locales/zh/redemptionZH.json create mode 100644 packages/voucher/src/locales/zh/subheaderZH.json create mode 100644 packages/voucher/src/locales/zh/toastsZH.json create mode 100644 packages/voucher/src/locales/zh/transactionHistoryZH.json create mode 100644 packages/voucher/src/locales/zh/translationsZH.ts create mode 100644 packages/voucher/src/locales/zh/voucherTypesSelectVouchersZH.json create mode 100644 packages/voucher/src/pages/GroupPage/GroupPage.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/BackButton/BackButton.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/BackButton/index.ts create mode 100644 packages/voucher/src/pages/GroupPage/components/DrawerHeaderWithCloseButton/DrawerHeaderWithCloseButton.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/DrawerHeaderWithCloseButton/index.js create mode 100644 packages/voucher/src/pages/GroupPage/components/GroupPageBottomOverlay/GroupPageBottomOverlay.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/GroupPageBottomOverlay/index.ts create mode 100644 packages/voucher/src/pages/GroupPage/components/GroupPageCampaignError/GroupPageCampaignError.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/GroupPageCampaignError/components/GroupPageCampaignErrorComponent.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/GroupPageCampaignError/components/GroupPageErrorCampaignOrganiserSection.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/GroupPageCampaignError/index.ts create mode 100644 packages/voucher/src/pages/GroupPage/components/GroupPageDefault/GroupPageDefault.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/GroupPageDefault/components/DefaultSelectVouchersPage/DefaultSelectVouchersPage.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/GroupPageDefault/components/DefaultSelectVouchersPage/index.ts create mode 100644 packages/voucher/src/pages/GroupPage/components/GroupPageDefault/index.ts create mode 100644 packages/voucher/src/pages/GroupPage/components/GroupPageHeader/GroupPageHeader.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/GroupPageHeader/components/GroupPageHeaderButton/GroupPageHeaderButton.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/GroupPageHeader/components/GroupPageHeaderButton/index.ts create mode 100644 packages/voucher/src/pages/GroupPage/components/GroupPageHeader/components/GroupPageHeaderInfo/GroupPageHeaderInfo.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/GroupPageHeader/components/GroupPageHeaderInfo/index.ts create mode 100644 packages/voucher/src/pages/GroupPage/components/GroupPageHeader/components/VoidInlineMessage.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/GroupPageHeader/index.js create mode 100644 packages/voucher/src/pages/GroupPage/components/GroupPageMain/GroupPageMain.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/GroupPageMain/components/VoucherListing/VoucherListing.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/GroupPageMain/components/VoucherListing/components/RedeemedStampSmall/RedeemedStampSmall.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/GroupPageMain/components/VoucherListing/components/RedeemedStampSmall/index.ts create mode 100644 packages/voucher/src/pages/GroupPage/components/GroupPageMain/components/VoucherListing/components/VoidStamp/VoidStamp.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/GroupPageMain/components/VoucherListing/components/VoidStamp/index.ts create mode 100644 packages/voucher/src/pages/GroupPage/components/GroupPageMain/components/VoucherListing/components/VoucherListingCheckBox/VoucherListingCheckBox.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/GroupPageMain/components/VoucherListing/components/VoucherListingCheckBox/index.ts create mode 100644 packages/voucher/src/pages/GroupPage/components/GroupPageMain/components/VoucherListing/hooks.ts create mode 100644 packages/voucher/src/pages/GroupPage/components/GroupPageMain/components/VoucherListing/index.ts create mode 100644 packages/voucher/src/pages/GroupPage/components/GroupPageMain/index.ts create mode 100644 packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/GroupPageWithVoucherTypes.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/components/SelectVoucherTypePage/SelectVoucherTypePage.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/components/SelectVoucherTypePage/components/SelectVoucherTypeMain.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/components/SelectVoucherTypePage/components/VoucherTypeButton.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/components/SelectVoucherTypePage/index.ts create mode 100644 packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/components/VoucherTypeVouchers/VoucherTypeVouchers.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/components/VoucherTypeVouchers/components/VoucherTypeSelectVouchersPage/VoucherTypeSelectVouchersPage.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/components/VoucherTypeVouchers/components/VoucherTypeSelectVouchersPage/components/VoucherTypeSelectVouchersHeader.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/components/VoucherTypeVouchers/components/VoucherTypeSelectVouchersPage/index.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/components/VoucherTypeVouchers/index.ts create mode 100644 packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/index.ts create mode 100644 packages/voucher/src/pages/GroupPage/components/InfoAndHelpDrawer/InfoAndHelpDrawer.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/InfoAndHelpDrawer/components/HowToSection/HowToSection.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/InfoAndHelpDrawer/components/HowToSection/components/HelpLearnMoreButton/HelpLearnMoreButton.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/InfoAndHelpDrawer/components/HowToSection/components/HelpLearnMoreButton/index.ts create mode 100644 packages/voucher/src/pages/GroupPage/components/InfoAndHelpDrawer/components/HowToSection/index.ts create mode 100644 packages/voucher/src/pages/GroupPage/components/InfoAndHelpDrawer/index.ts create mode 100644 packages/voucher/src/pages/GroupPage/components/OrganiserContactSection/OrganiserContactSection.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/OrganiserContactSection/components/HelpInfoEntry/HelpInfoEntry.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/OrganiserContactSection/components/HelpInfoEntry/index.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/OrganiserContactSection/index.ts create mode 100644 packages/voucher/src/pages/GroupPage/components/RedemptionPage/RedemptionPage.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/AlreadyRedeemedModal/AlreadyRedeemedModal.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/AlreadyRedeemedModal/index.ts create mode 100644 packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/RedemptionErrorModal/RedemptionErrorModal.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/RedemptionErrorModal/index.ts create mode 100644 packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/RedemptionPageHeader/RedemptionPageHeader.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/RedemptionPageHeader/index.ts create mode 100644 packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/RedemptionPageMain/RedemptionPageMain.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/RedemptionPageMain/components/RedemptionCard/RedemptionCard.scss create mode 100644 packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/RedemptionPageMain/components/RedemptionCard/RedemptionCard.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/RedemptionPageMain/components/RedemptionCard/RedemptionCardFooter.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/RedemptionPageMain/components/RedemptionCard/index.ts create mode 100644 packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/RedemptionPageMain/index.ts create mode 100644 packages/voucher/src/pages/GroupPage/components/RedemptionPage/index.ts create mode 100644 packages/voucher/src/pages/GroupPage/components/TransactionHistoryDrawer/TransactionHistoryDrawer.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/TransactionHistoryDrawer/components/TransactionHistoryDrawerContent.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/TransactionHistoryDrawer/components/TransactionHistoryDrawerEmptyContent.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/TransactionHistoryDrawer/components/TransactionHistoryListing.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/TransactionHistoryDrawer/components/TransactionHistorySubHeader.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/TransactionHistoryDrawer/index.ts create mode 100644 packages/voucher/src/pages/GroupPage/components/TransactionHistoryDrawerButton/TransactionHistoryDrawerButton.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/TransactionHistoryDrawerButton/index.ts create mode 100644 packages/voucher/src/pages/GroupPage/components/WhereToUseButton/WhereToUseButton.tsx create mode 100644 packages/voucher/src/pages/GroupPage/components/WhereToUseButton/index.ts create mode 100644 packages/voucher/src/pages/GroupPage/hooks.tsx create mode 100644 packages/voucher/src/pages/GroupPage/index.ts create mode 100644 packages/voucher/src/pages/TryAgainLaterPage/TryAgainLaterPage.tsx create mode 100644 packages/voucher/src/pages/TryAgainLaterPage/index.ts create mode 100644 packages/voucher/src/react-app-env.d.ts create mode 100644 packages/voucher/src/services/RedeemApi/RedeemApi.ts create mode 100644 packages/voucher/src/services/RedeemApi/baseConfig.ts create mode 100644 packages/voucher/src/services/RedeemApi/index.js create mode 100644 packages/voucher/src/setupTests.js create mode 100644 packages/voucher/src/styles/base.scss create mode 100644 packages/voucher/src/styles/colors.scss create mode 100644 packages/voucher/src/styles/constants.scss create mode 100644 packages/voucher/src/styles/styles.scss create mode 100644 packages/voucher/src/styles/typography.scss create mode 100644 packages/voucher/src/theme/breakpoints.ts create mode 100644 packages/voucher/src/theme/components/Avatar.ts create mode 100644 packages/voucher/src/theme/components/Banner.ts create mode 100644 packages/voucher/src/theme/components/Button.ts create mode 100644 packages/voucher/src/theme/components/Checkbox.ts create mode 100644 packages/voucher/src/theme/components/Divider.ts create mode 100644 packages/voucher/src/theme/components/Drawer.ts create mode 100644 packages/voucher/src/theme/components/GroupPageHeader.ts create mode 100644 packages/voucher/src/theme/components/InlineMessage.ts create mode 100644 packages/voucher/src/theme/components/Input.ts create mode 100644 packages/voucher/src/theme/components/LanguageSelector.ts create mode 100644 packages/voucher/src/theme/components/Link.ts create mode 100644 packages/voucher/src/theme/components/Menu.ts create mode 100644 packages/voucher/src/theme/components/Modal.ts create mode 100644 packages/voucher/src/theme/components/Progress.ts create mode 100644 packages/voucher/src/theme/components/Radio.ts create mode 100644 packages/voucher/src/theme/components/Select.ts create mode 100644 packages/voucher/src/theme/components/Stat.ts create mode 100644 packages/voucher/src/theme/components/Switch.ts create mode 100644 packages/voucher/src/theme/components/Table.ts create mode 100644 packages/voucher/src/theme/components/Tabs.ts create mode 100644 packages/voucher/src/theme/components/Tooltip.ts create mode 100644 packages/voucher/src/theme/components/index.ts create mode 100644 packages/voucher/src/theme/foundations/colors.ts create mode 100644 packages/voucher/src/theme/foundations/fonts.ts create mode 100644 packages/voucher/src/theme/foundations/index.ts create mode 100644 packages/voucher/src/theme/index.ts create mode 100644 packages/voucher/src/theme/layerStyles.ts create mode 100644 packages/voucher/src/theme/styles.ts create mode 100644 packages/voucher/src/theme/textStyles.ts create mode 100644 packages/voucher/src/theme/types.ts create mode 100644 packages/voucher/src/types/campaign.ts create mode 100644 packages/voucher/src/types/voucher.ts create mode 100644 packages/voucher/trans-syntax-custom.js create mode 100644 packages/voucher/tsconfig.json create mode 100644 pnpm-lock.yaml create mode 100644 pnpm-workspace.yaml create mode 100644 tsconfig.json diff --git a/.github/workflows/voucher.yml b/.github/workflows/voucher.yml new file mode 100644 index 0000000..915ee7c --- /dev/null +++ b/.github/workflows/voucher.yml @@ -0,0 +1,86 @@ +name: Voucher + +on: + push: + branches: [develop, master] + pull_request: + # defaults to run on opened, reopened, synchronized and assigned + branches: [develop, master] +env: # Environment variables + PERCY_TOKEN: ${{ secrets.PERCY_TOKEN }} +jobs: + e2e: + name: e2e + # Visual testing must be done on same platform as development + runs-on: ubuntu-20.04 + strategy: + fail-fast: false + matrix: + # Opted to implement 6 shards at this juncture due to the relatively higher number of test cases currently available in the voucher section. + # This decision aims to balance resource allocation and testing efficiency, ensuring that we neither overutilize nor underutilize our testing resources. + # As the test suite expands in the future, we will reassess the sharding strategy to accommodate growing demands and maintain optimal performance + shard: [1/6, 2/6, 3/6, 4/6, 5/6, 6/6] + steps: + - uses: actions/checkout@v4 + - name: Use Node.js + uses: actions/setup-node@v4 + with: + node-version-file: "packages/voucher/.nvmrc" + - name: Cache Node.js modules + uses: actions/cache@v4 + with: + # npm cache files are stored in `~/.npm` on Linux/macOS + path: ~/.pnpm-store + key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.OS }}-node- + ${{ runner.OS }}- + - run: corepack enable pnpm + - run: pnpm i --frozen-lockfile + - name: Set up PERCY_PARALLEL_TOTAL + # setting the total number of percy shards as an environment variable. If PERCY_PARALLEL_TOTAL is set to to -1 this tells the API to + # disregard the number of builds created and finalized. The API will then wait for a finalize all builds call, which will close the + # build for that nonce. The Percy CLI sets the total to -1 when the --parallel flag is passed. + run: echo "PERCY_PARALLEL_TOTAL=-1" >> $GITHUB_ENV + - run: npx playwright install-deps + - run: npx playwright install + - run: pnpm --filter @redeem/voucher build + - run: pnpm --filter @redeem/voucher test:e2e:ci --shard ${{ matrix.shard }} + env: + DEBUG: pw:api + - name: Upload failure report to GitHub actions Artificats + if: ${{ failure() }} + uses: actions/upload-artifact@v2 + with: + name: diffs + path: test-results/ + + # Multiple containers are deployed to facilitate the concurrent running of tests. To aggregate all Percy snapshots into a single build, + # an additional job is configured to execute at the conclusion of all test runs. This job is tasked with waiting for all containerized tests to complete, + # subsequently gathering all generated snapshots, and then uploading them cohesively to Percy. + upload-percy-snapshot: + # Merge reports after e2e test, even if some shards have failed + if: ${{ always() }} + needs: [e2e] + + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version-file: ".nvmrc" + - name: Cache Node.js modules + uses: actions/cache@v4 + with: + # npm cache files are stored in `~/.npm` on Linux/macOS + path: ~/.pnpm-store + key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.OS }}-node- + ${{ runner.OS }}- + - run: corepack enable pnpm + - name: Download node dependencies from npm cache instead + run: pnpm i --frozen-lockfile --prefer-offline + - name: "Finalise percy build into one" + if: ${{ env.PERCY_TOKEN != '' }} + run: pnpm --filter @redeem/voucher percy:ci:build diff --git a/.gitignore b/.gitignore index c6bba59..7f5da5f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,130 +1,30 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -lerna-debug.log* -.pnpm-debug.log* - -# Diagnostic reports (https://nodejs.org/api/report.html) -report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json - -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage -*.lcov - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules/ -jspm_packages/ - -# Snowpack dependency directory (https://snowpack.dev/) -web_modules/ - -# TypeScript cache -*.tsbuildinfo - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. -# Optional stylelint cache -.stylelintcache +# dependencies +/node_modules +/.pnp +.pnp.js -# Microbundle cache -.rpt2_cache/ -.rts2_cache_cjs/ -.rts2_cache_es/ -.rts2_cache_umd/ +# testing +/coverage +/test-results -# Optional REPL history -.node_repl_history +# production +/build -# Output of 'npm pack' -*.tgz - -# Yarn Integrity file -.yarn-integrity - -# dotenv environment variable files -.env +# misc +.DS_Store +.env.local .env.development.local .env.test.local .env.production.local -.env.local - -# parcel-bundler cache (https://parceljs.org/) -.cache -.parcel-cache - -# Next.js build output -.next -out - -# Nuxt.js build / generate output -.nuxt -dist - -# Gatsby files -.cache/ -# Comment in the public line in if your project uses Gatsby and not Next.js -# https://nextjs.org/blog/next-9-1#public-directory-support -# public - -# vuepress build output -.vuepress/dist -# vuepress v2.x temp and cache directory -.temp -.cache - -# Docusaurus cache and generated files -.docusaurus - -# Serverless directories -.serverless/ - -# FuseBox cache -.fusebox/ - -# DynamoDB Local files -.dynamodb/ - -# TernJS port file -.tern-port +npm-debug.log* +yarn-debug.log* +yarn-error.log* -# Stores VSCode versions used for testing VSCode extensions -.vscode-test +# environment variables +/env -# yarn v2 -.yarn/cache -.yarn/unplugged -.yarn/build-state.yml -.yarn/install-state.gz -.pnp.* +test-results/ +playwright-report/ \ No newline at end of file diff --git a/.husky/install.mjs b/.husky/install.mjs new file mode 100644 index 0000000..ba8e33d --- /dev/null +++ b/.husky/install.mjs @@ -0,0 +1,6 @@ +// Skip Husky install in production and CI +if (process.env.NODE_ENV === 'production' || process.env.CI === 'true') { + process.exit(0) +} +const husky = (await import('husky')).default +console.log(husky()) diff --git a/.husky/pre-push b/.husky/pre-push new file mode 100755 index 0000000..065d937 --- /dev/null +++ b/.husky/pre-push @@ -0,0 +1,3 @@ +#!/bin/sh + +pnpm --filter @redeem/* pre-push diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..21c8da8 --- /dev/null +++ b/.npmrc @@ -0,0 +1,12 @@ +# By default, pnpm creates a semistrict node_modules, meaning dependencies +# have access to undeclared dependencies but modules outside of node_modules do +# not. With this layout, most of the packages in the ecosystem work with no +# issues. However, if some tooling only works when the hoisted dependencies are +# in the root of node_modules, you can set this to true to hoist them for you. + +shamefully-hoist=true + +# Excludes module-alias from being hoisted as it must be present in the package +# node_modules for compilation to work properly. + +hoist-pattern[]=!module-alias \ No newline at end of file diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..53d1c14 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +v22 diff --git a/THIRD-PARTY-LICENSES.txt b/THIRD-PARTY-LICENSES.txt new file mode 100644 index 0000000..c50172b --- /dev/null +++ b/THIRD-PARTY-LICENSES.txt @@ -0,0 +1,23345 @@ +This file was generated with the generate-license-file npm package! +https://www.npmjs.com/package/generate-license-file + +The following npm packages may be included in this product: + + - @ampproject/remapping@2.3.0 + - @xtuc/long@4.2.2 + - ejs@3.1.10 + +These packages each contain the following license and notice below: + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +----------- + +The following npm package may be included in this product: + + - @surma/rollup-plugin-off-main-thread@2.2.3 + +This package contains the following license and notice below: + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2018 Google Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +----------- + +The following npm packages may be included in this product: + + - doctrine@2.1.0 + - doctrine@3.0.0 + +These packages each contain the following license and notice below: + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +----------- + +The following npm package may be included in this product: + + - http-proxy@1.18.1 + +This package contains the following license and notice below: + +node-http-proxy + + Copyright (c) 2010-2016 Charlie Robbins, Jarrett Cruger & the Contributors. + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - parseurl@1.3.3 + +This package contains the following license and notice below: + +(The MIT License) + +Copyright (c) 2014 Jonathan Ong +Copyright (c) 2014-2017 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - source-map-js@1.2.0 + - source-map@0.5.7 + - source-map@0.6.1 + - source-map@0.7.4 + - source-map@0.8.0-beta.0 + +These packages each contain the following license and notice below: + +Copyright (c) 2009-2011, Mozilla Foundation and contributors +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the names of the Mozilla Foundation nor the names of project + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----------- + +The following npm package may be included in this product: + + - asap@2.0.6 + +This package contains the following license and notice below: + +Copyright 2009–2014 Contributors. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to +deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - statuses@1.5.0 + - statuses@2.0.1 + +These packages each contain the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2014 Jonathan Ong +Copyright (c) 2016 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - ee-first@1.1.1 + - thenify-all@1.6.0 + +These packages each contain the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2014 Jonathan Ong me@jongleberry.com + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - destroy@1.2.0 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2014 Jonathan Ong me@jongleberry.com +Copyright (c) 2015-2022 Douglas Christopher Wilson doug@somethingdoug.com + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - http-errors@1.6.3 + - http-errors@2.0.0 + +These packages each contain the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2014 Jonathan Ong me@jongleberry.com +Copyright (c) 2016 Douglas Christopher Wilson doug@somethingdoug.com + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - thenify@3.3.1 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2014-2016 Jonathan Ong me@jongleberry.com and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - mz@2.7.0 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2014-2016 Jonathan Ong me@jongleberry.com and Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - xml-name-validator@3.0.0 + +This package contains the following license and notice below: + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + +----------- + +The following npm packages may be included in this product: + + - @humanwhocodes/config-array@0.11.14 + - @humanwhocodes/module-importer@1.0.1 + - @pkgjs/parseargs@0.11.0 + +These packages each contain the following license and notice below: + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +----------- + +The following npm package may be included in this product: + + - react-helmet-async@2.0.5 + +This package contains the following license and notice below: + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2018 The New York Times Company + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +----------- + +The following npm package may be included in this product: + + - human-signals@2.1.0 + +This package contains the following license and notice below: + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2019 ehmicky + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +----------- + +The following npm packages may be included in this product: + + - @datadog/browser-core@4.50.1 + - @datadog/browser-logs@4.50.1 + - @datadog/browser-rum-core@4.50.1 + - @datadog/browser-rum@4.50.1 + +These packages each contain the following license and notice below: + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2019-Present Datadog, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +----------- + +The following npm package may be included in this product: + + - ts-interface-checker@0.1.13 + +This package contains the following license and notice below: + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +----------- + +The following npm packages may be included in this product: + + - eslint-visitor-keys@2.1.0 + - eslint-visitor-keys@3.4.3 + +These packages each contain the following license and notice below: + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +----------- + +The following npm packages may be included in this product: + + - @playwright/test@1.44.0 + - playwright-core@1.44.0 + - playwright@1.44.0 + +These packages each contain the following license and notice below: + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Portions Copyright (c) Microsoft Corporation. + Portions Copyright 2017 Google Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +----------- + +The following npm packages may be included in this product: + + - @types/babel__core@7.20.5 + - @types/babel__generator@7.6.8 + - @types/babel__template@7.4.4 + - @types/babel__traverse@7.20.5 + - @types/body-parser@1.19.5 + - @types/bonjour@3.5.13 + - @types/connect-history-api-fallback@1.5.4 + - @types/connect@3.4.38 + - @types/eslint-scope@3.7.7 + - @types/eslint@8.56.10 + - @types/estree@1.0.5 + - @types/express-serve-static-core@4.19.0 + - @types/express@4.17.21 + - @types/graceful-fs@4.1.9 + - @types/html-minifier-terser@6.1.0 + - @types/http-errors@2.0.4 + - @types/http-proxy@1.17.14 + - @types/istanbul-lib-coverage@2.0.6 + - @types/istanbul-lib-report@3.0.3 + - @types/istanbul-reports@3.0.4 + - @types/json-schema@7.0.15 + - @types/lodash.mergewith@4.6.7 + - @types/lodash@4.17.1 + - @types/mime@1.3.5 + - @types/node-forge@1.3.11 + - @types/node@20.12.12 + - @types/parse-json@4.0.2 + - @types/prettier@2.7.3 + - @types/prop-types@15.7.12 + - @types/q@1.5.8 + - @types/qs@6.9.15 + - @types/range-parser@1.2.7 + - @types/react@18.3.2 + - @types/resolve@1.17.1 + - @types/semver@7.5.8 + - @types/send@0.17.4 + - @types/serve-index@1.9.4 + - @types/serve-static@1.15.7 + - @types/sockjs@0.3.36 + - @types/stack-utils@2.0.3 + - @types/trusted-types@2.0.7 + - @types/ws@8.5.10 + - @types/yargs-parser@21.0.3 + - @types/yargs@16.0.9 + - @types/yargs@17.0.32 + +These packages each contain the following license and notice below: + +MIT License + + Copyright (c) Microsoft Corporation. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE + +----------- + +The following npm packages may be included in this product: + + - @types/estree@0.0.39 + - @types/retry@0.12.0 + +These packages each contain the following license and notice below: + +MIT License + + Copyright (c) Microsoft Corporation. All rights reserved. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE + +----------- + +The following npm package may be included in this product: + + - harmony-reflect@1.6.2 + +This package contains the following license and notice below: + +(Apache-2.0 OR MPL-1.1) + +----------- + +The following npm package may be included in this product: + + - fast-levenshtein@2.0.6 + +This package contains the following license and notice below: + +(MIT License) + +Copyright (c) 2013 [Ramesh Nair](http://www.hiddentao.com/) + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - type-fest@4.18.2 + +This package contains the following license and notice below: + +(MIT OR CC0-1.0) + +----------- + +The following npm package may be included in this product: + + - balanced-match@1.0.2 + +This package contains the following license and notice below: + +(MIT) + +Copyright (c) 2013 Julian Gruber <julian@juliangruber.com> + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - express@4.19.2 + +This package contains the following license and notice below: + +(The MIT License) + +Copyright (c) 2009-2014 TJ Holowaychuk +Copyright (c) 2013-2014 Roman Shtylman +Copyright (c) 2014-2015 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - serve-index@1.9.1 + +This package contains the following license and notice below: + +(The MIT License) + +Copyright (c) 2010 Sencha Inc. +Copyright (c) 2011 LearnBoost +Copyright (c) 2011 TJ Holowaychuk +Copyright (c) 2014-2015 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - serve-static@1.15.0 + +This package contains the following license and notice below: + +(The MIT License) + +Copyright (c) 2010 Sencha Inc. +Copyright (c) 2011 LearnBoost +Copyright (c) 2011 TJ Holowaychuk +Copyright (c) 2014-2016 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - commander@2.20.3 + - commander@4.1.1 + - commander@7.2.0 + - commander@8.3.0 + +These packages each contain the following license and notice below: + +(The MIT License) + +Copyright (c) 2011 TJ Holowaychuk + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - js-yaml@3.14.1 + - js-yaml@4.1.0 + +These packages each contain the following license and notice below: + +(The MIT License) + +Copyright (C) 2011-2015 by Vitaly Puzrin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - fs-extra@10.1.0 + - fs-extra@9.1.0 + +These packages each contain the following license and notice below: + +(The MIT License) + +Copyright (c) 2011-2017 JP Richardson + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files +(the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, + merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS +OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - argparse@1.0.10 + +This package contains the following license and notice below: + +(The MIT License) + +Copyright (C) 2012 by Vitaly Puzrin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - send@0.18.0 + +This package contains the following license and notice below: + +(The MIT License) + +Copyright (c) 2012 TJ Holowaychuk +Copyright (c) 2014-2022 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - fresh@0.5.2 + +This package contains the following license and notice below: + +(The MIT License) + +Copyright (c) 2012 TJ Holowaychuk +Copyright (c) 2016-2017 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - escape-html@1.0.3 + +This package contains the following license and notice below: + +(The MIT License) + +Copyright (c) 2012-2013 TJ Holowaychuk +Copyright (c) 2015 Andreas Lubbe +Copyright (c) 2015 Tiancheng "Timothy" Gu + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - negotiator@0.6.3 + +This package contains the following license and notice below: + +(The MIT License) + +Copyright (c) 2012-2014 Federico Romero +Copyright (c) 2012-2014 Isaac Z. Schlueter +Copyright (c) 2014-2015 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - cookie@0.6.0 + +This package contains the following license and notice below: + +(The MIT License) + +Copyright (c) 2012-2014 Roman Shtylman +Copyright (c) 2015 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - bytes@3.0.0 + - bytes@3.1.2 + +These packages each contain the following license and notice below: + +(The MIT License) + +Copyright (c) 2012-2014 TJ Holowaychuk +Copyright (c) 2015 Jed Watson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - range-parser@1.2.1 + +This package contains the following license and notice below: + +(The MIT License) + +Copyright (c) 2012-2014 TJ Holowaychuk +Copyright (c) 2015-2016 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files +(the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, + merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS +OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - on-finished@2.4.1 + +This package contains the following license and notice below: + +(The MIT License) + +Copyright (c) 2013 Jonathan Ong +Copyright (c) 2014 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - compressible@2.0.18 + +This package contains the following license and notice below: + +(The MIT License) + +Copyright (c) 2013 Jonathan Ong +Copyright (c) 2014 Jeremiah Senkpiel +Copyright (c) 2015 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - merge-descriptors@1.0.1 + +This package contains the following license and notice below: + +(The MIT License) + +Copyright (c) 2013 Jonathan Ong +Copyright (c) 2015 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - batch@0.6.1 + +This package contains the following license and notice below: + +(The MIT License) + +Copyright (c) 2013 TJ Holowaychuk + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - methods@1.1.2 + +This package contains the following license and notice below: + +(The MIT License) + +Copyright (c) 2013-2014 TJ Holowaychuk +Copyright (c) 2015-2016 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - media-typer@0.3.0 + - on-headers@1.0.2 + +These packages each contain the following license and notice below: + +(The MIT License) + +Copyright (c) 2014 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - void-elements@3.1.0 + +This package contains the following license and notice below: + +(The MIT License) + +Copyright (c) 2014 hemanth + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - body-parser@1.20.2 + - compression@1.7.4 + - type-is@1.6.18 + +These packages each contain the following license and notice below: + +(The MIT License) + +Copyright (c) 2014 Jonathan Ong +Copyright (c) 2014-2015 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - accepts@1.3.8 + - mime-types@2.1.35 + +These packages each contain the following license and notice below: + +(The MIT License) + +Copyright (c) 2014 Jonathan Ong +Copyright (c) 2015 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - mime-db@1.52.0 + +This package contains the following license and notice below: + +(The MIT License) + +Copyright (c) 2014 Jonathan Ong +Copyright (c) 2015-2022 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - util-deprecate@1.0.2 + +This package contains the following license and notice below: + +(The MIT License) + +Copyright (c) 2014 Nathan Rajlich + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - co@4.6.0 + +This package contains the following license and notice below: + +(The MIT License) + +Copyright (c) 2014 TJ Holowaychuk <tj@vision-media.ca> + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - debug@2.6.9 + - debug@3.2.7 + +These packages each contain the following license and notice below: + +(The MIT License) + +Copyright (c) 2014 TJ Holowaychuk + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software +and associated documentation files (the 'Software'), to deal in the Software without restriction, +including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial +portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT +LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - etag@1.8.1 + - proxy-addr@2.0.7 + +These packages each contain the following license and notice below: + +(The MIT License) + +Copyright (c) 2014-2016 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - content-disposition@0.5.4 + - depd@1.1.2 + - forwarded@0.2.0 + - vary@1.1.2 + +These packages each contain the following license and notice below: + +(The MIT License) + +Copyright (c) 2014-2017 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - debug@4.3.4 + +This package contains the following license and notice below: + +(The MIT License) + +Copyright (c) 2014-2017 TJ Holowaychuk +Copyright (c) 2018-2021 Josh Junon + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software +and associated documentation files (the 'Software'), to deal in the Software without restriction, +including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial +portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT +LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - depd@2.0.0 + +This package contains the following license and notice below: + +(The MIT License) + +Copyright (c) 2014-2018 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - finalhandler@1.2.0 + +This package contains the following license and notice below: + +(The MIT License) + +Copyright (c) 2014-2022 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - content-type@1.0.5 + +This package contains the following license and notice below: + +(The MIT License) + +Copyright (c) 2015 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - unpipe@1.0.0 + +This package contains the following license and notice below: + +(The MIT License) + +Copyright (c) 2015 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - encodeurl@1.0.2 + +This package contains the following license and notice below: + +(The MIT License) + +Copyright (c) 2016 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - universalify@0.2.0 + - universalify@2.0.1 + +These packages each contain the following license and notice below: + +(The MIT License) + +Copyright (c) 2017, Ryan Zimmerman + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the 'Software'), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - @rushstack/eslint-patch@1.10.2 + +This package contains the following license and notice below: + +@rushstack/eslint-patch + +Copyright (c) Microsoft Corporation. All rights reserved. + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - jackspeak@2.3.6 + - path-scurry@1.10.2 + +These packages each contain the following license and notice below: + +# Blue Oak Model License + +Version 1.0.0 + +## Purpose + +This license gives everyone as much permission to work with +this software as possible, while protecting contributors +from liability. + +## Acceptance + +In order to receive this license, you must agree to its +rules. The rules of this license are both obligations +under that agreement and conditions to your license. +You must not do anything with this software that triggers +a rule that you cannot or will not follow. + +## Copyright + +Each contributor licenses you to do everything with this +software that would otherwise infringe that contributor's +copyright in it. + +## Notices + +You must ensure that everyone who gets a copy of +any part of this software from you, with or without +changes, also gets the text of this license or a link to +. + +## Excuse + +If anyone notifies you in writing that you have not +complied with [Notices](#notices), you can keep your +license by taking all practical steps to comply within 30 +days after the notice. If you do not do so, your license +ends immediately. + +## Patent + +Each contributor licenses you to do everything with this +software that would otherwise infringe any patent claims +they can license or become able to license. + +## Reliability + +No contributor can revoke this license. + +## No Liability + +***As far as the law allows, this software comes as is, +without any warranty or condition, and no contributor +will be liable to anyone for any damages related to this +software or this license, under any kind of legal claim.*** + +----------- + +The following npm package may be included in this product: + + - cssdb@7.11.2 + +This package contains the following license and notice below: + +# CC0 1.0 Universal + +## Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer +exclusive Copyright and Related Rights (defined below) upon the creator and +subsequent owner(s) (each and all, an “owner”) of an original work of +authorship and/or a database (each, a “Work”). + +Certain owners wish to permanently relinquish those rights to a Work for the +purpose of contributing to a commons of creative, cultural and scientific works +(“Commons”) that the public can reliably and without fear of later claims of +infringement build upon, modify, incorporate in other works, reuse and +redistribute as freely as possible in any form whatsoever and for any purposes, +including without limitation commercial purposes. These owners may contribute +to the Commons to promote the ideal of a free culture and the further +production of creative, cultural and scientific works, or to gain reputation or +greater distribution for their Work in part through the use and efforts of +others. + +For these and/or other purposes and motivations, and without any expectation of +additional consideration or compensation, the person associating CC0 with a +Work (the “Affirmer”), to the extent that he or she is an owner of Copyright +and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and +publicly distribute the Work under its terms, with knowledge of his or her +Copyright and Related Rights in the Work and the meaning and intended legal +effect of CC0 on those rights. + +1. Copyright and Related Rights. A Work made available under CC0 may be + protected by copyright and related or neighboring rights (“Copyright and + Related Rights”). Copyright and Related Rights include, but are not limited + to, the following: + 1. the right to reproduce, adapt, distribute, perform, display, + communicate, and translate a Work; + 2. moral rights retained by the original author(s) and/or performer(s); + 3. publicity and privacy rights pertaining to a person’s image or likeness + depicted in a Work; + 4. rights protecting against unfair competition in regards to a Work, + subject to the limitations in paragraph 4(i), below; + 5. rights protecting the extraction, dissemination, use and reuse of data + in a Work; + 6. database rights (such as those arising under Directive 96/9/EC of the + European Parliament and of the Council of 11 March 1996 on the legal + protection of databases, and under any national implementation thereof, + including any amended or successor version of such directive); and + 7. other similar, equivalent or corresponding rights throughout the world + based on applicable law or treaty, and any national implementations + thereof. + +2. Waiver. To the greatest extent permitted by, but not in contravention of, +applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and +unconditionally waives, abandons, and surrenders all of Affirmer’s Copyright +and Related Rights and associated claims and causes of action, whether now +known or unknown (including existing as well as future claims and causes of +action), in the Work (i) in all territories worldwide, (ii) for the maximum +duration provided by applicable law or treaty (including future time +extensions), (iii) in any current or future medium and for any number of +copies, and (iv) for any purpose whatsoever, including without limitation +commercial, advertising or promotional purposes (the “Waiver”). Affirmer makes +the Waiver for the benefit of each member of the public at large and to the +detriment of Affirmer’s heirs and successors, fully intending that such Waiver +shall not be subject to revocation, rescission, cancellation, termination, or +any other legal or equitable action to disrupt the quiet enjoyment of the Work +by the public as contemplated by Affirmer’s express Statement of Purpose. + +3. Public License Fallback. Should any part of the Waiver for any reason be +judged legally invalid or ineffective under applicable law, then the Waiver +shall be preserved to the maximum extent permitted taking into account +Affirmer’s express Statement of Purpose. In addition, to the extent the Waiver +is so judged Affirmer hereby grants to each affected person a royalty-free, non +transferable, non sublicensable, non exclusive, irrevocable and unconditional +license to exercise Affirmer’s Copyright and Related Rights in the Work (i) in +all territories worldwide, (ii) for the maximum duration provided by applicable +law or treaty (including future time extensions), (iii) in any current or +future medium and for any number of copies, and (iv) for any purpose +whatsoever, including without limitation commercial, advertising or promotional +purposes (the “License”). The License shall be deemed effective as of the date +CC0 was applied by Affirmer to the Work. Should any part of the License for any +reason be judged legally invalid or ineffective under applicable law, such +partial invalidity or ineffectiveness shall not invalidate the remainder of the +License, and in such case Affirmer hereby affirms that he or she will not (i) +exercise any of his or her remaining Copyright and Related Rights in the Work +or (ii) assert any associated claims and causes of action with respect to the +Work, in either case contrary to Affirmer’s express Statement of Purpose. + +4. Limitations and Disclaimers. + 1. No trademark or patent rights held by Affirmer are waived, abandoned, + surrendered, licensed or otherwise affected by this document. + 2. Affirmer offers the Work as-is and makes no representations or + warranties of any kind concerning the Work, express, implied, statutory + or otherwise, including without limitation warranties of title, + merchantability, fitness for a particular purpose, non infringement, or + the absence of latent or other defects, accuracy, or the present or + absence of errors, whether or not discoverable, all to the greatest + extent permissible under applicable law. + 3. Affirmer disclaims responsibility for clearing rights of other persons + that may apply to the Work or any use thereof, including without + limitation any person’s Copyright and Related Rights in the Work. + Further, Affirmer disclaims responsibility for obtaining any necessary + consents, permissions or other rights required for any use of the Work. + 4. Affirmer understands and acknowledges that Creative Commons is not a + party to this document and has no duty or obligation with respect to + this CC0 or use of the Work. + +For more information, please see +https://creativecommons.org/publicdomain/zero/1.0/. + +----------- + +The following npm packages may be included in this product: + + - @csstools/normalize.css@12.1.1 + - @csstools/postcss-cascade-layers@1.1.1 + - @csstools/postcss-color-function@1.1.1 + - @csstools/postcss-font-format-keywords@1.0.1 + - @csstools/postcss-hwb-function@1.0.2 + - @csstools/postcss-ic-unit@1.0.1 + - @csstools/postcss-is-pseudo-class@2.0.7 + - @csstools/postcss-nested-calc@1.0.0 + - @csstools/postcss-normalize-display-values@1.0.1 + - @csstools/postcss-oklab-function@1.1.1 + - @csstools/postcss-progressive-custom-properties@1.3.0 + - @csstools/postcss-stepped-value-functions@1.0.1 + - @csstools/postcss-text-decoration-shorthand@1.0.0 + - @csstools/postcss-trigonometric-functions@1.0.2 + - @csstools/postcss-unset-value@1.0.2 + - @csstools/selector-specificity@2.2.0 + - css-blank-pseudo@3.0.3 + - css-has-pseudo@3.0.4 + - css-prefers-color-scheme@6.0.3 + - postcss-browser-comments@4.0.0 + - postcss-color-functional-notation@4.2.4 + - postcss-color-rebeccapurple@7.1.1 + - postcss-dir-pseudo-class@6.0.5 + - postcss-double-position-gradients@3.1.2 + - postcss-env-function@4.0.6 + - postcss-focus-visible@6.0.4 + - postcss-focus-within@5.0.4 + - postcss-gap-properties@3.0.5 + - postcss-image-set-function@4.0.7 + - postcss-lab-function@4.2.1 + - postcss-logical@5.0.4 + - postcss-nesting@10.2.0 + - postcss-normalize@10.0.1 + - postcss-overflow-shorthand@3.0.4 + - postcss-place@7.0.5 + - postcss-preset-env@7.8.3 + - postcss-pseudo-class-any-link@7.1.6 + - sanitize.css@13.0.0 + +These packages each contain the following license and notice below: + +# CC0 1.0 Universal + +## Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer +exclusive Copyright and Related Rights (defined below) upon the creator and +subsequent owner(s) (each and all, an “owner”) of an original work of +authorship and/or a database (each, a “Work”). + +Certain owners wish to permanently relinquish those rights to a Work for the +purpose of contributing to a commons of creative, cultural and scientific works +(“Commons”) that the public can reliably and without fear of later claims of +infringement build upon, modify, incorporate in other works, reuse and +redistribute as freely as possible in any form whatsoever and for any purposes, +including without limitation commercial purposes. These owners may contribute +to the Commons to promote the ideal of a free culture and the further +production of creative, cultural and scientific works, or to gain reputation or +greater distribution for their Work in part through the use and efforts of +others. + +For these and/or other purposes and motivations, and without any expectation of +additional consideration or compensation, the person associating CC0 with a +Work (the “Affirmer”), to the extent that he or she is an owner of Copyright +and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and +publicly distribute the Work under its terms, with knowledge of his or her +Copyright and Related Rights in the Work and the meaning and intended legal +effect of CC0 on those rights. + +1. Copyright and Related Rights. A Work made available under CC0 may be + protected by copyright and related or neighboring rights (“Copyright and + Related Rights”). Copyright and Related Rights include, but are not limited + to, the following: + 1. the right to reproduce, adapt, distribute, perform, display, communicate, + and translate a Work; + 2. moral rights retained by the original author(s) and/or performer(s); + 3. publicity and privacy rights pertaining to a person’s image or likeness + depicted in a Work; + 4. rights protecting against unfair competition in regards to a Work, + subject to the limitations in paragraph 4(i), below; + 5. rights protecting the extraction, dissemination, use and reuse of data in + a Work; + 6. database rights (such as those arising under Directive 96/9/EC of the + European Parliament and of the Council of 11 March 1996 on the legal + protection of databases, and under any national implementation thereof, + including any amended or successor version of such directive); and + 7. other similar, equivalent or corresponding rights throughout the world + based on applicable law or treaty, and any national implementations + thereof. + +2. Waiver. To the greatest extent permitted by, but not in contravention of, + applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and + unconditionally waives, abandons, and surrenders all of Affirmer’s Copyright + and Related Rights and associated claims and causes of action, whether now + known or unknown (including existing as well as future claims and causes of + action), in the Work (i) in all territories worldwide, (ii) for the maximum + duration provided by applicable law or treaty (including future time + extensions), (iii) in any current or future medium and for any number of + copies, and (iv) for any purpose whatsoever, including without limitation + commercial, advertising or promotional purposes (the “Waiver”). Affirmer + makes the Waiver for the benefit of each member of the public at large and + to the detriment of Affirmer’s heirs and successors, fully intending that + such Waiver shall not be subject to revocation, rescission, cancellation, + termination, or any other legal or equitable action to disrupt the quiet + enjoyment of the Work by the public as contemplated by Affirmer’s express + Statement of Purpose. + +3. Public License Fallback. Should any part of the Waiver for any reason be + judged legally invalid or ineffective under applicable law, then the Waiver + shall be preserved to the maximum extent permitted taking into account + Affirmer’s express Statement of Purpose. In addition, to the extent the + Waiver is so judged Affirmer hereby grants to each affected person a + royalty-free, non transferable, non sublicensable, non exclusive, + irrevocable and unconditional license to exercise Affirmer’s Copyright and + Related Rights in the Work (i) in all territories worldwide, (ii) for the + maximum duration provided by applicable law or treaty (including future time + extensions), (iii) in any current or future medium and for any number of + copies, and (iv) for any purpose whatsoever, including without limitation + commercial, advertising or promotional purposes (the “License”). The License + shall be deemed effective as of the date CC0 was applied by Affirmer to the + Work. Should any part of the License for any reason be judged legally + invalid or ineffective under applicable law, such partial invalidity or + ineffectiveness shall not invalidate the remainder of the License, and in + such case Affirmer hereby affirms that he or she will not (i) exercise any + of his or her remaining Copyright and Related Rights in the Work or (ii) + assert any associated claims and causes of action with respect to the Work, + in either case contrary to Affirmer’s express Statement of Purpose. + +4. Limitations and Disclaimers. + 1. No trademark or patent rights held by Affirmer are waived, abandoned, + surrendered, licensed or otherwise affected by this document. + 2. Affirmer offers the Work as-is and makes no representations or warranties + of any kind concerning the Work, express, implied, statutory or + otherwise, including without limitation warranties of title, + merchantability, fitness for a particular purpose, non infringement, or + the absence of latent or other defects, accuracy, or the present or + absence of errors, whether or not discoverable, all to the greatest + extent permissible under applicable law. + 3. Affirmer disclaims responsibility for clearing rights of other persons + that may apply to the Work or any use thereof, including without + limitation any person’s Copyright and Related Rights in the Work. + Further, Affirmer disclaims responsibility for obtaining any necessary + consents, permissions or other rights required for any use of the Work. + 4. Affirmer understands and acknowledges that Creative Commons is not a + party to this document and has no duty or obligation with respect to this + CC0 or use of the Work. + +For more information, please see +http://creativecommons.org/publicdomain/zero/1.0/. + +----------- + +The following npm package may be included in this product: + + - process-nextick-args@2.0.1 + +This package contains the following license and notice below: + +# Copyright (c) 2015 Calvin Metcalf + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +**THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE.** + +----------- + +The following npm package may be included in this product: + + - postcss-opacity-percentage@1.1.3 + +This package contains the following license and notice below: + +# MIT License + +Copyright (c) 2021 Marc Görtz + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - rollup@2.79.1 + +This package contains the following license and notice below: + +# Rollup core license +Rollup is released under the MIT license: + +The MIT License (MIT) + +Copyright (c) 2017 [these people](https://github.com/rollup/rollup/graphs/contributors) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +# Licenses of bundled dependencies +The published Rollup artifact additionally contains code with the following licenses: +MIT, ISC + +# Bundled dependencies: +## @rollup/pluginutils +License: MIT +By: Rich Harris +Repository: rollup/plugins + +--------------------------------------- + +## acorn +License: MIT +By: Marijn Haverbeke, Ingvar Stepanyan, Adrian Heine +Repository: https://github.com/acornjs/acorn.git + +> MIT License +> +> Copyright (C) 2012-2022 by various contributors (see AUTHORS) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +--------------------------------------- + +## acorn-walk +License: MIT +By: Marijn Haverbeke, Ingvar Stepanyan, Adrian Heine +Repository: https://github.com/acornjs/acorn.git + +> MIT License +> +> Copyright (C) 2012-2020 by various contributors (see AUTHORS) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +--------------------------------------- + +## anymatch +License: ISC +By: Elan Shanker +Repository: https://github.com/micromatch/anymatch + +> The ISC License +> +> Copyright (c) 2019 Elan Shanker, Paul Miller (https://paulmillr.com) +> +> Permission to use, copy, modify, and/or distribute this software for any +> purpose with or without fee is hereby granted, provided that the above +> copyright notice and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +> MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +> ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +> WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +> ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +> IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +--------------------------------------- + +## binary-extensions +License: MIT +By: Sindre Sorhus +Repository: sindresorhus/binary-extensions + +> MIT License +> +> Copyright (c) 2019 Sindre Sorhus (https://sindresorhus.com), Paul Miller (https://paulmillr.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +--------------------------------------- + +## braces +License: MIT +By: Jon Schlinkert, Brian Woodward, Elan Shanker, Eugene Sharygin, hemanth.hm +Repository: micromatch/braces + +> The MIT License (MIT) +> +> Copyright (c) 2014-2018, Jon Schlinkert. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +--------------------------------------- + +## chokidar +License: MIT +By: Paul Miller, Elan Shanker +Repository: git+https://github.com/paulmillr/chokidar.git + +> The MIT License (MIT) +> +> Copyright (c) 2012-2019 Paul Miller (https://paulmillr.com), Elan Shanker +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the “Software”), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +--------------------------------------- + +## colorette +License: MIT +By: Jorge Bucaran +Repository: jorgebucaran/colorette + +> Copyright © Jorge Bucaran <> +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +--------------------------------------- + +## date-time +License: MIT +By: Sindre Sorhus +Repository: sindresorhus/date-time + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +--------------------------------------- + +## fill-range +License: MIT +By: Jon Schlinkert, Edo Rivai, Paul Miller, Rouven Weßling +Repository: jonschlinkert/fill-range + +> The MIT License (MIT) +> +> Copyright (c) 2014-present, Jon Schlinkert. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +--------------------------------------- + +## glob-parent +License: ISC +By: Gulp Team, Elan Shanker, Blaine Bublitz +Repository: gulpjs/glob-parent + +> The ISC License +> +> Copyright (c) 2015, 2019 Elan Shanker +> +> Permission to use, copy, modify, and/or distribute this software for any +> purpose with or without fee is hereby granted, provided that the above +> copyright notice and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +> MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +> ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +> WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +> ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +> IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +--------------------------------------- + +## hash.js +License: MIT +By: Fedor Indutny +Repository: git@github.com:indutny/hash.js + +--------------------------------------- + +## inherits +License: ISC +Repository: git://github.com/isaacs/inherits + +> The ISC License +> +> Copyright (c) Isaac Z. Schlueter +> +> Permission to use, copy, modify, and/or distribute this software for any +> purpose with or without fee is hereby granted, provided that the above +> copyright notice and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +> REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +> FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +> INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +> LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +> OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +> PERFORMANCE OF THIS SOFTWARE. + +--------------------------------------- + +## is-binary-path +License: MIT +By: Sindre Sorhus +Repository: sindresorhus/is-binary-path + +> MIT License +> +> Copyright (c) 2019 Sindre Sorhus (https://sindresorhus.com), Paul Miller (https://paulmillr.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +--------------------------------------- + +## is-extglob +License: MIT +By: Jon Schlinkert +Repository: jonschlinkert/is-extglob + +> The MIT License (MIT) +> +> Copyright (c) 2014-2016, Jon Schlinkert +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +--------------------------------------- + +## is-glob +License: MIT +By: Jon Schlinkert, Brian Woodward, Daniel Perez +Repository: micromatch/is-glob + +> The MIT License (MIT) +> +> Copyright (c) 2014-2017, Jon Schlinkert. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +--------------------------------------- + +## is-number +License: MIT +By: Jon Schlinkert, Olsten Larck, Rouven Weßling +Repository: jonschlinkert/is-number + +> The MIT License (MIT) +> +> Copyright (c) 2014-present, Jon Schlinkert. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +--------------------------------------- + +## is-reference +License: MIT +By: Rich Harris +Repository: git+https://github.com/Rich-Harris/is-reference.git + +--------------------------------------- + +## locate-character +License: MIT +By: Rich Harris +Repository: Rich-Harris/locate-character + +--------------------------------------- + +## magic-string +License: MIT +By: Rich Harris +Repository: https://github.com/rich-harris/magic-string + +> Copyright 2018 Rich Harris +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +--------------------------------------- + +## minimalistic-assert +License: ISC +Repository: https://github.com/calvinmetcalf/minimalistic-assert.git + +> Copyright 2015 Calvin Metcalf +> +> Permission to use, copy, modify, and/or distribute this software for any purpose +> with or without fee is hereby granted, provided that the above copyright notice +> and this permission notice appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +> REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +> FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +> INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +> LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +> OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +> PERFORMANCE OF THIS SOFTWARE. + +--------------------------------------- + +## normalize-path +License: MIT +By: Jon Schlinkert, Blaine Bublitz +Repository: jonschlinkert/normalize-path + +> The MIT License (MIT) +> +> Copyright (c) 2014-2018, Jon Schlinkert. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +--------------------------------------- + +## parse-ms +License: MIT +By: Sindre Sorhus +Repository: sindresorhus/parse-ms + +> MIT License +> +> Copyright (c) Sindre Sorhus (sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +--------------------------------------- + +## picomatch +License: MIT +By: Jon Schlinkert +Repository: micromatch/picomatch + +> The MIT License (MIT) +> +> Copyright (c) 2017-present, Jon Schlinkert. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +--------------------------------------- + +## pretty-bytes +License: MIT +By: Sindre Sorhus +Repository: sindresorhus/pretty-bytes + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +--------------------------------------- + +## pretty-ms +License: MIT +By: Sindre Sorhus +Repository: sindresorhus/pretty-ms + +> MIT License +> +> Copyright (c) Sindre Sorhus (sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +--------------------------------------- + +## readdirp +License: MIT +By: Thorsten Lorenz, Paul Miller +Repository: git://github.com/paulmillr/readdirp.git + +> MIT License +> +> Copyright (c) 2012-2019 Thorsten Lorenz, Paul Miller (https://paulmillr.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. + +--------------------------------------- + +## signal-exit +License: ISC +By: Ben Coe +Repository: https://github.com/tapjs/signal-exit.git + +> The ISC License +> +> Copyright (c) 2015, Contributors +> +> Permission to use, copy, modify, and/or distribute this software +> for any purpose with or without fee is hereby granted, provided +> that the above copyright notice and this permission notice +> appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES +> OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE +> LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES +> OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +> WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +> ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +--------------------------------------- + +## sourcemap-codec +License: MIT +By: Rich Harris +Repository: https://github.com/Rich-Harris/sourcemap-codec + +> The MIT License +> +> Copyright (c) 2015 Rich Harris +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +--------------------------------------- + +## time-zone +License: MIT +By: Sindre Sorhus +Repository: sindresorhus/time-zone + +> MIT License +> +> Copyright (c) Sindre Sorhus (https://sindresorhus.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +--------------------------------------- + +## to-regex-range +License: MIT +By: Jon Schlinkert, Rouven Weßling +Repository: micromatch/to-regex-range + +> The MIT License (MIT) +> +> Copyright (c) 2015-present, Jon Schlinkert. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +--------------------------------------- + +## yargs-parser +License: ISC +By: Ben Coe +Repository: https://github.com/yargs/yargs-parser.git + +> Copyright (c) 2016, Contributors +> +> Permission to use, copy, modify, and/or distribute this software +> for any purpose with or without fee is hereby granted, provided +> that the above copyright notice and this permission notice +> appear in all copies. +> +> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES +> OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE +> LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES +> OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +> WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +> ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - webidl-conversions@4.0.2 + - webidl-conversions@5.0.0 + - webidl-conversions@6.1.0 + +These packages each contain the following license and notice below: + +# The BSD 2-Clause License + +Copyright (c) 2014, Domenic Denicola +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----------- + +The following npm package may be included in this product: + + - w3c-hr-time@1.0.2 + +This package contains the following license and notice below: + +# The MIT License (MIT) + +Copyright (c) 2017 Tiancheng "Timothy" Gu and other contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - postcss-color-hex-alpha@8.0.4 + - postcss-custom-media@8.0.2 + - postcss-custom-properties@12.1.11 + - postcss-custom-selectors@6.0.3 + +These packages each contain the following license and notice below: + +# The MIT License (MIT) + +Copyright © PostCSS + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - chrome-trace-event@1.0.3 + +This package contains the following license and notice below: + +# This is the MIT license + +Copyright (c) 2015 Joyent Inc. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - didyoumean@1.2.2 + +This package contains the following license and notice below: + +## License + +didYouMean.js copyright (c) 2013 Dave Porter. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License +[here](http://www.apache.org/licenses/LICENSE-2.0). + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +----------- + +The following npm package may be included in this product: + + - dijkstrajs@1.0.3 + +This package contains the following license and notice below: + +``` +Dijkstra path-finding functions. Adapted from the Dijkstar Python project. + +Copyright (C) 2008 + Wyatt Baldwin + All rights reserved + +Licensed under the MIT license. + + http://www.opensource.org/licenses/mit-license.php + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +``` + +----------- + +The following npm package may be included in this product: + + - argparse@2.0.1 + +This package contains the following license and notice below: + +A. HISTORY OF THE SOFTWARE +========================== + +Python was created in the early 1990s by Guido van Rossum at Stichting +Mathematisch Centrum (CWI, see http://www.cwi.nl) in the Netherlands +as a successor of a language called ABC. Guido remains Python's +principal author, although it includes many contributions from others. + +In 1995, Guido continued his work on Python at the Corporation for +National Research Initiatives (CNRI, see http://www.cnri.reston.va.us) +in Reston, Virginia where he released several versions of the +software. + +In May 2000, Guido and the Python core development team moved to +BeOpen.com to form the BeOpen PythonLabs team. In October of the same +year, the PythonLabs team moved to Digital Creations, which became +Zope Corporation. In 2001, the Python Software Foundation (PSF, see +https://www.python.org/psf/) was formed, a non-profit organization +created specifically to own Python-related Intellectual Property. +Zope Corporation was a sponsoring member of the PSF. + +All Python releases are Open Source (see http://www.opensource.org for +the Open Source Definition). Historically, most, but not all, Python +releases have also been GPL-compatible; the table below summarizes +the various releases. + + Release Derived Year Owner GPL- + from compatible? (1) + + 0.9.0 thru 1.2 1991-1995 CWI yes + 1.3 thru 1.5.2 1.2 1995-1999 CNRI yes + 1.6 1.5.2 2000 CNRI no + 2.0 1.6 2000 BeOpen.com no + 1.6.1 1.6 2001 CNRI yes (2) + 2.1 2.0+1.6.1 2001 PSF no + 2.0.1 2.0+1.6.1 2001 PSF yes + 2.1.1 2.1+2.0.1 2001 PSF yes + 2.1.2 2.1.1 2002 PSF yes + 2.1.3 2.1.2 2002 PSF yes + 2.2 and above 2.1.1 2001-now PSF yes + +Footnotes: + +(1) GPL-compatible doesn't mean that we're distributing Python under + the GPL. All Python licenses, unlike the GPL, let you distribute + a modified version without making your changes open source. The + GPL-compatible licenses make it possible to combine Python with + other software that is released under the GPL; the others don't. + +(2) According to Richard Stallman, 1.6.1 is not GPL-compatible, + because its license has a choice of law clause. According to + CNRI, however, Stallman's lawyer has told CNRI's lawyer that 1.6.1 + is "not incompatible" with the GPL. + +Thanks to the many outside volunteers who have worked under Guido's +direction to make these releases possible. + + +B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON +=============================================================== + +PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 +-------------------------------------------- + +1. This LICENSE AGREEMENT is between the Python Software Foundation +("PSF"), and the Individual or Organization ("Licensee") accessing and +otherwise using this software ("Python") in source or binary form and +its associated documentation. + +2. Subject to the terms and conditions of this License Agreement, PSF hereby +grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, +analyze, test, perform and/or display publicly, prepare derivative works, +distribute, and otherwise use Python alone or in any derivative version, +provided, however, that PSF's License Agreement and PSF's notice of copyright, +i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, +2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Python Software Foundation; +All Rights Reserved" are retained in Python alone or in any derivative version +prepared by Licensee. + +3. In the event Licensee prepares a derivative work that is based on +or incorporates Python or any part thereof, and wants to make +the derivative work available to others as provided herein, then +Licensee hereby agrees to include in any such work a brief summary of +the changes made to Python. + +4. PSF is making Python available to Licensee on an "AS IS" +basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON +FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS +A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, +OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +6. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +7. Nothing in this License Agreement shall be deemed to create any +relationship of agency, partnership, or joint venture between PSF and +Licensee. This License Agreement does not grant permission to use PSF +trademarks or trade name in a trademark sense to endorse or promote +products or services of Licensee, or any third party. + +8. By copying, installing or otherwise using Python, Licensee +agrees to be bound by the terms and conditions of this License +Agreement. + + +BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0 +------------------------------------------- + +BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1 + +1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an +office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the +Individual or Organization ("Licensee") accessing and otherwise using +this software in source or binary form and its associated +documentation ("the Software"). + +2. Subject to the terms and conditions of this BeOpen Python License +Agreement, BeOpen hereby grants Licensee a non-exclusive, +royalty-free, world-wide license to reproduce, analyze, test, perform +and/or display publicly, prepare derivative works, distribute, and +otherwise use the Software alone or in any derivative version, +provided, however, that the BeOpen Python License is retained in the +Software, alone or in any derivative version prepared by Licensee. + +3. BeOpen is making the Software available to Licensee on an "AS IS" +basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE +SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS +AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY +DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +5. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +6. This License Agreement shall be governed by and interpreted in all +respects by the law of the State of California, excluding conflict of +law provisions. Nothing in this License Agreement shall be deemed to +create any relationship of agency, partnership, or joint venture +between BeOpen and Licensee. This License Agreement does not grant +permission to use BeOpen trademarks or trade names in a trademark +sense to endorse or promote products or services of Licensee, or any +third party. As an exception, the "BeOpen Python" logos available at +http://www.pythonlabs.com/logos.html may be used according to the +permissions granted on that web page. + +7. By copying, installing or otherwise using the software, Licensee +agrees to be bound by the terms and conditions of this License +Agreement. + + +CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1 +--------------------------------------- + +1. This LICENSE AGREEMENT is between the Corporation for National +Research Initiatives, having an office at 1895 Preston White Drive, +Reston, VA 20191 ("CNRI"), and the Individual or Organization +("Licensee") accessing and otherwise using Python 1.6.1 software in +source or binary form and its associated documentation. + +2. Subject to the terms and conditions of this License Agreement, CNRI +hereby grants Licensee a nonexclusive, royalty-free, world-wide +license to reproduce, analyze, test, perform and/or display publicly, +prepare derivative works, distribute, and otherwise use Python 1.6.1 +alone or in any derivative version, provided, however, that CNRI's +License Agreement and CNRI's notice of copyright, i.e., "Copyright (c) +1995-2001 Corporation for National Research Initiatives; All Rights +Reserved" are retained in Python 1.6.1 alone or in any derivative +version prepared by Licensee. Alternately, in lieu of CNRI's License +Agreement, Licensee may substitute the following text (omitting the +quotes): "Python 1.6.1 is made available subject to the terms and +conditions in CNRI's License Agreement. This Agreement together with +Python 1.6.1 may be located on the Internet using the following +unique, persistent identifier (known as a handle): 1895.22/1013. This +Agreement may also be obtained from a proxy server on the Internet +using the following URL: http://hdl.handle.net/1895.22/1013". + +3. In the event Licensee prepares a derivative work that is based on +or incorporates Python 1.6.1 or any part thereof, and wants to make +the derivative work available to others as provided herein, then +Licensee hereby agrees to include in any such work a brief summary of +the changes made to Python 1.6.1. + +4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS" +basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON +1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS +A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1, +OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +6. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +7. This License Agreement shall be governed by the federal +intellectual property law of the United States, including without +limitation the federal copyright law, and, to the extent such +U.S. federal law does not apply, by the law of the Commonwealth of +Virginia, excluding Virginia's conflict of law provisions. +Notwithstanding the foregoing, with regard to derivative works based +on Python 1.6.1 that incorporate non-separable material that was +previously distributed under the GNU General Public License (GPL), the +law of the Commonwealth of Virginia shall govern this License +Agreement only as to issues arising under or with respect to +Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this +License Agreement shall be deemed to create any relationship of +agency, partnership, or joint venture between CNRI and Licensee. This +License Agreement does not grant permission to use CNRI trademarks or +trade name in a trademark sense to endorse or promote products or +services of Licensee, or any third party. + +8. By clicking on the "ACCEPT" button where indicated, or by copying, +installing or otherwise using Python 1.6.1, Licensee agrees to be +bound by the terms and conditions of this License Agreement. + + ACCEPT + + +CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2 +-------------------------------------------------- + +Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, +The Netherlands. All rights reserved. + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of Stichting Mathematisch +Centrum or CWI not be used in advertising or publicity pertaining to +distribution of the software without specific, written prior +permission. + +STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO +THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE +FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - focus-visible@5.2.0 + +This package contains the following license and notice below: + +All Reports in this Repository are licensed by Contributors under the +[W3C Software and Document +License](http://www.w3.org/Consortium/Legal/2015/copyright-software-and-document). Contributions to +Specifications are made under the [W3C CLA](https://www.w3.org/community/about/agreements/cla/). + +----------- + +The following npm package may be included in this product: + + - ansi-html-community@0.0.8 + +This package contains the following license and notice below: + +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +----------- + +The following npm packages may be included in this product: + + - aria-query@5.3.0 + - axobject-query@3.2.1 + +These packages each contain the following license and notice below: + +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, +and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by +the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all +other entities that control, are controlled by, or are under common +control with that entity. For the purposes of this definition, +"control" means (i) the power, direct or indirect, to cause the +direction or management of such entity, whether by contract or +otherwise, or (ii) ownership of fifty percent (50%) or more of the +outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity +exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, +including but not limited to software source code, documentation +source, and configuration files. + +"Object" form shall mean any form resulting from mechanical +transformation or translation of a Source form, including but +not limited to compiled object code, generated documentation, +and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or +Object form, made available under the License, as indicated by a +copyright notice that is included in or attached to the work +(an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object +form, that is based on (or derived from) the Work and for which the +editorial revisions, annotations, elaborations, or other modifications +represent, as a whole, an original work of authorship. For the purposes +of this License, Derivative Works shall not include works that remain +separable from, or merely link (or bind by name) to the interfaces of, +the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including +the original version of the Work and any modifications or additions +to that Work or Derivative Works thereof, that is intentionally +submitted to Licensor for inclusion in the Work by the copyright owner +or by an individual or Legal Entity authorized to submit on behalf of +the copyright owner. For the purposes of this definition, "submitted" +means any form of electronic, verbal, or written communication sent +to the Licensor or its representatives, including but not limited to +communication on electronic mailing lists, source code control systems, +and issue tracking systems that are managed by, or on behalf of, the +Licensor for the purpose of discussing and improving the Work, but +excluding communication that is conspicuously marked or otherwise +designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity +on behalf of whom a Contribution has been received by Licensor and +subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of +this License, each Contributor hereby grants to You a perpetual, +worldwide, non-exclusive, no-charge, royalty-free, irrevocable +copyright license to reproduce, prepare Derivative Works of, +publicly display, publicly perform, sublicense, and distribute the +Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of +this License, each Contributor hereby grants to You a perpetual, +worldwide, non-exclusive, no-charge, royalty-free, irrevocable +(except as stated in this section) patent license to make, have made, +use, offer to sell, sell, import, and otherwise transfer the Work, +where such license applies only to those patent claims licensable +by such Contributor that are necessarily infringed by their +Contribution(s) alone or by combination of their Contribution(s) +with the Work to which such Contribution(s) was submitted. If You +institute patent litigation against any entity (including a +cross-claim or counterclaim in a lawsuit) alleging that the Work +or a Contribution incorporated within the Work constitutes direct +or contributory patent infringement, then any patent licenses +granted to You under this License for that Work shall terminate +as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the +Work or Derivative Works thereof in any medium, with or without +modifications, and in Source or Object form, provided that You +meet the following conditions: + +(a) You must give any other recipients of the Work or +Derivative Works a copy of this License; and + +(b) You must cause any modified files to carry prominent notices +stating that You changed the files; and + +(c) You must retain, in the Source form of any Derivative Works +that You distribute, all copyright, patent, trademark, and +attribution notices from the Source form of the Work, +excluding those notices that do not pertain to any part of +the Derivative Works; and + +(d) If the Work includes a "NOTICE" text file as part of its +distribution, then any Derivative Works that You distribute must +include a readable copy of the attribution notices contained +within such NOTICE file, excluding those notices that do not +pertain to any part of the Derivative Works, in at least one +of the following places: within a NOTICE text file distributed +as part of the Derivative Works; within the Source form or +documentation, if provided along with the Derivative Works; or, +within a display generated by the Derivative Works, if and +wherever such third-party notices normally appear. The contents +of the NOTICE file are for informational purposes only and +do not modify the License. You may add Your own attribution +notices within Derivative Works that You distribute, alongside +or as an addendum to the NOTICE text from the Work, provided +that such additional attribution notices cannot be construed +as modifying the License. + +You may add Your own copyright statement to Your modifications and +may provide additional or different license terms and conditions +for use, reproduction, or distribution of Your modifications, or +for any such Derivative Works as a whole, provided Your use, +reproduction, and distribution of the Work otherwise complies with +the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, +any Contribution intentionally submitted for inclusion in the Work +by You to the Licensor shall be under the terms and conditions of +this License, without any additional terms or conditions. +Notwithstanding the above, nothing herein shall supersede or modify +the terms of any separate license agreement you may have executed +with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade +names, trademarks, service marks, or product names of the Licensor, +except as required for reasonable and customary use in describing the +origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or +agreed to in writing, Licensor provides the Work (and each +Contributor provides its Contributions) on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +implied, including, without limitation, any warranties or conditions +of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A +PARTICULAR PURPOSE. You are solely responsible for determining the +appropriateness of using or redistributing the Work and assume any +risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, +whether in tort (including negligence), contract, or otherwise, +unless required by applicable law (such as deliberate and grossly +negligent acts) or agreed to in writing, shall any Contributor be +liable to You for damages, including any direct, indirect, special, +incidental, or consequential damages of any character arising as a +result of this License or out of the use or inability to use the +Work (including but not limited to damages for loss of goodwill, +work stoppage, computer failure or malfunction, or any and all +other commercial damages or losses), even if such Contributor +has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing +the Work or Derivative Works thereof, You may choose to offer, +and charge a fee for, acceptance of support, warranty, indemnity, +or other liability obligations and/or rights consistent with this +License. However, in accepting such obligations, You may act only +on Your own behalf and on Your sole responsibility, not on behalf +of any other Contributor, and only if You agree to indemnify, +defend, and hold each Contributor harmless for any liability +incurred by, or claims asserted against, such Contributor by reason +of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + +To apply the Apache License to your work, attach the following +boilerplate notice, with the fields enclosed by brackets "{}" +replaced with your own identifying information. (Don't include +the brackets!) The text should be enclosed in the appropriate +comment syntax for the file format. We also recommend that a +file or class name and description of purpose be included on the +same "printed page" as the copyright notice for easier +identification within third-party archives. + +Copyright 2020 A11yance + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +----------- + +The following npm package may be included in this product: + + - typescript@4.9.5 + +This package contains the following license and notice below: + +Apache License + +Version 2.0, January 2004 + +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + +You must give any other recipients of the Work or Derivative Works a copy of this License; and + +You must cause any modified files to carry prominent notices stating that You changed the files; and + +You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and + +If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +----------- + +The following npm packages may be included in this product: + + - bser@2.1.1 + - fb-watchman@2.0.2 + - filelist@1.0.4 + - jake@10.8.7 + +These packages each contain the following license and notice below: + +Apache-2.0 + +----------- + +The following npm package may be included in this product: + + - caniuse-lite@1.0.30001618 + +This package contains the following license and notice below: + +Attribution 4.0 International + +======================================================================= + +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More_considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees + +======================================================================= + +Creative Commons Attribution 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution 4.0 International Public License ("Public License"). To the +extent this Public License may be interpreted as a contract, You are +granted the Licensed Rights in consideration of Your acceptance of +these terms and conditions, and the Licensor grants You such rights in +consideration of benefits the Licensor receives from making the +Licensed Material available under these terms and conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + + c. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + + d. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + + e. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + + f. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + + g. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + + h. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + + i. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + + j. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + + k. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + + +Section 2 -- Scope. + + a. License grant. + + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + + a. reproduce and Share the Licensed Material, in whole or + in part; and + + b. produce, reproduce, and Share Adapted Material. + + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + + 3. Term. The term of this Public License is specified in Section + 6(a). + + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + + 5. Downstream recipients. + + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + + b. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + + b. Other rights. + + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this + Public License. + + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material (including in modified + form), You must: + + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of + warranties; + + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + + 4. If You Share Adapted Material You produce, the Adapter's + License You apply must not prevent recipients of the Adapted + Material from complying with this Public License. + + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material; and + + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. + + +======================================================================= + +Creative Commons is not a party to its public +licenses. Notwithstanding, Creative Commons may elect to apply one of +its public licenses to material it publishes and in those instances +will be considered the “Licensor.” The text of the Creative Commons +public licenses is dedicated to the public domain under the CC0 Public +Domain Dedication. Except for the limited purpose of indicating that +material is shared under a Creative Commons public license or as +otherwise permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the +use of the trademark "Creative Commons" or any other trademark or logo +of Creative Commons without its prior written consent including, +without limitation, in connection with any unauthorized modifications +to any of its public licenses or any other arrangements, +understandings, or agreements concerning use of licensed material. For +the avoidance of doubt, this paragraph does not form part of the +public licenses. + +Creative Commons may be contacted at creativecommons.org. + +----------- + +The following npm package may be included in this product: + + - damerau-levenshtein@1.0.8 + +This package contains the following license and notice below: + +BSD 2-Clause License + +Copyright (c) 2018, Tadeusz Łazurski +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----------- + +The following npm package may be included in this product: + + - espree@9.6.1 + +This package contains the following license and notice below: + +BSD 2-Clause License + +Copyright (c) Open JS Foundation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----------- + +The following npm packages may be included in this product: + + - qs@6.11.0 + - qs@6.12.1 + +These packages each contain the following license and notice below: + +BSD 3-Clause License + +Copyright (c) 2014, Nathan LaFreniere and other [contributors](https://github.com/ljharb/qs/graphs/contributors) +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----------- + +The following npm package may be included in this product: + + - @sinonjs/commons@1.8.6 + +This package contains the following license and notice below: + +BSD 3-Clause License + +Copyright (c) 2018, Sinon.JS +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----------- + +The following npm package may be included in this product: + + - @humanwhocodes/object-schema@2.0.3 + +This package contains the following license and notice below: + +BSD 3-Clause License + +Copyright (c) 2019, Human Who Codes +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----------- + +The following npm packages may be included in this product: + + - makeerror@1.0.12 + - tmpl@1.0.5 + +These packages each contain the following license and notice below: + +BSD License + +Copyright (c) 2014, Naitik Shah. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + * Neither the name Naitik Shah nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----------- + +The following npm packages may be included in this product: + + - esrecurse@4.3.0 + - glob-to-regexp@0.4.1 + +These packages each contain the following license and notice below: + +BSD-2-Clause + +----------- + +The following npm packages may be included in this product: + + - mdn-data@2.0.14 + - mdn-data@2.0.4 + +These packages each contain the following license and notice below: + +CC0 1.0 Universal + +Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer +exclusive Copyright and Related Rights (defined below) upon the creator and +subsequent owner(s) (each and all, an "owner") of an original work of +authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for the +purpose of contributing to a commons of creative, cultural and scientific +works ("Commons") that the public can reliably and without fear of later +claims of infringement build upon, modify, incorporate in other works, reuse +and redistribute as freely as possible in any form whatsoever and for any +purposes, including without limitation commercial purposes. These owners may +contribute to the Commons to promote the ideal of a free culture and the +further production of creative, cultural and scientific works, or to gain +reputation or greater distribution for their Work in part through the use and +efforts of others. + +For these and/or other purposes and motivations, and without any expectation +of additional consideration or compensation, the person associating CC0 with a +Work (the "Affirmer"), to the extent that he or she is an owner of Copyright +and Related Rights in the Work, voluntarily elects to apply CC0 to the Work +and publicly distribute the Work under its terms, with knowledge of his or her +Copyright and Related Rights in the Work and the meaning and intended legal +effect of CC0 on those rights. + +1. Copyright and Related Rights. A Work made available under CC0 may be +protected by copyright and related or neighboring rights ("Copyright and +Related Rights"). Copyright and Related Rights include, but are not limited +to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, communicate, + and translate a Work; + + ii. moral rights retained by the original author(s) and/or performer(s); + + iii. publicity and privacy rights pertaining to a person's image or likeness + depicted in a Work; + + iv. rights protecting against unfair competition in regards to a Work, + subject to the limitations in paragraph 4(a), below; + + v. rights protecting the extraction, dissemination, use and reuse of data in + a Work; + + vi. database rights (such as those arising under Directive 96/9/EC of the + European Parliament and of the Council of 11 March 1996 on the legal + protection of databases, and under any national implementation thereof, + including any amended or successor version of such directive); and + + vii. other similar, equivalent or corresponding rights throughout the world + based on applicable law or treaty, and any national implementations thereof. + +2. Waiver. To the greatest extent permitted by, but not in contravention of, +applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and +unconditionally waives, abandons, and surrenders all of Affirmer's Copyright +and Related Rights and associated claims and causes of action, whether now +known or unknown (including existing as well as future claims and causes of +action), in the Work (i) in all territories worldwide, (ii) for the maximum +duration provided by applicable law or treaty (including future time +extensions), (iii) in any current or future medium and for any number of +copies, and (iv) for any purpose whatsoever, including without limitation +commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes +the Waiver for the benefit of each member of the public at large and to the +detriment of Affirmer's heirs and successors, fully intending that such Waiver +shall not be subject to revocation, rescission, cancellation, termination, or +any other legal or equitable action to disrupt the quiet enjoyment of the Work +by the public as contemplated by Affirmer's express Statement of Purpose. + +3. Public License Fallback. Should any part of the Waiver for any reason be +judged legally invalid or ineffective under applicable law, then the Waiver +shall be preserved to the maximum extent permitted taking into account +Affirmer's express Statement of Purpose. In addition, to the extent the Waiver +is so judged Affirmer hereby grants to each affected person a royalty-free, +non transferable, non sublicensable, non exclusive, irrevocable and +unconditional license to exercise Affirmer's Copyright and Related Rights in +the Work (i) in all territories worldwide, (ii) for the maximum duration +provided by applicable law or treaty (including future time extensions), (iii) +in any current or future medium and for any number of copies, and (iv) for any +purpose whatsoever, including without limitation commercial, advertising or +promotional purposes (the "License"). The License shall be deemed effective as +of the date CC0 was applied by Affirmer to the Work. Should any part of the +License for any reason be judged legally invalid or ineffective under +applicable law, such partial invalidity or ineffectiveness shall not +invalidate the remainder of the License, and in such case Affirmer hereby +affirms that he or she will not (i) exercise any of his or her remaining +Copyright and Related Rights in the Work or (ii) assert any associated claims +and causes of action with respect to the Work, in either case contrary to +Affirmer's express Statement of Purpose. + +4. Limitations and Disclaimers. + + a. No trademark or patent rights held by Affirmer are waived, abandoned, + surrendered, licensed or otherwise affected by this document. + + b. Affirmer offers the Work as-is and makes no representations or warranties + of any kind concerning the Work, express, implied, statutory or otherwise, + including without limitation warranties of title, merchantability, fitness + for a particular purpose, non infringement, or the absence of latent or + other defects, accuracy, or the present or absence of errors, whether or not + discoverable, all to the greatest extent permissible under applicable law. + + c. Affirmer disclaims responsibility for clearing rights of other persons + that may apply to the Work or any use thereof, including without limitation + any person's Copyright and Related Rights in the Work. Further, Affirmer + disclaims responsibility for obtaining any necessary consents, permissions + or other rights required for any use of the Work. + + d. Affirmer understands and acknowledges that Creative Commons is not a + party to this document and has no duty or obligation with respect to this + CC0 or use of the Work. + +For more information, please see + + +----------- + +The following npm package may be included in this product: + + - language-subtag-registry@0.3.22 + +This package contains the following license and notice below: + +CC0-1.0 + +----------- + +The following npm package may be included in this product: + + - sprintf-js@1.0.3 + +This package contains the following license and notice below: + +Copyright (c) 2007-2014, Alexandru Marasteanu +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: +* Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +* Neither the name of this software nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----------- + +The following npm package may be included in this product: + + - nwsapi@2.2.10 + +This package contains the following license and notice below: + +Copyright (c) 2007-2024 Diego Perini (http://www.iport.it/) + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - @xtuc/ieee754@1.2.0 + +This package contains the following license and notice below: + +Copyright (c) 2008, Fair Oaks Labs, Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + * Neither the name of Fair Oaks Labs, Inc. nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +----------- + +The following npm package may be included in this product: + + - underscore@1.12.1 + +This package contains the following license and notice below: + +Copyright (c) 2009-2020 Jeremy Ashkenas, DocumentCloud and Investigative +Reporters & Editors + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - jsdom@16.7.0 + +This package contains the following license and notice below: + +Copyright (c) 2010 Elijah Insua + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - @sinonjs/fake-timers@8.1.0 + +This package contains the following license and notice below: + +Copyright (c) 2010-2014, Christian Johansen, christian@cjohansen.no. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----------- + +The following npm package may be included in this product: + + - async@3.2.5 + +This package contains the following license and notice below: + +Copyright (c) 2010-2018 Caolan McMahon + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - html-minifier-terser@6.1.0 + +This package contains the following license and notice below: + +Copyright (c) 2010-2019 Juriy "kangax" Zaytsev + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - iconv-lite@0.4.24 + - iconv-lite@0.6.3 + +These packages each contain the following license and notice below: + +Copyright (c) 2011 Alexander Shtuchkin + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - combined-stream@1.0.8 + - delayed-stream@1.0.0 + +These packages each contain the following license and notice below: + +Copyright (c) 2011 Debuggable Limited + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - ws@8.17.0 + +This package contains the following license and notice below: + +Copyright (c) 2011 Einar Otto Stangvik +Copyright (c) 2013 Arnout Kazemier and contributors +Copyright (c) 2016 Luigi Pinca and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - color-convert@1.9.3 + - color-convert@2.0.1 + +These packages each contain the following license and notice below: + +Copyright (c) 2011-2016 Heather Arthur + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - ipaddr.js@1.9.1 + - ipaddr.js@2.2.0 + +These packages each contain the following license and notice below: + +Copyright (C) 2011-2017 whitequark + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - retry@0.13.1 + +This package contains the following license and notice below: + +Copyright (c) 2011: +Tim Koschützki (tim@debuggable.com) +Felix Geisendörfer (felix@debuggable.com) + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - form-data@3.0.1 + - form-data@4.0.0 + +These packages each contain the following license and notice below: + +Copyright (c) 2012 Felix Geisendörfer (felix@debuggable.com) and contributors + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - duplexer@0.1.2 + +This package contains the following license and notice below: + +Copyright (c) 2012 Raynos. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - escodegen@1.14.3 + - escodegen@2.1.0 + +These packages each contain the following license and notice below: + +Copyright (C) 2012 Yusuke Suzuki (twitter: @Constellation) and other contributors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----------- + +The following npm package may be included in this product: + + - @babel/parser@7.24.5 + +This package contains the following license and notice below: + +Copyright (C) 2012-2014 by various contributors (see AUTHORS) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - acorn-jsx@5.3.2 + +This package contains the following license and notice below: + +Copyright (C) 2012-2017 by Ingvar Stepanyan + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - acorn-walk@7.2.0 + +This package contains the following license and notice below: + +Copyright (C) 2012-2018 by various contributors (see AUTHORS) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - deep-is@0.1.4 + +This package contains the following license and notice below: + +Copyright (c) 2012, 2013 Thorsten Lorenz +Copyright (c) 2012 James Halliday +Copyright (c) 2009 Thomas Robinson <280north.com> + +This software is released under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - performance-now@2.1.0 + +This package contains the following license and notice below: + +Copyright (c) 2013 Braveg1rl + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - json-buffer@3.0.1 + +This package contains the following license and notice below: + +Copyright (c) 2013 Dominic Tarr + +Permission is hereby granted, free of charge, +to any person obtaining a copy of this software and +associated documentation files (the "Software"), to +deal in the Software without restriction, including +without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom +the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - throat@6.0.2 + +This package contains the following license and notice below: + +Copyright (c) 2013 Forbes Lindesay + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - type-detect@4.0.8 + +This package contains the following license and notice below: + +Copyright (c) 2013 Jake Luer (http://alogicalparadox.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - ignore@5.3.1 + +This package contains the following license and notice below: + +Copyright (c) 2013 Kael Zhang , contributors +http://kael.me/ + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - function-bind@1.1.2 + +This package contains the following license and notice below: + +Copyright (c) 2013 Raynos. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - parse5@6.0.1 + +This package contains the following license and notice below: + +Copyright (c) 2013-2019 Ivan Nikulin (ifaaan@gmail.com, https://github.com/inikulin) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - esquery@1.5.0 + +This package contains the following license and notice below: + +Copyright (c) 2013, Joel Feenstra +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the ESQuery nor the names of its contributors may + be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL JOEL FEENSTRA BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----------- + +The following npm package may be included in this product: + + - acorn-globals@6.0.0 + +This package contains the following license and notice below: + +Copyright (c) 2014 Forbes Lindesay + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - promise@8.3.0 + +This package contains the following license and notice below: + +Copyright (c) 2014 Forbes Lindesay + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - node-int64@0.4.0 + +This package contains the following license and notice below: + +Copyright (c) 2014 Robert Kieffer + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - jsonpath@1.1.1 + +This package contains the following license and notice below: + +Copyright (c) 2014-2016 David Chester + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - any-promise@1.3.0 + +This package contains the following license and notice below: + +Copyright (C) 2014-2016 Kevin Beaty + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - babel-loader@8.3.0 + +This package contains the following license and notice below: + +Copyright (c) 2014-2019 Luís Couto + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - whatwg-fetch@3.6.20 + +This package contains the following license and notice below: + +Copyright (c) 2014-2023 GitHub, Inc. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - core-js-compat@3.37.1 + - core-js-pure@3.37.1 + - core-js@3.37.1 + +These packages each contain the following license and notice below: + +Copyright (c) 2014-2024 Denis Pushkarev + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - http-parser-js@0.5.8 + +This package contains the following license and notice below: + +Copyright (c) 2015 Tim Caswell (https://github.com/creationix) and other +contributors. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +Some files from the tests folder are from joyent/node and mscedex/io.js, a fork +of nodejs/io.js: + +- tests/iojs/test-http-parser-durability.js + + This file is from https://github.com/mscdex/io.js/blob/js-http-parser/test/pummel/test-http-parser-durability.js + with modifications by Jan Schär (jscissr). + + """ + Copyright io.js contributors. All rights reserved. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to + deal in the Software without restriction, including without limitation the + rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + IN THE SOFTWARE. + """ + +- tests/fixtures/* + tests/parallel/* + tests/testpy/* + tests/common.js + tests/test.py + tests/utils.py + + These files are from https://github.com/nodejs/node with changes by + Jan Schär (jscissr). + + Node.js is licensed for use as follows: + + """ + Copyright Node.js contributors. All rights reserved. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to + deal in the Software without restriction, including without limitation the + rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + IN THE SOFTWARE. + """ + + This license applies to parts of Node.js originating from the + https://github.com/joyent/node repository: + + """ + Copyright Joyent, Inc. and other Node contributors. All rights reserved. + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to + deal in the Software without restriction, including without limitation the + rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + IN THE SOFTWARE. + """ + +----------- + +The following npm package may be included in this product: + + - csso@4.2.0 + +This package contains the following license and notice below: + +Copyright (C) 2015-2019 by Roman Dvornov +Copyright (C) 2011-2015 by Sergey Kryzhanovsky + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - fastq@1.17.1 + +This package contains the following license and notice below: + +Copyright (c) 2015-2020, Matteo Collina + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - @isaacs/cliui@8.0.2 + - cliui@6.0.0 + - cliui@7.0.4 + +These packages each contain the following license and notice below: + +Copyright (c) 2015, Contributors + +Permission to use, copy, modify, and/or distribute this software +for any purpose with or without fee is hereby granted, provided +that the above copyright notice and this permission notice +appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE +LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES +OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - y18n@4.0.3 + - y18n@5.0.8 + +These packages each contain the following license and notice below: + +Copyright (c) 2015, Contributors + +Permission to use, copy, modify, and/or distribute this software for any purpose +with or without fee is hereby granted, provided that the above copyright notice +and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF +THIS SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - eslint-plugin-flowtype@8.0.3 + +This package contains the following license and notice below: + +Copyright (c) 2015, Gajus Kuizinas (http://gajus.com/) +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the Gajus Kuizinas (http://gajus.com/) nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL ANUARY BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----------- + +The following npm package may be included in this product: + + - write-file-atomic@3.0.3 + +This package contains the following license and notice below: + +Copyright (c) 2015, Rebecca Turner + +Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - tough-cookie@4.1.4 + +This package contains the following license and notice below: + +Copyright (c) 2015, Salesforce.com, Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +3. Neither the name of Salesforce.com nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----------- + +The following npm package may be included in this product: + + - dotenv@10.0.0 + +This package contains the following license and notice below: + +Copyright (c) 2015, Scott Motte +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----------- + +The following npm packages may be included in this product: + + - setprototypeof@1.1.0 + - setprototypeof@1.2.0 + +These packages each contain the following license and notice below: + +Copyright (c) 2015, Wes Todd + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - stringify-object@3.3.0 + +This package contains the following license and notice below: + +Copyright (c) 2015, Yeoman team +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----------- + +The following npm packages may be included in this product: + + - css-tree@1.0.0-alpha.37 + - css-tree@1.1.3 + +These packages each contain the following license and notice below: + +Copyright (C) 2016-2019 by Roman Dvornov + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - require-main-filename@2.0.0 + - set-blocking@2.0.0 + - test-exclude@6.0.0 + - yargs-parser@18.1.3 + - yargs-parser@20.2.9 + +These packages each contain the following license and notice below: + +Copyright (c) 2016, Contributors + +Permission to use, copy, modify, and/or distribute this software +for any purpose with or without fee is hereby granted, provided +that the above copyright notice and this permission notice +appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE +LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES +OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - which-module@2.0.1 + +This package contains the following license and notice below: + +Copyright (c) 2016, Contributors + +Permission to use, copy, modify, and/or distribute this software for any purpose +with or without fee is hereby granted, provided that the above copyright notice +and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF +THIS SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - babel-plugin-istanbul@6.1.1 + +This package contains the following license and notice below: + +Copyright (c) 2016, Istanbul Code Coverage +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of babel-plugin-istanbul nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----------- + +The following npm package may be included in this product: + + - dotenv-expand@5.1.0 + +This package contains the following license and notice below: + +Copyright (c) 2016, Scott Motte +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----------- + +The following npm packages may be included in this product: + + - error-stack-parser@2.1.4 + - stackframe@1.3.4 + +These packages each contain the following license and notice below: + +Copyright (c) 2017 Eric Wendelin and other contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - clean-css@5.3.3 + +This package contains the following license and notice below: + +Copyright (C) 2017 JakubPawlowicz.com + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - csstype@3.1.3 + +This package contains the following license and notice below: + +Copyright (c) 2017-2018 Fredrik Nicol + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - html-escaper@2.0.2 + +This package contains the following license and notice below: + +Copyright (C) 2017-present by Andrea Giammarchi - @WebReflection + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - @bcoe/v8-coverage@0.2.3 + - v8-to-istanbul@8.1.1 + +These packages each contain the following license and notice below: + +Copyright (c) 2017, Contributors + +Permission to use, copy, modify, and/or distribute this software +for any purpose with or without fee is hereby granted, provided +that the above copyright notice and this permission notice +appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE +LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES +OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - @rehooks/local-storage@2.4.5 + +This package contains the following license and notice below: + +Copyright (c) 2018-present LocalStorage + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - get-own-enumerable-property-symbols@3.0.2 + +This package contains the following license and notice below: + +Copyright (c) 2019, Shahar Or + +Permission to use, copy, modify, and/or distribute this software for any purpose +with or without fee is hereby granted, provided that the above copyright notice +and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF +THIS SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - html-entities@2.5.2 + +This package contains the following license and notice below: + +Copyright (c) 2021 Dulin Marat + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - filesize@8.0.7 + +This package contains the following license and notice below: + +Copyright (c) 2022, Jason Mulligan +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of filesize nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----------- + +The following npm packages may be included in this product: + + - cssnano-preset-default@5.2.14 + - cssnano-utils@3.1.0 + - cssnano@5.1.15 + - postcss-colormin@5.3.1 + - postcss-convert-values@5.1.3 + - postcss-discard-comments@5.1.2 + - postcss-discard-duplicates@5.1.0 + - postcss-discard-empty@5.1.1 + - postcss-merge-longhand@5.1.7 + - postcss-merge-rules@5.1.4 + - postcss-minify-gradients@5.1.1 + - postcss-minify-selectors@5.2.1 + - postcss-normalize-display-values@5.1.0 + - postcss-normalize-positions@5.1.1 + - postcss-normalize-repeat-style@5.1.1 + - postcss-normalize-string@5.1.0 + - postcss-normalize-timing-functions@5.1.0 + - postcss-normalize-unicode@5.1.1 + - postcss-normalize-url@5.1.0 + - postcss-normalize-whitespace@5.1.1 + - postcss-ordered-values@5.1.3 + - postcss-reduce-initial@5.1.2 + - postcss-reduce-transforms@5.1.0 + - postcss-selector-parser@6.0.16 + - postcss-svgo@5.1.0 + - postcss-unique-selectors@5.1.1 + - stylehacks@5.1.1 + +These packages each contain the following license and notice below: + +Copyright (c) Ben Briggs (http://beneb.info) + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - postcss-minify-font-values@5.1.0 + - postcss-value-parser@4.2.0 + +These packages each contain the following license and notice below: + +Copyright (c) Bogdan Chadkin + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - cssstyle@2.3.0 + +This package contains the following license and notice below: + +Copyright (c) Chad Walker + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - css-select@2.1.0 + - css-select@4.3.0 + - css-what@3.4.2 + - css-what@6.1.0 + - domelementtype@1.3.1 + - domelementtype@2.3.0 + - domhandler@4.3.1 + - domutils@1.7.0 + - domutils@2.8.0 + - entities@2.2.0 + - nth-check@1.0.2 + - nth-check@2.1.1 + +These packages each contain the following license and notice below: + +Copyright (c) Felix Böhm +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +THIS IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----------- + +The following npm packages may be included in this product: + + - levn@0.3.0 + - levn@0.4.1 + - optionator@0.8.3 + - optionator@0.9.4 + - prelude-ls@1.2.1 + - type-check@0.3.2 + - type-check@0.4.0 + +These packages each contain the following license and notice below: + +Copyright (c) George Zahariev + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - moment@2.30.1 + +This package contains the following license and notice below: + +Copyright (c) JS Foundation and other contributors + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - regjsparser@0.9.1 + +This package contains the following license and notice below: + +Copyright (c) Julian Viereck and Contributors, All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----------- + +The following npm packages may be included in this product: + + - tslib@1.14.1 + - tslib@2.4.0 + - tslib@2.6.2 + +These packages each contain the following license and notice below: + +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - cssom@0.3.8 + - cssom@0.4.4 + +These packages each contain the following license and notice below: + +Copyright (c) Nikita Vasilyev + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - default-gateway@6.0.3 + +This package contains the following license and notice below: + +Copyright (c) silverwind +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----------- + +The following npm package may be included in this product: + + - check-types@11.2.3 + +This package contains the following license and notice below: + +Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Phil Booth + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - tryer@1.0.1 + +This package contains the following license and notice below: + +Copyright © 2013, 2017 Phil Booth + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - bfj@7.1.0 + +This package contains the following license and notice below: + +Copyright © 2015, 2016 Phil Booth + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - whatwg-encoding@1.0.5 + +This package contains the following license and notice below: + +Copyright © 2016–2018 Domenic Denicola + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - html-encoding-sniffer@2.0.1 + +This package contains the following license and notice below: + +Copyright © 2016–2020 Domenic Denicola + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - find-root@1.1.0 + +This package contains the following license and notice below: + +Copyright © 2017 jsdnxx + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - hoopy@0.1.4 + +This package contains the following license and notice below: + +Copyright © 2017 Phil Booth + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - whatwg-mimetype@2.3.0 + +This package contains the following license and notice below: + +Copyright © 2017–2018 Domenic Denicola + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - data-urls@2.0.0 + +This package contains the following license and notice below: + +Copyright © 2017–2020 Domenic Denicola + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - abab@2.0.6 + +This package contains the following license and notice below: + +Copyright © 2019 W3C and Jeff Carpenter \ + +Both the original source code and new contributions in this repository are released under the [3-Clause BSD license](https://opensource.org/licenses/BSD-3-Clause). + +# The 3-Clause BSD License + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. +3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----------- + +The following npm package may be included in this product: + + - colorette@2.0.20 + +This package contains the following license and notice below: + +Copyright © Jorge Bucaran <> + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - q@1.5.1 + +This package contains the following license and notice below: + +Copyright 2009–2017 Kristopher Michael Kowal. All rights reserved. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to +deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - mkdirp@0.5.6 + +This package contains the following license and notice below: + +Copyright 2010 James Halliday (mail@substack.net) + +This project is free software released under the MIT/X11 license: + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - websocket-driver@0.7.4 + +This package contains the following license and notice below: + +Copyright 2010-2020 James Coglan + +Licensed under the Apache License, Version 2.0 (the "License"); you may not use +this file except in compliance with the License. You may obtain a copy of the +License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software distributed +under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +CONDITIONS OF ANY KIND, either express or implied. See the License for the +specific language governing permissions and limitations under the License. + +----------- + +The following npm package may be included in this product: + + - faye-websocket@0.11.4 + +This package contains the following license and notice below: + +Copyright 2010-2021 James Coglan + +Licensed under the Apache License, Version 2.0 (the "License"); you may not use +this file except in compliance with the License. You may obtain a copy of the +License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software distributed +under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +CONDITIONS OF ANY KIND, either express or implied. See the License for the +specific language governing permissions and limitations under the License. + +----------- + +The following npm package may be included in this product: + + - htmlparser2@6.1.0 + +This package contains the following license and notice below: + +Copyright 2010, 2011, Chris Winberry . All rights reserved. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to +deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - uri-js@4.4.1 + +This package contains the following license and notice below: + +Copyright 2011 Gary Court. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY GARY COURT "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +The views and conclusions contained in the software and documentation are those of the authors and should not be interpreted as representing official policies, either expressed or implied, of Gary Court. + +----------- + +The following npm package may be included in this product: + + - @webassemblyjs/leb128@1.11.6 + +This package contains the following license and notice below: + +Copyright 2012 The Obvious Corporation. +http://obvious.com/ + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + +------------------------------------------------------------------------- + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +----------- + +The following npm packages may be included in this product: + + - istanbul-lib-coverage@3.2.2 + - istanbul-lib-instrument@5.2.1 + - istanbul-lib-report@3.0.1 + - istanbul-reports@3.1.7 + +These packages each contain the following license and notice below: + +Copyright 2012-2015 Yahoo! Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the Yahoo! Inc. nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----------- + +The following npm package may be included in this product: + + - terser@5.31.0 + +This package contains the following license and notice below: + +Copyright 2012-2018 (c) Mihai Bazon + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + * Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials + provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, +OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR +TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +----------- + +The following npm package may be included in this product: + + - raf@3.4.1 + +This package contains the following license and notice below: + +Copyright 2013 Chris Dickinson + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - walker@1.0.8 + +This package contains the following license and notice below: + +Copyright 2013 Naitik Shah + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +----------- + +The following npm packages may be included in this product: + + - convert-source-map@1.9.0 + - convert-source-map@2.0.0 + +These packages each contain the following license and notice below: + +Copyright 2013 Thorsten Lorenz. +All rights reserved. + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - browser-process-hrtime@1.0.0 + +This package contains the following license and notice below: + +Copyright 2014 kumavis + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----------- + +The following npm packages may be included in this product: + + - serialize-javascript@4.0.0 + - serialize-javascript@6.0.2 + +These packages each contain the following license and notice below: + +Copyright 2014 Yahoo! Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of the Yahoo! Inc. nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----------- + +The following npm package may be included in this product: + + - websocket-extensions@0.1.4 + +This package contains the following license and notice below: + +Copyright 2014-2020 James Coglan + +Licensed under the Apache License, Version 2.0 (the "License"); you may not use +this file except in compliance with the License. You may obtain a copy of the +License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software distributed +under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +CONDITIONS OF ANY KIND, either express or implied. See the License for the +specific language governing permissions and limitations under the License. + +----------- + +The following npm package may be included in this product: + + - follow-redirects@1.15.6 + +This package contains the following license and notice below: + +Copyright 2014–present Olivier Lalonde , James Talmage , Ruben Verborgh + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - minimalistic-assert@1.0.1 + +This package contains the following license and notice below: + +Copyright 2015 Calvin Metcalf + +Permission to use, copy, modify, and/or distribute this software for any purpose +with or without fee is hereby granted, provided that the above copyright notice +and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - postcss-modules-extract-imports@3.1.0 + +This package contains the following license and notice below: + +Copyright 2015 Glen Maddern + +Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - istanbul-lib-source-maps@4.0.1 + +This package contains the following license and notice below: + +Copyright 2015 Yahoo! Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the Yahoo! Inc. nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL YAHOO! INC. BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----------- + +The following npm package may be included in this product: + + - launchdarkly-js-client-sdk@3.3.0 + +This package contains the following license and notice below: + +Copyright 2016 Catamorphic, Co. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +----------- + +The following npm package may be included in this product: + + - source-list-map@2.0.1 + +This package contains the following license and notice below: + +Copyright 2017 JS Foundation + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - json-parse-even-better-errors@2.3.1 + +This package contains the following license and notice below: + +Copyright 2017 Kat Marchán +Copyright npm, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +--- + +This library is a fork of 'better-json-errors' by Kat Marchán, extended and +distributed under the terms of the MIT license above. + +----------- + +The following npm packages may be included in this product: + + - @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/babel-preset@5.5.0 + - @svgr/core@5.5.0 + - @svgr/hast-util-to-babel-ast@5.5.0 + - @svgr/plugin-jsx@5.5.0 + - @svgr/plugin-svgo@5.5.0 + - @svgr/webpack@5.5.0 + +These packages each contain the following license and notice below: + +Copyright 2017 Smooth Code + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - yaml@1.10.2 + +This package contains the following license and notice below: + +Copyright 2018 Eemeli Aro + +Permission to use, copy, modify, and/or distribute this software for any purpose +with or without fee is hereby granted, provided that the above copyright notice +and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF +THIS SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - workbox-background-sync@6.6.0 + - workbox-broadcast-update@6.6.0 + - workbox-build@6.6.0 + - workbox-cacheable-response@6.6.0 + - workbox-core@6.6.0 + - workbox-expiration@6.6.0 + - workbox-google-analytics@6.6.0 + - workbox-navigation-preload@6.6.0 + - workbox-precaching@6.6.0 + - workbox-range-requests@6.6.0 + - workbox-recipes@6.6.0 + - workbox-routing@6.6.0 + - workbox-strategies@6.6.0 + - workbox-streams@6.6.0 + - workbox-sw@6.6.0 + - workbox-webpack-plugin@6.6.0 + - workbox-window@6.6.0 + +These packages each contain the following license and notice below: + +Copyright 2018 Google 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 +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - react-icons@5.2.1 + +This package contains the following license and notice below: + +Copyright 2018 kamijin_fanta + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +--- +Icons are taken from the other projects +so please check each project licences accordingly. + +Circum Icons - https://circumicons.com/ +License: MPL-2.0 license https://github.com/Klarr-Agency/Circum-Icons/blob/main/LICENSE + +Font Awesome 5 - https://fontawesome.com/ +License: CC BY 4.0 License https://creativecommons.org/licenses/by/4.0/ + +Font Awesome 6 - https://fontawesome.com/ +License: CC BY 4.0 License https://creativecommons.org/licenses/by/4.0/ + +Ionicons 4 - https://ionicons.com/ +License: MIT https://github.com/ionic-team/ionicons/blob/master/LICENSE + +Ionicons 5 - https://ionicons.com/ +License: MIT https://github.com/ionic-team/ionicons/blob/master/LICENSE + +Material Design icons - http://google.github.io/material-design-icons/ +License: Apache License Version 2.0 https://github.com/google/material-design-icons/blob/master/LICENSE + +Typicons - http://s-ings.com/typicons/ +License: CC BY-SA 3.0 https://creativecommons.org/licenses/by-sa/3.0/ + +Github Octicons icons - https://octicons.github.com/ +License: MIT https://github.com/primer/octicons/blob/master/LICENSE + +Feather - https://feathericons.com/ +License: MIT https://github.com/feathericons/feather/blob/master/LICENSE + +Lucide - https://lucide.dev/ +License: ISC https://github.com/lucide-icons/lucide/blob/main/LICENSE + +Game Icons - https://game-icons.net/ +License: CC BY 3.0 https://creativecommons.org/licenses/by/3.0/ + +Weather Icons - https://erikflowers.github.io/weather-icons/ +License: SIL OFL 1.1 http://scripts.sil.org/OFL + +Devicons - https://vorillaz.github.io/devicons/ +License: MIT https://opensource.org/licenses/MIT + +Ant Design Icons - https://github.com/ant-design/ant-design-icons +License: MIT https://opensource.org/licenses/MIT + +Bootstrap Icons - https://github.com/twbs/icons +License: MIT https://opensource.org/licenses/MIT + +Remix Icon - https://github.com/Remix-Design/RemixIcon +License: Apache License Version 2.0 http://www.apache.org/licenses/ + +Flat Color Icons - https://github.com/icons8/flat-color-icons +License: MIT https://opensource.org/licenses/MIT + +Grommet-Icons - https://github.com/grommet/grommet-icons +License: Apache License Version 2.0 http://www.apache.org/licenses/ + +Heroicons - https://github.com/tailwindlabs/heroicons +License: MIT https://opensource.org/licenses/MIT + +Heroicons 2 - https://github.com/tailwindlabs/heroicons +License: MIT https://opensource.org/licenses/MIT + +Simple Icons - https://simpleicons.org/ +License: CC0 1.0 Universal https://creativecommons.org/publicdomain/zero/1.0/ + +Simple Line Icons - https://thesabbir.github.io/simple-line-icons/ +License: MIT https://opensource.org/licenses/MIT + +IcoMoon Free - https://github.com/Keyamoon/IcoMoon-Free +License: CC BY 4.0 License https://github.com/Keyamoon/IcoMoon-Free/blob/master/License.txt + +BoxIcons - https://github.com/atisawd/boxicons +License: MIT https://github.com/atisawd/boxicons/blob/master/LICENSE + +css.gg - https://github.com/astrit/css.gg +License: MIT https://opensource.org/licenses/MIT + +VS Code Icons - https://github.com/microsoft/vscode-codicons +License: CC BY 4.0 https://creativecommons.org/licenses/by/4.0/ + +Tabler Icons - https://github.com/tabler/tabler-icons +License: MIT https://opensource.org/licenses/MIT + +Themify Icons - https://github.com/lykmapipo/themify-icons +License: MIT https://github.com/thecreation/standard-icons/blob/master/modules/themify-icons/LICENSE + +Radix Icons - https://icons.radix-ui.com +License: MIT https://github.com/radix-ui/icons/blob/master/LICENSE + +Phosphor Icons - https://github.com/phosphor-icons/core +License: MIT https://github.com/phosphor-icons/core/blob/main/LICENSE + +Icons8 Line Awesome - https://icons8.com/line-awesome +License: MIT https://github.com/icons8/line-awesome/blob/master/LICENSE.md + +----------- + +The following npm package may be included in this product: + + - electron-to-chromium@1.4.768 + +This package contains the following license and notice below: + +Copyright 2018 Kilian Valkhof + +Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - gensync@1.0.0-beta.2 + +This package contains the following license and notice below: + +Copyright 2018 Logan Smyth + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - magic-string@0.25.9 + +This package contains the following license and notice below: + +Copyright 2018 Rich Harris + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - launchdarkly-js-sdk-common@5.2.0 + - launchdarkly-react-client-sdk@3.2.0 + +These packages each contain the following license and notice below: + +Copyright 2019 Catamorphic, Co. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +----------- + +The following npm packages may be included in this product: + + - @jridgewell/resolve-uri@3.1.2 + - @jridgewell/source-map@0.3.6 + +These packages each contain the following license and notice below: + +Copyright 2019 Justin Ridgewell + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - graphemer@1.4.0 + +This package contains the following license and notice below: + +Copyright 2020 Filament (Anomalous Technologies Limited) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - @jridgewell/gen-mapping@0.3.5 + - @jridgewell/set-array@1.2.1 + +These packages each contain the following license and notice below: + +Copyright 2022 Justin Ridgewell + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - @jridgewell/trace-mapping@0.3.25 + +This package contains the following license and notice below: + +Copyright 2022 Justin Ridgewell + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - @nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1 + +This package contains the following license and notice below: + +Copyright 2022 Nicolò Ribaudo + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - yaml@2.4.2 + +This package contains the following license and notice below: + +Copyright Eemeli Aro + +Permission to use, copy, modify, and/or distribute this software for any purpose +with or without fee is hereby granted, provided that the above copyright notice +and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF +THIS SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - obuf@1.1.2 + +This package contains the following license and notice below: + +Copyright Fedor Indutny, 2015. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - lodash.camelcase@4.3.0 + - lodash.debounce@4.0.8 + - lodash.memoize@4.1.2 + - lodash.sortby@4.7.0 + - lodash.uniq@4.5.0 + +These packages each contain the following license and notice below: + +Copyright jQuery Foundation and other contributors + +Based on Underscore.js, copyright Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/lodash/lodash + +The following license applies to all parts of this software except as +documented below: + +==== + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +==== + +Copyright and related rights for sample code are waived via CC0. Sample +code is defined as all source code displayed within the prose of the +documentation. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +Files located in the node_modules and vendor directories are externally +maintained libraries used by this software which have their own +licenses; we recommend you read them, as their terms may differ from the +terms above. + +----------- + +The following npm packages may be included in this product: + + - css-minimizer-webpack-plugin@3.4.1 + - postcss-loader@6.2.1 + - sass-loader@12.6.0 + +These packages each contain the following license and notice below: + +Copyright JS Foundation and other contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - css-loader@6.11.0 + - enhanced-resolve@5.16.1 + - eslint-webpack-plugin@3.2.0 + - file-loader@6.2.0 + - html-webpack-plugin@5.6.0 + - loader-utils@2.0.4 + - loader-utils@3.2.1 + - mini-css-extract-plugin@2.9.0 + - schema-utils@2.7.0 + - schema-utils@2.7.1 + - schema-utils@3.3.0 + - schema-utils@4.2.0 + - source-map-loader@3.0.2 + - style-loader@3.3.4 + - terser-webpack-plugin@5.3.10 + - watchpack@2.4.1 + - webpack-dev-middleware@5.3.4 + - webpack-dev-server@4.15.2 + - webpack@5.91.0 + +These packages each contain the following license and notice below: + +Copyright JS Foundation and other contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - eslint-scope@5.1.1 + - eslint-scope@7.2.2 + +These packages each contain the following license and notice below: + +Copyright JS Foundation and other contributors, https://js.foundation +Copyright (C) 2012-2013 Yusuke Suzuki (twitter: @Constellation) and other contributors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----------- + +The following npm package may be included in this product: + + - esprima@4.0.1 + +This package contains the following license and notice below: + +Copyright JS Foundation and other contributors, https://js.foundation/ + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----------- + +The following npm package may be included in this product: + + - xmlchars@2.2.0 + +This package contains the following license and notice below: + +Copyright Louis-Dominique Dubeau and contributors to xmlchars + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - cssesc@3.0.0 + - emoji-regex@8.0.0 + - emoji-regex@9.2.2 + - he@1.2.0 + - is-potential-custom-element-name@1.0.1 + - jsesc@2.5.2 + - punycode@2.3.1 + - regenerate-unicode-properties@10.1.1 + - regenerate@1.4.2 + - regexpu-core@5.3.2 + - unicode-canonical-property-names-ecmascript@2.0.0 + - unicode-match-property-ecmascript@2.0.0 + - unicode-match-property-value-ecmascript@2.1.0 + - unicode-property-aliases-ecmascript@2.1.0 + +These packages each contain the following license and notice below: + +Copyright Mathias Bynens + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - core-util-is@1.0.3 + +This package contains the following license and notice below: + +Copyright Node.js contributors. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to +deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - lodash.merge@4.6.2 + - lodash.mergewith@4.6.2 + - lodash@4.17.21 + +These packages each contain the following license and notice below: + +Copyright OpenJS Foundation and other contributors + +Based on Underscore.js, copyright Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/lodash/lodash + +The following license applies to all parts of this software except as +documented below: + +==== + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +==== + +Copyright and related rights for sample code are waived via CC0. Sample +code is defined as all source code displayed within the prose of the +documentation. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +Files located in the node_modules and vendor directories are externally +maintained libraries used by this software which have their own +licenses; we recommend you read them, as their terms may differ from the +terms above. + +----------- + +The following npm packages may be included in this product: + + - @eslint/eslintrc@2.1.4 + - @eslint/js@8.57.0 + - eslint@8.57.0 + +These packages each contain the following license and notice below: + +Copyright OpenJS Foundation and other contributors, + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - upath@1.2.0 + +This package contains the following license and notice below: + +Copyright(c) 2014-2019 Angelos Pikoulas (agelos.pikoulas@gmail.com) + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - sass@1.77.1 + +This package contains the following license and notice below: + +Dart Sass license: + +Copyright (c) 2016, Google Inc. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +-------------------------------------------------------------------------------- + +Dart SDK license: + +Copyright 2012, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +_fe_analyzer_shared license: + +Copyright 2019, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +analyzer, protobuf and protoc_plugin license: + +Copyright 2013, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +archive license: + +The MIT License + +Copyright (c) 2013-2021 Brendan Duncan. +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +-------------------------------------------------------------------------------- + +args, csslib and logging license: + +Copyright 2013, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +async, cli_util, collection, mime, source_map_stack_trace, stream_channel and +typed_data license: + +Copyright 2015, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +boolean_selector, meta and shelf_packages_handler license: + +Copyright 2016, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +charcode license: + +Copyright 2014, the Dart project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +checked_yaml license: + +Copyright 2019, the Dart project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +cli_pkg license: + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +-------------------------------------------------------------------------------- + +cli_repl license: + +Copyright (c) 2018, Jennifer Thakar. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the project nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +convert, crypto, shelf_static and vm_service license: + +Copyright 2015, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +coverage, dart_style, dartdoc, glob, http, http_parser, matcher, path, pool, +pub_semver, source_span, string_scanner, test and watcher license: + +Copyright 2014, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +dart_mappable and type_plus license: + +MIT License + +Copyright (c) 2021 Kilian Schulte + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +-------------------------------------------------------------------------------- + +ffi and package_config license: + +Copyright 2019, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +file license: + +Copyright 2017, the Dart project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-------------------------------------------------------------------------------- + +fixnum, http_multi_server, oauth2, shelf, shelf_web_socket, source_maps and +stack_trace license: + +Copyright 2014, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +frontend_server_client license: + +Copyright 2020, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +grinder and webkit_inspection_protocol license: + +Copyright 2013, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +html license: + +Copyright (c) 2006-2012 The Authors + +Contributors: +James Graham - jg307@cam.ac.uk +Anne van Kesteren - annevankesteren@gmail.com +Lachlan Hunt - lachlan.hunt@lachy.id.au +Matt McDonald - kanashii@kanashii.ca +Sam Ruby - rubys@intertwingly.net +Ian Hickson (Google) - ian@hixie.ch +Thomas Broyer - t.broyer@ltgt.net +Jacques Distler - distler@golem.ph.utexas.edu +Henri Sivonen - hsivonen@iki.fi +Adam Barth - abarth@webkit.org +Eric Seidel - eric@webkit.org +The Mozilla Foundation (contributions from Henri Sivonen since 2008) +David Flanagan (Mozilla) - dflanagan@mozilla.com +Google LLC (contributed the Dart port) - misc@dartlang.org + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +-------------------------------------------------------------------------------- + +io, stream_transform and term_glyph license: + +Copyright 2017, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +js license: + +Copyright 2012, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +json_annotation license: + +Copyright 2017, the Dart project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +lints license: + +Copyright 2021, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +markdown license: + +Copyright 2012, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +native_stack_traces license: + +Copyright 2020, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +native_synchronization license: + +Copyright 2023, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +node_interop license: + +Copyright (c) 2017, Anatoly Pulyaevskiy. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +node_preamble license: + +The MIT License (MIT) + +Copyright (c) 2015 Michael Bullington + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +=== + +Copyright 2012, the Dart project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +petitparser and xml license: + +The MIT License + +Copyright (c) 2006-2023 Lukas Renggli. +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +-------------------------------------------------------------------------------- + +pub_api_client license: + +MIT License + +Copyright (c) 2020 Leo Farias + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +-------------------------------------------------------------------------------- + +pubspec license: + +Copyright (c) 2015, Anders Holmgren. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +pubspec_parse license: + +Copyright 2018, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +quiver and retry license: + + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +-------------------------------------------------------------------------------- + +test_api and test_core license: + +Copyright 2018, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +test_descriptor and web_socket_channel license: + +Copyright 2016, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +test_process license: + +Copyright 2017, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +uri license: + +Copyright 2013, the Dart project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +web license: + +Copyright 2023, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +web_socket license: + +Copyright 2024, the Dart project authors. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +-------------------------------------------------------------------------------- + +yaml license: + +Copyright (c) 2014, the Dart project authors. +Copyright (c) 2006, Kirill Simonov. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - json-schema@0.4.0 + +This package contains the following license and notice below: + +Dojo is available under *either* the terms of the BSD 3-Clause "New" License *or* the +Academic Free License version 2.1. As a recipient of Dojo, you may choose which +license to receive this code under (except as noted in per-module LICENSE +files). Some modules may not be the copyright of the Dojo Foundation. These +modules contain explicit declarations of copyright in both the LICENSE files in +the directories in which they reside and in the code itself. No external +contributions are allowed under licenses which are fundamentally incompatible +with the AFL-2.1 OR and BSD-3-Clause licenses that Dojo is distributed under. + +The text of the AFL-2.1 and BSD-3-Clause licenses is reproduced below. + +------------------------------------------------------------------------------- +BSD 3-Clause "New" License: +********************** + +Copyright (c) 2005-2015, The Dojo Foundation +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of the Dojo Foundation nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +------------------------------------------------------------------------------- +The Academic Free License, v. 2.1: +********************************** + +This Academic Free License (the "License") applies to any original work of +authorship (the "Original Work") whose owner (the "Licensor") has placed the +following notice immediately following the copyright notice for the Original +Work: + +Licensed under the Academic Free License version 2.1 + +1) Grant of Copyright License. Licensor hereby grants You a world-wide, +royalty-free, non-exclusive, perpetual, sublicenseable license to do the +following: + +a) to reproduce the Original Work in copies; + +b) to prepare derivative works ("Derivative Works") based upon the Original +Work; + +c) to distribute copies of the Original Work and Derivative Works to the +public; + +d) to perform the Original Work publicly; and + +e) to display the Original Work publicly. + +2) Grant of Patent License. Licensor hereby grants You a world-wide, +royalty-free, non-exclusive, perpetual, sublicenseable license, under patent +claims owned or controlled by the Licensor that are embodied in the Original +Work as furnished by the Licensor, to make, use, sell and offer for sale the +Original Work and Derivative Works. + +3) Grant of Source Code License. The term "Source Code" means the preferred +form of the Original Work for making modifications to it and all available +documentation describing how to modify the Original Work. Licensor hereby +agrees to provide a machine-readable copy of the Source Code of the Original +Work along with each copy of the Original Work that Licensor distributes. +Licensor reserves the right to satisfy this obligation by placing a +machine-readable copy of the Source Code in an information repository +reasonably calculated to permit inexpensive and convenient access by You for as +long as Licensor continues to distribute the Original Work, and by publishing +the address of that information repository in a notice immediately following +the copyright notice that applies to the Original Work. + +4) Exclusions From License Grant. Neither the names of Licensor, nor the names +of any contributors to the Original Work, nor any of their trademarks or +service marks, may be used to endorse or promote products derived from this +Original Work without express prior written permission of the Licensor. Nothing +in this License shall be deemed to grant any rights to trademarks, copyrights, +patents, trade secrets or any other intellectual property of Licensor except as +expressly stated herein. No patent license is granted to make, use, sell or +offer to sell embodiments of any patent claims other than the licensed claims +defined in Section 2. No right is granted to the trademarks of Licensor even if +such marks are included in the Original Work. Nothing in this License shall be +interpreted to prohibit Licensor from licensing under different terms from this +License any Original Work that Licensor otherwise would have a right to +license. + +5) This section intentionally omitted. + +6) Attribution Rights. You must retain, in the Source Code of any Derivative +Works that You create, all copyright, patent or trademark notices from the +Source Code of the Original Work, as well as any notices of licensing and any +descriptive text identified therein as an "Attribution Notice." You must cause +the Source Code for any Derivative Works that You create to carry a prominent +Attribution Notice reasonably calculated to inform recipients that You have +modified the Original Work. + +7) Warranty of Provenance and Disclaimer of Warranty. Licensor warrants that +the copyright in and to the Original Work and the patent rights granted herein +by Licensor are owned by the Licensor or are sublicensed to You under the terms +of this License with the permission of the contributor(s) of those copyrights +and patent rights. Except as expressly stated in the immediately proceeding +sentence, the Original Work is provided under this License on an "AS IS" BASIS +and WITHOUT WARRANTY, either express or implied, including, without limitation, +the warranties of NON-INFRINGEMENT, MERCHANTABILITY or FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY OF THE ORIGINAL WORK IS WITH YOU. +This DISCLAIMER OF WARRANTY constitutes an essential part of this License. No +license to Original Work is granted hereunder except under this disclaimer. + +8) Limitation of Liability. Under no circumstances and under no legal theory, +whether in tort (including negligence), contract, or otherwise, shall the +Licensor be liable to any person for any direct, indirect, special, incidental, +or consequential damages of any character arising as a result of this License +or the use of the Original Work including, without limitation, damages for loss +of goodwill, work stoppage, computer failure or malfunction, or any and all +other commercial damages or losses. This limitation of liability shall not +apply to liability for death or personal injury resulting from Licensor's +negligence to the extent applicable law prohibits such limitation. Some +jurisdictions do not allow the exclusion or limitation of incidental or +consequential damages, so this exclusion and limitation may not apply to You. + +9) Acceptance and Termination. If You distribute copies of the Original Work or +a Derivative Work, You must make a reasonable effort under the circumstances to +obtain the express assent of recipients to the terms of this License. Nothing +else but this License (or another written agreement between Licensor and You) +grants You permission to create Derivative Works based upon the Original Work +or to exercise any of the rights granted in Section 1 herein, and any attempt +to do so except under the terms of this License (or another written agreement +between Licensor and You) is expressly prohibited by U.S. copyright law, the +equivalent laws of other countries, and by international treaty. Therefore, by +exercising any of the rights granted to You in Section 1 herein, You indicate +Your acceptance of this License and all of its terms and conditions. + +10) Termination for Patent Action. This License shall terminate automatically +and You may no longer exercise any of the rights granted to You by this License +as of the date You commence an action, including a cross-claim or counterclaim, +against Licensor or any licensee alleging that the Original Work infringes a +patent. This termination provision shall not apply for an action alleging +patent infringement by combinations of the Original Work with other software or +hardware. + +11) Jurisdiction, Venue and Governing Law. Any action or suit relating to this +License may be brought only in the courts of a jurisdiction wherein the +Licensor resides or in which Licensor conducts its primary business, and under +the laws of that jurisdiction excluding its conflict-of-law provisions. The +application of the United Nations Convention on Contracts for the International +Sale of Goods is expressly excluded. Any use of the Original Work outside the +scope of this License or after its termination shall be subject to the +requirements and penalties of the U.S. Copyright Act, 17 U.S.C. § 101 et +seq., the equivalent laws of other countries, and international treaty. This +section shall survive the termination of this License. + +12) Attorneys Fees. In any action to enforce the terms of this License or +seeking damages relating thereto, the prevailing party shall be entitled to +recover its costs and expenses, including, without limitation, reasonable +attorneys' fees and costs incurred in connection with such action, including +any appeal of such action. This section shall survive the termination of this +License. + +13) Miscellaneous. This License represents the complete agreement concerning +the subject matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent necessary to +make it enforceable. + +14) Definition of "You" in This License. "You" throughout this License, whether +in upper or lower case, means an individual or a legal entity exercising rights +under, and complying with all of the terms of, this License. For legal +entities, "You" includes any entity that controls, is controlled by, or is +under common control with you. For purposes of this definition, "control" means +(i) the power, direct or indirect, to cause the direction or management of such +entity, whether by contract or otherwise, or (ii) ownership of fifty percent +(50%) or more of the outstanding shares, or (iii) beneficial ownership of such +entity. + +15) Right to Use. You may use the Original Work in all ways not otherwise +restricted or conditioned by this License or by law, and Licensor promises not +to interfere with or be responsible for such uses by You. + +This license is Copyright (C) 2003-2004 Lawrence E. Rosen. All rights reserved. +Permission is hereby granted to copy and distribute this license without +modification. This license may not be modified without the express written +permission of its copyright owner. + +----------- + +The following npm package may be included in this product: + + - dompurify@2.5.3 + +This package contains the following license and notice below: + +DOMPurify +Copyright 2024 Dr.-Ing. Mario Heiderich, Cure53 + +DOMPurify is free software; you can redistribute it and/or modify it under the +terms of either: + +a) the Apache License Version 2.0, or +b) the Mozilla Public License Version 2.0 + +----------------------------------------------------------------------------- + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +----------------------------------------------------------------------------- +Mozilla Public License, version 2.0 + +1. Definitions + +1.1. “Contributor” + + means each individual or legal entity that creates, contributes to the + creation of, or owns Covered Software. + +1.2. “Contributor Version” + + means the combination of the Contributions of others (if any) used by a + Contributor and that particular Contributor’s Contribution. + +1.3. “Contribution” + + means Covered Software of a particular Contributor. + +1.4. “Covered Software” + + means Source Code Form to which the initial Contributor has attached the + notice in Exhibit A, the Executable Form of such Source Code Form, and + Modifications of such Source Code Form, in each case including portions + thereof. + +1.5. “Incompatible With Secondary Licenses” + means + + a. that the initial Contributor has attached the notice described in + Exhibit B to the Covered Software; or + + b. that the Covered Software was made available under the terms of version + 1.1 or earlier of the License, but not also under the terms of a + Secondary License. + +1.6. “Executable Form” + + means any form of the work other than Source Code Form. + +1.7. “Larger Work” + + means a work that combines Covered Software with other material, in a separate + file or files, that is not Covered Software. + +1.8. “License” + + means this document. + +1.9. “Licensable” + + means having the right to grant, to the maximum extent possible, whether at the + time of the initial grant or subsequently, any and all of the rights conveyed by + this License. + +1.10. “Modifications” + + means any of the following: + + a. any file in Source Code Form that results from an addition to, deletion + from, or modification of the contents of Covered Software; or + + b. any new file in Source Code Form that contains any Covered Software. + +1.11. “Patent Claims” of a Contributor + + means any patent claim(s), including without limitation, method, process, + and apparatus claims, in any patent Licensable by such Contributor that + would be infringed, but for the grant of the License, by the making, + using, selling, offering for sale, having made, import, or transfer of + either its Contributions or its Contributor Version. + +1.12. “Secondary License” + + means either the GNU General Public License, Version 2.0, the GNU Lesser + General Public License, Version 2.1, the GNU Affero General Public + License, Version 3.0, or any later versions of those licenses. + +1.13. “Source Code Form” + + means the form of the work preferred for making modifications. + +1.14. “You” (or “Your”) + + means an individual or a legal entity exercising rights under this + License. For legal entities, “You” includes any entity that controls, is + controlled by, or is under common control with You. For purposes of this + definition, “control” means (a) the power, direct or indirect, to cause + the direction or management of such entity, whether by contract or + otherwise, or (b) ownership of more than fifty percent (50%) of the + outstanding shares or beneficial ownership of such entity. + + +2. License Grants and Conditions + +2.1. Grants + + Each Contributor hereby grants You a world-wide, royalty-free, + non-exclusive license: + + a. under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or as + part of a Larger Work; and + + b. under Patent Claims of such Contributor to make, use, sell, offer for + sale, have made, import, and otherwise transfer either its Contributions + or its Contributor Version. + +2.2. Effective Date + + The licenses granted in Section 2.1 with respect to any Contribution become + effective for each Contribution on the date the Contributor first distributes + such Contribution. + +2.3. Limitations on Grant Scope + + The licenses granted in this Section 2 are the only rights granted under this + License. No additional rights or licenses will be implied from the distribution + or licensing of Covered Software under this License. Notwithstanding Section + 2.1(b) above, no patent license is granted by a Contributor: + + a. for any code that a Contributor has removed from Covered Software; or + + b. for infringements caused by: (i) Your and any other third party’s + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + + c. under Patent Claims infringed by Covered Software in the absence of its + Contributions. + + This License does not grant any rights in the trademarks, service marks, or + logos of any Contributor (except as may be necessary to comply with the + notice requirements in Section 3.4). + +2.4. Subsequent Licenses + + No Contributor makes additional grants as a result of Your choice to + distribute the Covered Software under a subsequent version of this License + (see Section 10.2) or under the terms of a Secondary License (if permitted + under the terms of Section 3.3). + +2.5. Representation + + Each Contributor represents that the Contributor believes its Contributions + are its original creation(s) or it has sufficient rights to grant the + rights to its Contributions conveyed by this License. + +2.6. Fair Use + + This License is not intended to limit any rights You have under applicable + copyright doctrines of fair use, fair dealing, or other equivalents. + +2.7. Conditions + + Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in + Section 2.1. + + +3. Responsibilities + +3.1. Distribution of Source Form + + All distribution of Covered Software in Source Code Form, including any + Modifications that You create or to which You contribute, must be under the + terms of this License. You must inform recipients that the Source Code Form + of the Covered Software is governed by the terms of this License, and how + they can obtain a copy of this License. You may not attempt to alter or + restrict the recipients’ rights in the Source Code Form. + +3.2. Distribution of Executable Form + + If You distribute Covered Software in Executable Form then: + + a. such Covered Software must also be made available in Source Code Form, + as described in Section 3.1, and You must inform recipients of the + Executable Form how they can obtain a copy of such Source Code Form by + reasonable means in a timely manner, at a charge no more than the cost + of distribution to the recipient; and + + b. You may distribute such Executable Form under the terms of this License, + or sublicense it under different terms, provided that the license for + the Executable Form does not attempt to limit or alter the recipients’ + rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + + You may create and distribute a Larger Work under terms of Your choice, + provided that You also comply with the requirements of this License for the + Covered Software. If the Larger Work is a combination of Covered Software + with a work governed by one or more Secondary Licenses, and the Covered + Software is not Incompatible With Secondary Licenses, this License permits + You to additionally distribute such Covered Software under the terms of + such Secondary License(s), so that the recipient of the Larger Work may, at + their option, further distribute the Covered Software under the terms of + either this License or such Secondary License(s). + +3.4. Notices + + You may not remove or alter the substance of any license notices (including + copyright notices, patent notices, disclaimers of warranty, or limitations + of liability) contained within the Source Code Form of the Covered + Software, except that You may alter any license notices to the extent + required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + + You may choose to offer, and to charge a fee for, warranty, support, + indemnity or liability obligations to one or more recipients of Covered + Software. However, You may do so only on Your own behalf, and not on behalf + of any Contributor. You must make it absolutely clear that any such + warranty, support, indemnity, or liability obligation is offered by You + alone, and You hereby agree to indemnify every Contributor for any + liability incurred by such Contributor as a result of warranty, support, + indemnity or liability terms You offer. You may include additional + disclaimers of warranty and limitations of liability specific to any + jurisdiction. + +4. Inability to Comply Due to Statute or Regulation + + If it is impossible for You to comply with any of the terms of this License + with respect to some or all of the Covered Software due to statute, judicial + order, or regulation then You must: (a) comply with the terms of this License + to the maximum extent possible; and (b) describe the limitations and the code + they affect. Such description must be placed in a text file included with all + distributions of the Covered Software under this License. Except to the + extent prohibited by statute or regulation, such description must be + sufficiently detailed for a recipient of ordinary skill to be able to + understand it. + +5. Termination + +5.1. The rights granted under this License will terminate automatically if You + fail to comply with any of its terms. However, if You become compliant, + then the rights granted under this License from a particular Contributor + are reinstated (a) provisionally, unless and until such Contributor + explicitly and finally terminates Your grants, and (b) on an ongoing basis, + if such Contributor fails to notify You of the non-compliance by some + reasonable means prior to 60 days after You have come back into compliance. + Moreover, Your grants from a particular Contributor are reinstated on an + ongoing basis if such Contributor notifies You of the non-compliance by + some reasonable means, this is the first time You have received notice of + non-compliance with this License from such Contributor, and You become + compliant prior to 30 days after Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent + infringement claim (excluding declaratory judgment actions, counter-claims, + and cross-claims) alleging that a Contributor Version directly or + indirectly infringes any patent, then the rights granted to You by any and + all Contributors for the Covered Software under Section 2.1 of this License + shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user + license agreements (excluding distributors and resellers) which have been + validly granted by You or Your distributors under this License prior to + termination shall survive termination. + +6. Disclaimer of Warranty + + Covered Software is provided under this License on an “as is” basis, without + warranty of any kind, either expressed, implied, or statutory, including, + without limitation, warranties that the Covered Software is free of defects, + merchantable, fit for a particular purpose or non-infringing. The entire + risk as to the quality and performance of the Covered Software is with You. + Should any Covered Software prove defective in any respect, You (not any + Contributor) assume the cost of any necessary servicing, repair, or + correction. This disclaimer of warranty constitutes an essential part of this + License. No use of any Covered Software is authorized under this License + except under this disclaimer. + +7. Limitation of Liability + + Under no circumstances and under no legal theory, whether tort (including + negligence), contract, or otherwise, shall any Contributor, or anyone who + distributes Covered Software as permitted above, be liable to You for any + direct, indirect, special, incidental, or consequential damages of any + character including, without limitation, damages for lost profits, loss of + goodwill, work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses, even if such party shall have been + informed of the possibility of such damages. This limitation of liability + shall not apply to liability for death or personal injury resulting from such + party’s negligence to the extent applicable law prohibits such limitation. + Some jurisdictions do not allow the exclusion or limitation of incidental or + consequential damages, so this exclusion and limitation may not apply to You. + +8. Litigation + + Any litigation relating to this License may be brought only in the courts of + a jurisdiction where the defendant maintains its principal place of business + and such litigation shall be governed by laws of that jurisdiction, without + reference to its conflict-of-law provisions. Nothing in this Section shall + prevent a party’s ability to bring cross-claims or counter-claims. + +9. Miscellaneous + + This License represents the complete agreement concerning the subject matter + hereof. If any provision of this License is held to be unenforceable, such + provision shall be reformed only to the extent necessary to make it + enforceable. Any law or regulation which provides that the language of a + contract shall be construed against the drafter shall not be used to construe + this License against a Contributor. + + +10. Versions of the License + +10.1. New Versions + + Mozilla Foundation is the license steward. Except as provided in Section + 10.3, no one other than the license steward has the right to modify or + publish new versions of this License. Each version will be given a + distinguishing version number. + +10.2. Effect of New Versions + + You may distribute the Covered Software under the terms of the version of + the License under which You originally received the Covered Software, or + under the terms of any subsequent version published by the license + steward. + +10.3. Modified Versions + + If you create software not governed by this License, and you want to + create a new license for such software, you may create and use a modified + version of this License if you rename the license and remove any + references to the name of the license steward (except to note that such + modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses + If You choose to distribute Source Code Form that is Incompatible With + Secondary Licenses under the terms of this version of the License, the + notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice + + This Source Code Form is subject to the + terms of the Mozilla Public License, v. + 2.0. If a copy of the MPL was not + distributed with this file, You can + obtain one at + http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular file, then +You may include the notice in a location (such as a LICENSE file in a relevant +directory) where a recipient would be likely to look for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - “Incompatible With Secondary Licenses” Notice + + This Source Code Form is “Incompatible + With Secondary Licenses”, as defined by + the Mozilla Public License, v. 2.0. + +----------- + +The following npm package may be included in this product: + + - esprima@1.2.2 + +This package contains the following license and notice below: + +http://github.com/ariya/esprima/raw/master/LICENSE.BSD + +----------- + +The following npm package may be included in this product: + + - jsesc@0.5.0 + +This package contains the following license and notice below: + +http://mths.be/mit + +----------- + +The following npm package may be included in this product: + + - exit@0.1.2 + +This package contains the following license and notice below: + +https://github.com/cowboy/node-exit/blob/master/LICENSE-MIT + +----------- + +The following npm package may be included in this product: + + - prelude-ls@1.1.2 + +This package contains the following license and notice below: + +https://raw.github.com/gkz/prelude-ls/master/LICENSE + +----------- + +The following npm packages may be included in this product: + + - boolbase@1.0.0 + - saxes@5.0.1 + +These packages each contain the following license and notice below: + +ISC + +----------- + +The following npm package may be included in this product: + + - css-declaration-sorter@6.4.1 + +This package contains the following license and notice below: + +ISC License + +Copyright (c) + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - flatted@3.3.1 + +This package contains the following license and notice below: + +ISC License + +Copyright (c) 2018-2020, Andrea Giammarchi, @WebReflection + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - @istanbuljs/load-nyc-config@1.1.0 + +This package contains the following license and notice below: + +ISC License + +Copyright (c) 2019, Contributors + +Permission to use, copy, modify, and/or distribute this software +for any purpose with or without fee is hereby granted, provided +that the above copyright notice and this permission notice +appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE +LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES +OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - picocolors@0.2.1 + - picocolors@1.0.0 + - picocolors@1.0.1 + +These packages each contain the following license and notice below: + +ISC License + +Copyright (c) 2021 Alexey Raspopov, Kostiantyn Denysov, Anton Verinov + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - @ungap/structured-clone@1.2.0 + +This package contains the following license and notice below: + +ISC License + +Copyright (c) 2021, Andrea Giammarchi, @WebReflection + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - postcss-modules-values@4.0.0 + +This package contains the following license and notice below: + +ISC License (ISC) + +Copyright (c) 2015, Glen Maddern + +Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - postcss-modules-scope@3.2.0 + +This package contains the following license and notice below: + +ISC License (ISC) + +Copyright (c) 2015, Glen Maddern + +Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - idb@7.1.1 + +This package contains the following license and notice below: + +ISC License (ISC) +Copyright (c) 2016, Jake Archibald + +Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - icss-utils@5.1.0 + +This package contains the following license and notice below: + +ISC License (ISC) +Copyright 2018 Glen Maddern + +Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - get-caller-file@2.0.5 + +This package contains the following license and notice below: + +ISC License (ISC) +Copyright 2018 Stefan Penner + +Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - dom-serializer@0.2.2 + - dom-serializer@1.4.1 + +These packages each contain the following license and notice below: + +License + +(The MIT License) + +Copyright (c) 2014 The cheeriojs contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - common-tags@1.8.2 + +This package contains the following license and notice below: + +License (MIT) +------------- + +Copyright © Declan de Wet + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - @tootallnate/once@1.1.2 + - @types/json5@0.0.29 + - @webassemblyjs/helper-api-error@1.11.6 + - @webassemblyjs/helper-numbers@1.11.6 + - @webassemblyjs/helper-wasm-bytecode@1.11.6 + - @webassemblyjs/ieee754@1.11.6 + - @webassemblyjs/utf8@1.11.6 + - acorn-import-assertions@1.9.0 + - agent-base@6.0.2 + - cookie-signature@1.0.6 + - dlv@1.1.3 + - eastasianwidth@0.2.0 + - encode-utf8@1.0.3 + - estree-walker@1.0.1 + - handle-thing@2.0.1 + - hpack.js@2.1.6 + - html-parse-stringify@3.0.1 + - http-deceiver@1.2.7 + - http-proxy-agent@4.0.1 + - https-proxy-agent@5.0.1 + - imurmurhash@0.1.4 + - is-module@1.0.0 + - is-regexp@1.0.0 + - isarray@1.0.0 + - jest-pnp-resolver@1.2.3 + - keyv@4.5.4 + - language-tags@1.0.9 + - natural-compare-lite@1.4.0 + - natural-compare@1.4.0 + - react-remove-scroll-bar@2.3.6 + - react-style-singleton@2.2.1 + - select-hose@2.0.0 + - spdy-transport@3.0.0 + - spdy@4.0.2 + - stable@0.1.8 + - svg-parser@2.0.4 + - toggle-selection@1.0.6 + - undici-types@5.26.5 + - wbuf@1.7.3 + +These packages each contain the following license and notice below: + +MIT + +----------- + +The following npm package may be included in this product: + + - events@3.3.0 + +This package contains the following license and notice below: + +MIT + +Copyright Joyent, Inc. and other Node contributors. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - resolve@1.22.8 + - resolve@2.0.0-next.5 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) 2012 James Halliday + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - json5@1.0.2 + - json5@2.2.3 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) 2012-2018 Aseem Kishore, and [others]. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +[others]: https://github.com/json5/json5/contributors + +----------- + +The following npm package may be included in this product: + + - acorn@7.4.1 + +This package contains the following license and notice below: + +MIT License + +Copyright (C) 2012-2018 by various contributors (see AUTHORS) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - readdirp@3.6.0 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2012-2019 Thorsten Lorenz, Paul Miller (https://paulmillr.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - acorn@8.11.3 + +This package contains the following license and notice below: + +MIT License + +Copyright (C) 2012-2022 by various contributors (see AUTHORS) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - ua-parser-js@1.0.37 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2012-2023 Faisal Salman <> + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - object-inspect@1.13.1 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2013 James Halliday + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - selfsigned@2.4.1 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2013 José F. Romaniello + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - brace-expansion@1.1.11 + - brace-expansion@2.0.1 + - isarray@2.0.5 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) 2013 Julian Gruber + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - babel-plugin-named-asset-import@0.3.8 + - babel-preset-react-app@10.0.1 + - confusing-browser-globals@1.0.11 + - eslint-config-react-app@7.0.1 + - invariant@2.2.4 + - prop-types@15.8.1 + - react-app-polyfill@2.0.0 + - react-app-polyfill@3.0.0 + - react-dev-utils@12.0.1 + - react-error-overlay@6.0.11 + - react-scripts@5.0.1 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) 2013-present, Facebook, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - to-fast-properties@2.0.0 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2014 Petka Antonov + 2015 Sindre Sorhus + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - neo-async@2.6.2 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2014-2018 Suguru Motegi +Based on Async.js, Copyright Caolan McMahon + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - @babel/helper-define-polyfill-provider@0.6.2 + - babel-plugin-polyfill-corejs2@0.4.11 + - babel-plugin-polyfill-corejs3@0.10.4 + - babel-plugin-polyfill-regenerator@0.6.2 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) 2014-present Nicolò Ribaudo and other contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - @babel/code-frame@7.24.2 + - @babel/compat-data@7.24.4 + - @babel/core@7.24.5 + - @babel/eslint-parser@7.24.5 + - @babel/generator@7.24.5 + - @babel/helper-annotate-as-pure@7.22.5 + - @babel/helper-builder-binary-assignment-operator-visitor@7.22.15 + - @babel/helper-compilation-targets@7.23.6 + - @babel/helper-create-class-features-plugin@7.24.5 + - @babel/helper-create-regexp-features-plugin@7.22.15 + - @babel/helper-environment-visitor@7.22.20 + - @babel/helper-function-name@7.23.0 + - @babel/helper-hoist-variables@7.22.5 + - @babel/helper-member-expression-to-functions@7.24.5 + - @babel/helper-module-imports@7.24.3 + - @babel/helper-module-transforms@7.24.5 + - @babel/helper-optimise-call-expression@7.22.5 + - @babel/helper-plugin-utils@7.24.5 + - @babel/helper-remap-async-to-generator@7.22.20 + - @babel/helper-replace-supers@7.24.1 + - @babel/helper-simple-access@7.24.5 + - @babel/helper-skip-transparent-expression-wrappers@7.22.5 + - @babel/helper-split-export-declaration@7.24.5 + - @babel/helper-string-parser@7.24.1 + - @babel/helper-validator-identifier@7.24.5 + - @babel/helper-validator-option@7.23.5 + - @babel/helper-wrap-function@7.24.5 + - @babel/helpers@7.24.5 + - @babel/highlight@7.24.5 + - @babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.5 + - @babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1 + - @babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1 + - @babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1 + - @babel/plugin-proposal-class-properties@7.18.6 + - @babel/plugin-proposal-decorators@7.24.1 + - @babel/plugin-proposal-nullish-coalescing-operator@7.18.6 + - @babel/plugin-proposal-numeric-separator@7.18.6 + - @babel/plugin-proposal-optional-chaining@7.21.0 + - @babel/plugin-proposal-private-methods@7.18.6 + - @babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2 + - @babel/plugin-syntax-async-generators@7.8.4 + - @babel/plugin-syntax-bigint@7.8.3 + - @babel/plugin-syntax-class-properties@7.12.13 + - @babel/plugin-syntax-class-static-block@7.14.5 + - @babel/plugin-syntax-decorators@7.24.1 + - @babel/plugin-syntax-dynamic-import@7.8.3 + - @babel/plugin-syntax-export-namespace-from@7.8.3 + - @babel/plugin-syntax-flow@7.24.1 + - @babel/plugin-syntax-import-assertions@7.24.1 + - @babel/plugin-syntax-import-attributes@7.24.1 + - @babel/plugin-syntax-import-meta@7.10.4 + - @babel/plugin-syntax-json-strings@7.8.3 + - @babel/plugin-syntax-jsx@7.24.1 + - @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-syntax-typescript@7.24.1 + - @babel/plugin-syntax-unicode-sets-regex@7.18.6 + - @babel/plugin-transform-arrow-functions@7.24.1 + - @babel/plugin-transform-async-generator-functions@7.24.3 + - @babel/plugin-transform-async-to-generator@7.24.1 + - @babel/plugin-transform-block-scoped-functions@7.24.1 + - @babel/plugin-transform-block-scoping@7.24.5 + - @babel/plugin-transform-class-properties@7.24.1 + - @babel/plugin-transform-class-static-block@7.24.4 + - @babel/plugin-transform-classes@7.24.5 + - @babel/plugin-transform-computed-properties@7.24.1 + - @babel/plugin-transform-destructuring@7.24.5 + - @babel/plugin-transform-dotall-regex@7.24.1 + - @babel/plugin-transform-duplicate-keys@7.24.1 + - @babel/plugin-transform-dynamic-import@7.24.1 + - @babel/plugin-transform-exponentiation-operator@7.24.1 + - @babel/plugin-transform-export-namespace-from@7.24.1 + - @babel/plugin-transform-flow-strip-types@7.24.1 + - @babel/plugin-transform-for-of@7.24.1 + - @babel/plugin-transform-function-name@7.24.1 + - @babel/plugin-transform-json-strings@7.24.1 + - @babel/plugin-transform-literals@7.24.1 + - @babel/plugin-transform-logical-assignment-operators@7.24.1 + - @babel/plugin-transform-member-expression-literals@7.24.1 + - @babel/plugin-transform-modules-amd@7.24.1 + - @babel/plugin-transform-modules-commonjs@7.24.1 + - @babel/plugin-transform-modules-systemjs@7.24.1 + - @babel/plugin-transform-modules-umd@7.24.1 + - @babel/plugin-transform-named-capturing-groups-regex@7.22.5 + - @babel/plugin-transform-new-target@7.24.1 + - @babel/plugin-transform-nullish-coalescing-operator@7.24.1 + - @babel/plugin-transform-numeric-separator@7.24.1 + - @babel/plugin-transform-object-rest-spread@7.24.5 + - @babel/plugin-transform-object-super@7.24.1 + - @babel/plugin-transform-optional-catch-binding@7.24.1 + - @babel/plugin-transform-optional-chaining@7.24.5 + - @babel/plugin-transform-parameters@7.24.5 + - @babel/plugin-transform-private-methods@7.24.1 + - @babel/plugin-transform-private-property-in-object@7.24.5 + - @babel/plugin-transform-property-literals@7.24.1 + - @babel/plugin-transform-react-constant-elements@7.24.1 + - @babel/plugin-transform-react-display-name@7.24.1 + - @babel/plugin-transform-react-jsx-development@7.22.5 + - @babel/plugin-transform-react-jsx@7.23.4 + - @babel/plugin-transform-react-pure-annotations@7.24.1 + - @babel/plugin-transform-regenerator@7.24.1 + - @babel/plugin-transform-reserved-words@7.24.1 + - @babel/plugin-transform-runtime@7.24.3 + - @babel/plugin-transform-shorthand-properties@7.24.1 + - @babel/plugin-transform-spread@7.24.1 + - @babel/plugin-transform-sticky-regex@7.24.1 + - @babel/plugin-transform-template-literals@7.24.1 + - @babel/plugin-transform-typeof-symbol@7.24.5 + - @babel/plugin-transform-typescript@7.24.5 + - @babel/plugin-transform-unicode-escapes@7.24.1 + - @babel/plugin-transform-unicode-property-regex@7.24.1 + - @babel/plugin-transform-unicode-regex@7.24.1 + - @babel/plugin-transform-unicode-sets-regex@7.24.1 + - @babel/preset-env@7.24.5 + - @babel/preset-react@7.24.1 + - @babel/preset-typescript@7.24.1 + - @babel/runtime@7.24.5 + - @babel/template@7.24.0 + - @babel/traverse@7.24.5 + - @babel/types@7.24.5 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) 2014-present Sebastian McKenzie and other contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - regenerator-runtime@0.13.11 + - regenerator-runtime@0.14.1 + - regenerator-transform@0.15.2 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) 2014-present, Facebook, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - immutable@4.3.6 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2014-present, Lee Byron and other contributors. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - is-array-buffer@3.0.4 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2015 Chen Gengyuan, Inspect JS + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - toidentifier@1.0.1 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2016 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - has-symbols@1.0.3 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2016 Jordan Harband + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - pirates@4.0.6 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2016-2018 Ari Porad + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - stylis@4.2.0 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2016-present Sultan Tarimo + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - buffer-from@1.1.2 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2016, 2018 Linus Unnebäck + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - shallowequal@1.1.0 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2017 Alberto Leal (github.com/dashed) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - react-focus-lock@2.12.1 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2017 Anton + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - aria-hidden@1.2.4 + - focus-lock@1.3.5 + - react-remove-scroll@2.5.10 + - use-callback-ref@1.3.2 + - use-sidecar@1.1.2 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) 2017 Anton Korzunov + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - randombytes@2.1.0 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2017 crypto-browserify + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - react-device-detect@2.2.3 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2017 duskload + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - array.prototype.flat@1.3.2 + - array.prototype.flatmap@1.3.2 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) 2017 ECMAScript Shims + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - fast-deep-equal@2.0.1 + - fast-deep-equal@3.1.3 + - json-schema-traverse@0.4.1 + - json-schema-traverse@1.0.0 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) 2017 Evgeny Poberezkin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - detect-node-es@1.1.0 + - detect-node@2.1.0 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) 2017 Ilya Kantor + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - util.promisify@1.0.1 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2017 Jordan Harband + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - webpack-sources@1.4.3 + - webpack-sources@2.3.1 + - webpack-sources@3.2.3 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) 2017 JS Foundation and other contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - string.prototype.trimend@1.0.8 + - string.prototype.trimstart@1.0.8 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) 2017 Khaled Al-Ansari + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - immer@9.0.21 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2017 Michel Weststrate + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - copy-to-clipboard@3.3.3 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2017 sudodoki + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - css-box-model@1.2.1 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2018 Alex Reardon + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - react-fast-compare@3.2.2 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2018 Formidable Labs +Copyright (c) 2017 Evgeny Poberezkin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - eslint-plugin-jest@25.7.0 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2018 Jonathan Kim + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - is-bigint@1.0.4 + - object.fromentries@2.0.8 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) 2018 Jordan Harband + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - ast-types-flow@0.0.8 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2018 Kyle Davis + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - css-select-base-adapter@0.1.1 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2018 Nik Coughlin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - safer-buffer@2.1.2 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2018 Nikita Skovoroda + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - jest-watch-typeahead@1.1.0 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2018 Rogelio Guzman + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - @webassemblyjs/ast@1.12.1 + - @webassemblyjs/helper-buffer@1.12.1 + - @webassemblyjs/helper-wasm-section@1.12.1 + - @webassemblyjs/wasm-edit@1.12.1 + - @webassemblyjs/wasm-gen@1.12.1 + - @webassemblyjs/wasm-opt@1.12.1 + - @webassemblyjs/wasm-parser@1.12.1 + - @webassemblyjs/wast-printer@1.12.1 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) 2018 Sven Sauleau + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - prompts@2.4.2 + - sisteransi@1.0.5 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) 2018 Terkel Gjervig Nielsen + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - @eslint-community/eslint-utils@4.4.0 + - @eslint-community/regexpp@4.10.0 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) 2018 Toru Nagashima + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - tiny-invariant@1.3.3 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2019 Alexander Reardon + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - @istanbuljs/schema@0.1.3 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2019 CFWare, 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 +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - goober@2.1.14 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2019 Cristian Bote + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - is-map@2.0.3 + - is-set@2.0.3 + - is-weakmap@2.0.2 + - is-weakset@2.0.3 + - which-collection@1.0.2 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) 2019 Inspect JS + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - array.prototype.reduce@1.0.7 + - es-array-method-boxes-properly@1.0.0 + - functions-have-names@1.2.3 + - has-bigints@1.0.2 + - internal-slot@1.0.7 + - side-channel@1.0.6 + - unbox-primitive@1.0.2 + - which-boxed-primitive@1.0.2 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) 2019 Jordan Harband + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - eslint-plugin-testing-library@5.11.1 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2019 Mario Beltrán Alarcón + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - @pmmmwh/react-refresh-webpack-plugin@0.5.13 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2019 Michael Mok + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - @chakra-ui/accordion@2.3.1 + - @chakra-ui/alert@2.2.2 + - @chakra-ui/anatomy@2.2.2 + - @chakra-ui/avatar@2.3.0 + - @chakra-ui/breadcrumb@2.2.0 + - @chakra-ui/breakpoint-utils@2.0.8 + - @chakra-ui/button@2.1.0 + - @chakra-ui/card@2.2.0 + - @chakra-ui/checkbox@2.3.2 + - @chakra-ui/clickable@2.1.0 + - @chakra-ui/close-button@2.1.1 + - @chakra-ui/color-mode@2.2.0 + - @chakra-ui/control-box@2.1.0 + - @chakra-ui/counter@2.1.0 + - @chakra-ui/css-reset@2.3.0 + - @chakra-ui/descendant@3.1.0 + - @chakra-ui/dom-utils@2.1.0 + - @chakra-ui/editable@3.1.0 + - @chakra-ui/event-utils@2.0.8 + - @chakra-ui/focus-lock@2.1.0 + - @chakra-ui/form-control@2.2.0 + - @chakra-ui/hooks@2.2.1 + - @chakra-ui/icon@3.2.0 + - @chakra-ui/image@2.1.0 + - @chakra-ui/input@2.1.2 + - @chakra-ui/layout@2.3.1 + - @chakra-ui/lazy-utils@2.0.5 + - @chakra-ui/live-region@2.1.0 + - @chakra-ui/media-query@3.3.0 + - @chakra-ui/menu@2.2.1 + - @chakra-ui/modal@2.3.1 + - @chakra-ui/number-input@2.1.2 + - @chakra-ui/number-utils@2.0.7 + - @chakra-ui/object-utils@2.1.0 + - @chakra-ui/pin-input@2.1.0 + - @chakra-ui/popover@2.2.1 + - @chakra-ui/popper@3.1.0 + - @chakra-ui/portal@2.1.0 + - @chakra-ui/progress@2.2.0 + - @chakra-ui/provider@2.4.2 + - @chakra-ui/radio@2.1.2 + - @chakra-ui/react-children-utils@2.0.6 + - @chakra-ui/react-context@2.1.0 + - @chakra-ui/react-env@3.1.0 + - @chakra-ui/react-types@2.0.7 + - @chakra-ui/react-use-animation-state@2.1.0 + - @chakra-ui/react-use-callback-ref@2.1.0 + - @chakra-ui/react-use-controllable-state@2.1.0 + - @chakra-ui/react-use-disclosure@2.1.0 + - @chakra-ui/react-use-event-listener@2.1.0 + - @chakra-ui/react-use-focus-effect@2.1.0 + - @chakra-ui/react-use-focus-on-pointer-down@2.1.0 + - @chakra-ui/react-use-interval@2.1.0 + - @chakra-ui/react-use-latest-ref@2.1.0 + - @chakra-ui/react-use-merge-refs@2.1.0 + - @chakra-ui/react-use-outside-click@2.2.0 + - @chakra-ui/react-use-pan-event@2.1.0 + - @chakra-ui/react-use-previous@2.1.0 + - @chakra-ui/react-use-safe-layout-effect@2.1.0 + - @chakra-ui/react-use-size@2.1.0 + - @chakra-ui/react-use-timeout@2.1.0 + - @chakra-ui/react-use-update-effect@2.1.0 + - @chakra-ui/react-utils@2.0.12 + - @chakra-ui/react@2.8.2 + - @chakra-ui/select@2.1.2 + - @chakra-ui/shared-utils@2.0.5 + - @chakra-ui/skeleton@2.1.0 + - @chakra-ui/skip-nav@2.1.0 + - @chakra-ui/slider@2.1.0 + - @chakra-ui/spinner@2.1.0 + - @chakra-ui/stat@2.1.1 + - @chakra-ui/stepper@2.3.1 + - @chakra-ui/styled-system@2.9.2 + - @chakra-ui/switch@2.1.2 + - @chakra-ui/system@2.6.2 + - @chakra-ui/table@2.1.0 + - @chakra-ui/tabs@3.0.0 + - @chakra-ui/tag@3.1.1 + - @chakra-ui/textarea@2.1.2 + - @chakra-ui/theme-tools@2.1.2 + - @chakra-ui/theme-utils@2.0.21 + - @chakra-ui/theme@3.3.1 + - @chakra-ui/toast@7.0.2 + - @chakra-ui/tooltip@2.3.1 + - @chakra-ui/transition@2.1.0 + - @chakra-ui/utils@2.0.15 + - @chakra-ui/visually-hidden@2.2.0 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) 2019 Segun Adebayo + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - collect-v8-coverage@1.0.2 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2019 Simen Bekkhus + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - is-binary-path@2.1.0 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2019 Sindre Sorhus (https://sindresorhus.com), Paul Miller (https://paulmillr.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - @typescript-eslint/eslint-plugin@5.62.0 + - @typescript-eslint/experimental-utils@5.62.0 + - @typescript-eslint/scope-manager@5.62.0 + - @typescript-eslint/types@5.62.0 + - @typescript-eslint/utils@5.62.0 + - @typescript-eslint/visitor-keys@5.62.0 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) 2019 typescript-eslint and other contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - get-nonce@1.0.1 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2020 Anton Korzunov + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - @babel/preset-modules@0.1.6-no-external-plugins + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2020 Babel + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - get-package-type@0.1.0 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2020 CFWare, 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 +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - which-builtin-type@1.1.3 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2020 ECMAScript Shims + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - ajv-formats@2.1.1 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2020 Evgeny Poberezkin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - available-typed-arrays@1.0.7 + - is-finalizationregistry@1.0.2 + - is-weakref@1.0.2 + - typed-array-byte-length@1.0.1 + - typed-array-byte-offset@1.0.2 + - typed-array-length@1.0.6 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) 2020 Inspect JS + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - call-bind@1.0.7 + - get-intrinsic@1.2.4 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) 2020 Jordan Harband + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - babel-preset-current-node-syntax@1.0.1 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2020 Nicolò Ribaudo and other contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - color2k@2.0.3 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2020 Rico Kahler + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - react-hot-toast@2.4.1 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2020 Timo Lins + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - fork-ts-checker-webpack-plugin@6.5.3 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2020 TypeStrong + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - colord@2.9.3 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2020 Vlad Shilov omgovich@ya.ru + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - @apideck/better-ajv-errors@0.3.6 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2021 Apideck + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - @zag-js/dom-query@0.16.0 + - @zag-js/element-size@0.10.5 + - @zag-js/focus-visible@0.16.0 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) 2021 Chakra UI + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - array.prototype.findlast@1.2.5 + - array.prototype.findlastindex@1.2.5 + - array.prototype.toreversed@1.1.2 + - array.prototype.tosorted@1.1.3 + - reflect.getprototypeof@1.0.6 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) 2021 ECMAScript Shims + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - get-symbol-description@1.0.2 + - has-tostringtag@1.0.2 + - is-shared-array-buffer@1.0.3 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) 2021 Inspect JS + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - @leichtgewicht/ip-codec@2.0.5 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2021 Martin Heidegger + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - @typescript-eslint/type-utils@5.62.0 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2021 typescript-eslint and other contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - @tanstack/query-core@5.36.0 + - @tanstack/react-query@5.36.0 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) 2021-present Tanner Linsley + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - lilconfig@2.1.0 + - lilconfig@3.1.1 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) 2022 Anton Kastritskiy + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - es-iterator-helpers@1.0.19 + - es-set-tostringtag@2.0.3 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) 2022 ECMAScript Shims + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - has-property-descriptors@1.0.2 + - has-proto@1.0.3 + - supports-preserve-symlinks-flag@1.0.0 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) 2022 Inspect JS + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - es-shim-unscopables@1.0.2 + - gopd@1.0.1 + - iterator.prototype@1.1.2 + - safe-regex-test@1.0.3 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) 2022 Jordan Harband + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - compute-scroll-into-view@3.0.3 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2023 Cody Olsen + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - arraybuffer.prototype.slice@1.0.3 + - object.groupby@1.0.3 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) 2023 ECMAScript Shims + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - array-buffer-byte-length@1.0.1 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2023 Inspect JS + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - data-view-buffer@1.0.1 + - define-data-property@1.1.4 + - safe-array-concat@1.1.2 + - typed-array-buffer@1.0.2 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) 2023 Jordan Harband + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - fraction.js@4.3.7 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2023 Robert Eisele + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - is-data-view@1.0.1 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2024 Inspect JS + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - data-view-byte-length@1.0.1 + - data-view-byte-offset@1.0.0 + - es-define-property@1.0.0 + - es-errors@1.3.0 + - es-object-atoms@1.0.0 + - possible-typed-array-names@1.0.0 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) 2024 Jordan Harband + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - @emotion/babel-plugin@11.11.0 + - @emotion/cache@11.11.0 + - @emotion/hash@0.9.1 + - @emotion/is-prop-valid@1.2.2 + - @emotion/memoize@0.8.1 + - @emotion/react@11.11.4 + - @emotion/serialize@1.1.4 + - @emotion/sheet@1.2.2 + - @emotion/styled@11.11.5 + - @emotion/unitless@0.8.1 + - @emotion/use-insertion-effect-with-fallbacks@1.0.1 + - @emotion/utils@1.2.1 + - @emotion/weak-memoize@0.3.1 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) Emotion team and other contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - @jest/console@27.5.1 + - @jest/console@28.1.3 + - @jest/core@27.5.1 + - @jest/environment@27.5.1 + - @jest/fake-timers@27.5.1 + - @jest/globals@27.5.1 + - @jest/reporters@27.5.1 + - @jest/schemas@28.1.3 + - @jest/source-map@27.5.1 + - @jest/test-result@27.5.1 + - @jest/test-result@28.1.3 + - @jest/test-sequencer@27.5.1 + - @jest/transform@27.5.1 + - @jest/types@27.5.1 + - @jest/types@28.1.3 + - babel-jest@27.5.1 + - babel-plugin-jest-hoist@27.5.1 + - babel-preset-jest@27.5.1 + - diff-sequences@27.5.1 + - eslint-plugin-react-hooks@4.6.2 + - expect@27.5.1 + - jest-changed-files@27.5.1 + - jest-circus@27.5.1 + - jest-cli@27.5.1 + - jest-config@27.5.1 + - jest-diff@27.5.1 + - jest-docblock@27.5.1 + - jest-each@27.5.1 + - jest-environment-jsdom@27.5.1 + - jest-environment-node@27.5.1 + - jest-get-type@27.5.1 + - jest-haste-map@27.5.1 + - jest-jasmine2@27.5.1 + - jest-leak-detector@27.5.1 + - jest-matcher-utils@27.5.1 + - jest-message-util@27.5.1 + - jest-message-util@28.1.3 + - jest-mock@27.5.1 + - jest-regex-util@27.5.1 + - jest-regex-util@28.0.2 + - jest-resolve-dependencies@27.5.1 + - jest-resolve@27.5.1 + - jest-runner@27.5.1 + - jest-runtime@27.5.1 + - jest-serializer@27.5.1 + - jest-snapshot@27.5.1 + - jest-util@27.5.1 + - jest-util@28.1.3 + - jest-validate@27.5.1 + - jest-watcher@27.5.1 + - jest-watcher@28.1.3 + - jest-worker@26.6.2 + - jest-worker@27.5.1 + - jest-worker@28.1.3 + - jest@27.5.1 + - pretty-format@27.5.1 + - pretty-format@28.1.3 + - react-dom@18.3.1 + - react-is@16.13.1 + - react-is@17.0.2 + - react-is@18.3.1 + - react-refresh@0.11.0 + - react@18.3.1 + - scheduler@0.23.2 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) Facebook, Inc. and its affiliates. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - supports-hyperlinks@2.3.0 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) James Talmage (github.com/jamestalmage) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - hasown@2.0.2 + - set-function-length@1.2.2 + - set-function-name@2.0.2 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) Jordan Harband and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - dir-glob@3.0.1 + - shebang-command@2.0.0 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) Kevin Mårtensson (github.com/kevva) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - svgo@2.8.0 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) Kir Belevich + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - escalade@3.1.2 + - klona@2.0.6 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) Luke Edwards (lukeed.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - jiti@1.21.0 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) Pooya Parsa + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - @remix-run/router@1.16.1 + - react-router-dom@6.23.1 + - react-router@6.23.1 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) React Training LLC 2015-2019 +Copyright (c) Remix Software Inc. 2020-2021 +Copyright (c) Shopify Inc. 2022-2023 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - ansi-escapes@4.3.2 + - ansi-regex@6.0.1 + - ansi-styles@6.2.1 + - builtin-modules@3.3.0 + - camelcase@6.3.0 + - emittery@0.10.2 + - emittery@0.8.1 + - escape-string-regexp@4.0.0 + - execa@5.0.0 + - find-cache-dir@3.3.2 + - find-up@5.0.0 + - get-stream@6.0.0 + - globals@13.24.0 + - gzip-size@6.0.0 + - import-fresh@3.3.0 + - is-docker@2.2.1 + - is-plain-obj@3.0.0 + - locate-path@6.0.0 + - make-dir@4.0.0 + - map-obj@4.3.0 + - onetime@5.1.2 + - open@8.4.2 + - p-limit@3.1.0 + - p-locate@5.0.0 + - parse-json@5.2.0 + - pretty-bytes@5.6.0 + - slash@4.0.0 + - string-length@4.0.2 + - string-length@5.0.1 + - string-width@5.1.2 + - strip-ansi@7.1.0 + - strip-json-comments@3.1.1 + - supports-color@8.1.1 + - tempy@0.6.0 + - wrap-ansi@7.0.0 + - wrap-ansi@8.1.0 + - yocto-queue@0.1.0 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) Sindre Sorhus (https://sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - binary-extensions@2.3.0 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) Sindre Sorhus (https://sindresorhus.com) +Copyright (c) Paul Miller (https://paulmillr.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - type-fest@0.16.0 + - type-fest@0.20.2 + - type-fest@0.21.3 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) Sindre Sorhus (https:/sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - @alloc/quick-lru@5.2.0 + - ansi-regex@5.0.1 + - ansi-styles@3.2.1 + - ansi-styles@4.3.0 + - ansi-styles@5.2.0 + - array-union@2.1.0 + - callsites@3.1.0 + - camelcase@5.3.1 + - chalk@2.4.2 + - chalk@4.1.0 + - chalk@4.1.2 + - crypto-random-string@2.0.0 + - define-lazy-prop@2.0.0 + - detect-newline@3.1.0 + - escape-string-regexp@2.0.0 + - find-up@3.0.0 + - find-up@4.1.0 + - globals@11.12.0 + - globby@11.1.0 + - has-flag@3.0.0 + - has-flag@4.0.0 + - import-local@3.1.0 + - is-fullwidth-code-point@3.0.0 + - is-generator-fn@2.1.0 + - is-path-inside@3.0.3 + - is-root@2.1.0 + - is-stream@2.0.0 + - is-wsl@2.2.0 + - leven@3.1.0 + - locate-path@3.0.0 + - locate-path@5.0.0 + - make-dir@3.1.0 + - mimic-fn@2.1.0 + - normalize-url@6.1.0 + - npm-run-path@4.0.1 + - p-limit@2.3.0 + - p-locate@3.0.0 + - p-locate@4.1.0 + - p-retry@4.6.2 + - p-try@2.2.0 + - parent-module@1.0.1 + - path-exists@4.0.0 + - path-key@3.1.1 + - path-type@4.0.0 + - pkg-dir@4.2.0 + - pkg-up@3.1.0 + - resolve-cwd@3.0.0 + - resolve-from@4.0.0 + - resolve-from@5.0.0 + - shebang-regex@3.0.0 + - slash@3.0.0 + - string-width@4.2.3 + - strip-ansi@6.0.1 + - strip-bom@4.0.0 + - strip-final-newline@2.0.0 + - supports-color@5.5.0 + - supports-color@7.2.0 + - temp-dir@2.0.0 + - terminal-link@2.1.1 + - unique-string@2.0.0 + - wrap-ansi@6.2.0 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - tailwindcss@3.4.3 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) Tailwind Labs, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - domexception@2.0.1 + +This package contains the following license and notice below: + +MIT License + +Copyright © 2017 Domenic Denicola + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - framesync@6.1.2 + +This package contains the following license and notice below: + +MIT License + +Copyright © 2019 Framer BV + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - yargs@15.4.1 + - yargs@16.2.0 + +These packages each contain the following license and notice below: + +MIT License + +Copyright 2010 James Halliday (mail@substack.net); Modified work Copyright 2014 Contributors (ben@npmjs.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - fsevents@2.3.2 + +This package contains the following license and notice below: + +MIT License +----------- + +Copyright (C) 2010-2020 by Philipp Dunkel, Ben Noordhuis, Elan Shankar, Paul Miller + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - @webassemblyjs/floating-point-hex-parser@1.11.6 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2017 Mauro Bringolf + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - char-regex@1.0.2 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2019 Richie Bendall + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - char-regex@2.0.1 + +This package contains the following license and notice below: + +MIT License + +Copyright (c) 2020 - 2021 Richie Bendall + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - cjs-module-lexer@1.3.1 + +This package contains the following license and notice below: + +MIT License +----------- + +Copyright (C) 2018-2020 Guy Bedford + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - es-module-lexer@1.5.2 + +This package contains the following license and notice below: + +MIT License +----------- + +Copyright (C) 2018-2022 Guy Bedford + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - axe-core@4.7.0 + +This package contains the following license and notice below: + +Mozilla Public License, version 2.0 + +1. Definitions + +1.1. "Contributor" + + means each individual or legal entity that creates, contributes to the + creation of, or owns Covered Software. + +1.2. "Contributor Version" + + means the combination of the Contributions of others (if any) used by a + Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + + means Source Code Form to which the initial Contributor has attached the + notice in Exhibit A, the Executable Form of such Source Code Form, and + Modifications of such Source Code Form, in each case including portions + thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + a. that the initial Contributor has attached the notice described in + Exhibit B to the Covered Software; or + + b. that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the terms of + a Secondary License. + +1.6. "Executable Form" + + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + + means a work that combines Covered Software with other material, in a + separate file or files, that is not Covered Software. + +1.8. "License" + + means this document. + +1.9. "Licensable" + + means having the right to grant, to the maximum extent possible, whether + at the time of the initial grant or subsequently, any and all of the + rights conveyed by this License. + +1.10. "Modifications" + + means any of the following: + + a. any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered Software; or + + b. any new file in Source Code Form that contains any Covered Software. + +1.11. "Patent Claims" of a Contributor + + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the License, + by the making, using, selling, offering for sale, having made, import, + or transfer of either its Contributions or its Contributor Version. + +1.12. "Secondary License" + + means either the GNU General Public License, Version 2.0, the GNU Lesser + General Public License, Version 2.1, the GNU Affero General Public + License, Version 3.0, or any later versions of those licenses. + +1.13. "Source Code Form" + + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that controls, is + controlled by, or is under common control with You. For purposes of this + definition, "control" means (a) the power, direct or indirect, to cause + the direction or management of such entity, whether by contract or + otherwise, or (b) ownership of more than fifty percent (50%) of the + outstanding shares or beneficial ownership of such entity. + + +2. License Grants and Conditions + +2.1. Grants + + Each Contributor hereby grants You a world-wide, royalty-free, + non-exclusive license: + + a. under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + + b. under Patent Claims of such Contributor to make, use, sell, offer for + sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + + The licenses granted in Section 2.1 with respect to any Contribution + become effective for each Contribution on the date the Contributor first + distributes such Contribution. + +2.3. Limitations on Grant Scope + + The licenses granted in this Section 2 are the only rights granted under + this License. No additional rights or licenses will be implied from the + distribution or licensing of Covered Software under this License. + Notwithstanding Section 2.1(b) above, no patent license is granted by a + Contributor: + + a. for any code that a Contributor has removed from Covered Software; or + + b. for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + + c. under Patent Claims infringed by Covered Software in the absence of + its Contributions. + + This License does not grant any rights in the trademarks, service marks, + or logos of any Contributor (except as may be necessary to comply with + the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + + No Contributor makes additional grants as a result of Your choice to + distribute the Covered Software under a subsequent version of this + License (see Section 10.2) or under the terms of a Secondary License (if + permitted under the terms of Section 3.3). + +2.5. Representation + + Each Contributor represents that the Contributor believes its + Contributions are its original creation(s) or it has sufficient rights to + grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + + This License is not intended to limit any rights You have under + applicable copyright doctrines of fair use, fair dealing, or other + equivalents. + +2.7. Conditions + + Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in + Section 2.1. + + +3. Responsibilities + +3.1. Distribution of Source Form + + All distribution of Covered Software in Source Code Form, including any + Modifications that You create or to which You contribute, must be under + the terms of this License. You must inform recipients that the Source + Code Form of the Covered Software is governed by the terms of this + License, and how they can obtain a copy of this License. You may not + attempt to alter or restrict the recipients' rights in the Source Code + Form. + +3.2. Distribution of Executable Form + + If You distribute Covered Software in Executable Form then: + + a. such Covered Software must also be made available in Source Code Form, + as described in Section 3.1, and You must inform recipients of the + Executable Form how they can obtain a copy of such Source Code Form by + reasonable means in a timely manner, at a charge no more than the cost + of distribution to the recipient; and + + b. You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter the + recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + + You may create and distribute a Larger Work under terms of Your choice, + provided that You also comply with the requirements of this License for + the Covered Software. If the Larger Work is a combination of Covered + Software with a work governed by one or more Secondary Licenses, and the + Covered Software is not Incompatible With Secondary Licenses, this + License permits You to additionally distribute such Covered Software + under the terms of such Secondary License(s), so that the recipient of + the Larger Work may, at their option, further distribute the Covered + Software under the terms of either this License or such Secondary + License(s). + +3.4. Notices + + You may not remove or alter the substance of any license notices + (including copyright notices, patent notices, disclaimers of warranty, or + limitations of liability) contained within the Source Code Form of the + Covered Software, except that You may alter any license notices to the + extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + + You may choose to offer, and to charge a fee for, warranty, support, + indemnity or liability obligations to one or more recipients of Covered + Software. However, You may do so only on Your own behalf, and not on + behalf of any Contributor. You must make it absolutely clear that any + such warranty, support, indemnity, or liability obligation is offered by + You alone, and You hereby agree to indemnify every Contributor for any + liability incurred by such Contributor as a result of warranty, support, + indemnity or liability terms You offer. You may include additional + disclaimers of warranty and limitations of liability specific to any + jurisdiction. + +4. Inability to Comply Due to Statute or Regulation + + If it is impossible for You to comply with any of the terms of this License + with respect to some or all of the Covered Software due to statute, + judicial order, or regulation then You must: (a) comply with the terms of + this License to the maximum extent possible; and (b) describe the + limitations and the code they affect. Such description must be placed in a + text file included with all distributions of the Covered Software under + this License. Except to the extent prohibited by statute or regulation, + such description must be sufficiently detailed for a recipient of ordinary + skill to be able to understand it. + +5. Termination + +5.1. The rights granted under this License will terminate automatically if You + fail to comply with any of its terms. However, if You become compliant, + then the rights granted under this License from a particular Contributor + are reinstated (a) provisionally, unless and until such Contributor + explicitly and finally terminates Your grants, and (b) on an ongoing + basis, if such Contributor fails to notify You of the non-compliance by + some reasonable means prior to 60 days after You have come back into + compliance. Moreover, Your grants from a particular Contributor are + reinstated on an ongoing basis if such Contributor notifies You of the + non-compliance by some reasonable means, this is the first time You have + received notice of non-compliance with this License from such + Contributor, and You become compliant prior to 30 days after Your receipt + of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent + infringement claim (excluding declaratory judgment actions, + counter-claims, and cross-claims) alleging that a Contributor Version + directly or indirectly infringes any patent, then the rights granted to + You by any and all Contributors for the Covered Software under Section + 2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user + license agreements (excluding distributors and resellers) which have been + validly granted by You or Your distributors under this License prior to + termination shall survive termination. + +6. Disclaimer of Warranty + + Covered Software is provided under this License on an "as is" basis, + without warranty of any kind, either expressed, implied, or statutory, + including, without limitation, warranties that the Covered Software is free + of defects, merchantable, fit for a particular purpose or non-infringing. + The entire risk as to the quality and performance of the Covered Software + is with You. Should any Covered Software prove defective in any respect, + You (not any Contributor) assume the cost of any necessary servicing, + repair, or correction. This disclaimer of warranty constitutes an essential + part of this License. No use of any Covered Software is authorized under + this License except under this disclaimer. + +7. Limitation of Liability + + Under no circumstances and under no legal theory, whether tort (including + negligence), contract, or otherwise, shall any Contributor, or anyone who + distributes Covered Software as permitted above, be liable to You for any + direct, indirect, special, incidental, or consequential damages of any + character including, without limitation, damages for lost profits, loss of + goodwill, work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses, even if such party shall have been + informed of the possibility of such damages. This limitation of liability + shall not apply to liability for death or personal injury resulting from + such party's negligence to the extent applicable law prohibits such + limitation. Some jurisdictions do not allow the exclusion or limitation of + incidental or consequential damages, so this exclusion and limitation may + not apply to You. + +8. Litigation + + Any litigation relating to this License may be brought only in the courts + of a jurisdiction where the defendant maintains its principal place of + business and such litigation shall be governed by laws of that + jurisdiction, without reference to its conflict-of-law provisions. Nothing + in this Section shall prevent a party's ability to bring cross-claims or + counter-claims. + +9. Miscellaneous + + This License represents the complete agreement concerning the subject + matter hereof. If any provision of this License is held to be + unenforceable, such provision shall be reformed only to the extent + necessary to make it enforceable. Any law or regulation which provides that + the language of a contract shall be construed against the drafter shall not + be used to construe this License against a Contributor. + + +10. Versions of the License + +10.1. New Versions + + Mozilla Foundation is the license steward. Except as provided in Section + 10.3, no one other than the license steward has the right to modify or + publish new versions of this License. Each version will be given a + distinguishing version number. + +10.2. Effect of New Versions + + You may distribute the Covered Software under the terms of the version + of the License under which You originally received the Covered Software, + or under the terms of any subsequent version published by the license + steward. + +10.3. Modified Versions + + If you create software not governed by this License, and you want to + create a new license for such software, you may create and use a + modified version of this License if you rename the license and remove + any references to the name of the license steward (except to note that + such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary + Licenses If You choose to distribute Source Code Form that is + Incompatible With Secondary Licenses under the terms of this version of + the License, the notice described in Exhibit B of this License must be + attached. + +Exhibit A - Source Code Form License Notice + + This Source Code Form is subject to the + terms of the Mozilla Public License, v. + 2.0. If a copy of the MPL was not + distributed with this file, You can + obtain one at + http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular file, +then You may include the notice in a location (such as a LICENSE file in a +relevant directory) where a recipient would be likely to look for such a +notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice + + This Source Code Form is "Incompatible + With Secondary Licenses", as defined by + the Mozilla Public License, v. 2.0. + +----------- + +The following npm packages may be included in this product: + + - readable-stream@2.3.8 + - readable-stream@3.6.2 + +These packages each contain the following license and notice below: + +Node.js is licensed for use as follows: + +""" +Copyright Node.js contributors. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to +deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +IN THE SOFTWARE. +""" + +This license applies to parts of Node.js originating from the +https://github.com/joyent/node repository: + +""" +Copyright Joyent, Inc. and other Node contributors. All rights reserved. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to +deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +IN THE SOFTWARE. +""" + +----------- + +The following npm packages may be included in this product: + + - string_decoder@1.1.1 + - string_decoder@1.3.0 + +These packages each contain the following license and notice below: + +Node.js is licensed for use as follows: + +""" +Copyright Node.js contributors. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to +deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +IN THE SOFTWARE. +""" + +This license applies to parts of Node.js originating from the +https://github.com/joyent/node repository: + +""" +Copyright Joyent, Inc. and other Node contributors. All rights reserved. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to +deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +IN THE SOFTWARE. +""" + +----------- + +The following npm package may be included in this product: + + - pngjs@5.0.0 + +This package contains the following license and notice below: + +pngjs2 original work Copyright (c) 2015 Luke Page & Original Contributors +pngjs derived work Copyright (c) 2012 Kuba Niegowski + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - estraverse@4.3.0 + - estraverse@5.3.0 + - esutils@2.0.3 + +These packages each contain the following license and notice below: + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----------- + +The following npm package may be included in this product: + + - hoist-non-react-statics@3.3.2 + +This package contains the following license and notice below: + +Software License Agreement (BSD License) +======================================== + +Copyright (c) 2015, Yahoo! Inc. All rights reserved. +---------------------------------------------------- + +Redistribution and use of this software in source and binary forms, with or +without modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of Yahoo! Inc. nor the names of YUI's contributors may be + used to endorse or promote products derived from this software without + specific prior written permission of Yahoo! Inc. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----------- + +The following npm package may be included in this product: + + - glob@10.3.12 + +This package contains the following license and notice below: + +The ISC License + +Copyright (c) 2009-2023 Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - lru-cache@10.2.2 + +This package contains the following license and notice below: + +The ISC License + +Copyright (c) 2010-2023 Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - graceful-fs@4.2.11 + +This package contains the following license and notice below: + +The ISC License + +Copyright (c) 2011-2022 Isaac Z. Schlueter, Ben Noordhuis, and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - minimatch@5.1.6 + - minimatch@9.0.4 + +These packages each contain the following license and notice below: + +The ISC License + +Copyright (c) 2011-2023 Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - signal-exit@4.1.0 + +This package contains the following license and notice below: + +The ISC License + +Copyright (c) 2015-2023 Benjamin Coe, Isaac Z. Schlueter, and Contributors + +Permission to use, copy, modify, and/or distribute this software +for any purpose with or without fee is hereby granted, provided +that the above copyright notice and this permission notice +appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE +LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES +OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - foreground-child@3.1.1 + +This package contains the following license and notice below: + +The ISC License + +Copyright (c) 2015-2023 Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - glob-parent@5.1.2 + +This package contains the following license and notice below: + +The ISC License + +Copyright (c) 2015, 2019 Elan Shanker + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - glob-parent@6.0.2 + +This package contains the following license and notice below: + +The ISC License + +Copyright (c) 2015, 2019 Elan Shanker, 2021 Blaine Bublitz , Eric Schoffstall and other contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - signal-exit@3.0.7 + +This package contains the following license and notice below: + +The ISC License + +Copyright (c) 2015, Contributors + +Permission to use, copy, modify, and/or distribute this software +for any purpose with or without fee is hereby granted, provided +that the above copyright notice and this permission notice +appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE +LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES +OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - minipass@7.0.4 + +This package contains the following license and notice below: + +The ISC License + +Copyright (c) 2017-2023 npm, Inc., Isaac Z. Schlueter, and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - anymatch@3.1.3 + +This package contains the following license and notice below: + +The ISC License + +Copyright (c) 2019 Elan Shanker, Paul Miller (https://paulmillr.com) + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - inflight@1.0.6 + +This package contains the following license and notice below: + +The ISC License + +Copyright (c) Isaac Z. Schlueter + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - inherits@2.0.3 + - inherits@2.0.4 + +These packages each contain the following license and notice below: + +The ISC License + +Copyright (c) Isaac Z. Schlueter + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - @trysound/sax@0.2.0 + - ini@1.3.8 + - isexe@2.0.0 + - lru-cache@5.1.1 + - lru-cache@6.0.0 + - minimatch@3.0.5 + - minimatch@3.1.2 + - once@1.4.0 + - rimraf@3.0.2 + - semver@6.3.1 + - semver@7.6.0 + - which@1.3.1 + - which@2.0.2 + - wrappy@1.0.2 + - yallist@3.1.1 + - yallist@4.0.0 + +These packages each contain the following license and notice below: + +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - fs.realpath@1.0.0 + +This package contains the following license and notice below: + +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +---- + +This library bundles a version of the `fs.realpath` and `fs.realpathSync` +methods from Node.js v0.10 under the terms of the Node.js MIT license. + +Node's license follows, also included at the header of `old.js` which contains +the licensed code: + + Copyright Joyent, Inc. and other Node contributors. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - glob@7.2.3 + +This package contains the following license and notice below: + +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +## Glob Logo + +Glob's logo created by Tanya Brassie , licensed +under a Creative Commons Attribution-ShareAlike 4.0 International License +https://creativecommons.org/licenses/by-sa/4.0/ + +----------- + +The following npm package may be included in this product: + + - sax@1.2.4 + +This package contains the following license and notice below: + +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +==== + +`String.fromCodePoint` by Mathias Bynens used according to terms of MIT +License, as follows: + + Copyright Mathias Bynens + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - at-least-node@1.0.0 + +This package contains the following license and notice below: + +The ISC License +Copyright (c) 2020 Ryan Zimmerman + +Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - big.js@5.2.2 + +This package contains the following license and notice below: + +The MIT Licence (Expat). + +Copyright (c) 2018 Michael Mclaughlin + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - decimal.js@10.4.3 + +This package contains the following license and notice below: + +The MIT Licence. + +Copyright (c) 2022 Michael Mclaughlin + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - commondir@1.0.1 + - shell-quote@1.8.1 + +These packages each contain the following license and notice below: + +The MIT License + +Copyright (c) 2013 James Halliday (mail@substack.net) + +Permission is hereby granted, free of charge, +to any person obtaining a copy of this software and +associated documentation files (the "Software"), to +deal in the Software without restriction, including +without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom +the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - @jridgewell/sourcemap-codec@1.4.15 + - sourcemap-codec@1.4.8 + +These packages each contain the following license and notice below: + +The MIT License + +Copyright (c) 2015 Rich Harris + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - proxy-from-env@1.1.0 + +This package contains the following license and notice below: + +The MIT License + +Copyright (C) 2016-2018 Rob Wu + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - node-releases@2.0.14 + +This package contains the following license and notice below: + +The MIT License + +Copyright (c) 2017 Sergey Rubanov (https://github.com/chicoxyzzy) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - connect-history-api-fallback@2.0.0 + +This package contains the following license and notice below: + +The MIT License + +Copyright (c) 2022 Ben Blackmore and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - loader-runner@4.3.0 + - tapable@1.1.3 + +These packages each contain the following license and notice below: + +The MIT License + +Copyright (c) Tobias Koppers @sokra + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - svgo@1.3.2 + +This package contains the following license and notice below: + +The MIT License + +Copyright © 2012–2016 Kir Belevich + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +Лицензия MIT + +Copyright © 2012–2016 Кир Белевич + +Данная лицензия разрешает лицам, получившим копию данного +программного обеспечения и сопутствующей документации +(в дальнейшем именуемыми «Программное Обеспечение»), безвозмездно +использовать Программное Обеспечение без ограничений, включая +неограниченное право на использование, копирование, изменение, +добавление, публикацию, распространение, сублицензирование +и/или продажу копий Программного Обеспечения, также как и лицам, +которым предоставляется данное Программное Обеспечение, +при соблюдении следующих условий: + +Указанное выше уведомление об авторском праве и данные условия +должны быть включены во все копии или значимые части данного +Программного Обеспечения. + +ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», +БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНО ВЫРАЖЕННЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, +ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ГАРАНТИЯМИ ТОВАРНОЙ ПРИГОДНОСТИ, +СООТВЕТСТВИЯ ПО ЕГО КОНКРЕТНОМУ НАЗНАЧЕНИЮ И ОТСУТСТВИЯ НАРУШЕНИЙ +ПРАВ. НИ В КАКОМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ +ОТВЕТСТВЕННОСТИ ПО ИСКАМ О ВОЗМЕЩЕНИИ УЩЕРБА, УБЫТКОВ ИЛИ ДРУГИХ +ТРЕБОВАНИЙ ПО ДЕЙСТВУЮЩИМ КОНТРАКТАМ, ДЕЛИКТАМ ИЛИ ИНОМУ, +ВОЗНИКШИМ ИЗ, ИМЕЮЩИМ ПРИЧИНОЙ ИЛИ СВЯЗАННЫМ С ПРОГРАММНЫМ +ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ +ИЛИ ИНЫМИ ДЕЙСТВИЯМИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ. + +----------- + +The following npm package may be included in this product: + + - tapable@2.2.1 + +This package contains the following license and notice below: + +The MIT License + +Copyright JS Foundation and other contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - recursive-readdir@2.2.3 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - mime@1.6.0 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2010 Benjamin Thomas, Robert Kieffer + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - uuid@8.3.2 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2010-2020 Robert Kieffer and other contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - ws@7.5.9 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2011 Einar Otto Stangvik + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - require-directory@2.1.1 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2011 Troy Goode + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - sockjs@0.3.24 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (C) 2011 VMware, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - jsonpointer@5.0.1 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2011-2015 Jan Lehnardt & Marc Bachmann + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - deepmerge@4.3.1 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2012 James Halliday, Josh Duff, and other contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - for-each@0.3.3 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2012 Raynos. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - qrcode@1.5.3 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2012 Ryan Day + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - sucrase@3.35.0 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2012-2018 various contributors (see AUTHORS) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - chokidar@3.6.0 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2012-2019 Paul Miller (https://paulmillr.com), Elan Shanker + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the “Software”), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - dom-converter@0.2.0 + - pretty-error@4.0.0 + +These packages each contain the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2013 Aria Minaei + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - object-keys@1.1.1 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (C) 2013 Jordan Harband + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - raw-body@2.5.2 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2013-2014 Jonathan Ong +Copyright (c) 2014-2022 Douglas Christopher Wilson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - utils-merge@1.0.1 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2013-2017 Jared Hanson + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - bluebird@3.7.2 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2013-2018 Petka Antonov + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - utila@0.4.0 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2014 Aria Minaei + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - eventemitter3@4.0.7 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2014 Arnout Kazemier + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - array-flatten@1.1.1 + - camel-case@4.1.2 + - capital-case@1.0.4 + - dot-case@3.0.4 + - lower-case@2.0.2 + - no-case@3.0.4 + - param-case@3.0.4 + - pascal-case@3.1.2 + - path-to-regexp@0.1.7 + - snake-case@3.0.4 + - upper-case-first@2.0.2 + +These packages each contain the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - is-core-module@2.13.1 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2014 Dave Justice + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - source-map-support@0.5.21 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2014 Evan Wallace + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - base64-js@1.5.1 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2014 Jameson Little + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - regexp.prototype.flags@1.5.2 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (C) 2014 Jordan Harband + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - object.assign@4.1.5 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2014 Jordan Harband + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - is-generator-function@1.0.10 + - is-negative-zero@2.0.3 + - is-regex@1.1.4 + +These packages each contain the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2014 Jordan Harband + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - postcss-calc@8.2.4 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2014 Maxime Thirouin + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - postcss-font-variant@5.0.0 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2014 Maxime Thirouin & Ian Storm Taylor + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - postcss-import@15.1.0 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2014 Maxime Thirouin, Jason Campbell & Kevin Mårtensson + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - object-hash@3.0.0 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2014 object-hash contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - postcss-media-minmax@5.0.0 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2014 PostCSS + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - caniuse-api@3.0.0 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2014 Sébastien Balayn + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - eslint-plugin-react@7.34.1 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2014 Yannick Croissant + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - is-extglob@2.1.1 + - word-wrap@1.2.5 + +These packages each contain the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2014-2016, Jon Schlinkert + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - is-glob@4.0.3 + - kind-of@6.0.3 + +These packages each contain the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2014-2017, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - braces@3.0.2 + - normalize-path@3.0.0 + +These packages each contain the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2014-2018, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - merge2@1.4.1 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2014-2020 Teambition + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - regex-parser@2.3.0 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2014-24 Ionică Bizău (https://ionicabizau.net) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - fill-range@7.0.1 + - is-number@7.0.0 + - micromatch@4.0.5 + - strip-comments@2.0.1 + +These packages each contain the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2014-present, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - js-tokens@4.0.0 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2014, 2015, 2016, 2017, 2018 Simon Lydell + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - loose-envify@1.4.0 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2015 Andres Suarez + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - renderkid@3.0.0 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2015 Aria Minaei + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - eslint-import-resolver-node@0.3.9 + - eslint-module-utils@2.8.1 + - eslint-plugin-import@2.29.1 + +These packages each contain the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2015 Ben Mosher + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - lines-and-columns@1.2.4 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2015 Brian Donovan + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - react-clientside-effect@1.2.6 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2015 Dan Abramov + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - cosmiconfig@6.0.0 + - cosmiconfig@7.1.0 + +These packages each contain the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2015 David Clark + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - dedent@0.7.0 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2015 Desmond Brand (dmnd@desmondbrand.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - path-parse@1.0.7 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2015 Javier Blanco + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - error-ex@1.3.2 + - is-arrayish@0.2.1 + +These packages each contain the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2015 JD Ballard + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - array-includes@3.1.8 + - define-properties@1.2.1 + +These packages each contain the following license and notice below: + +The MIT License (MIT) + +Copyright (C) 2015 Jordan Harband + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - es-abstract@1.23.3 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (C) 2015 Jordan Harband + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - string.prototype.trim@1.2.9 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2015 Jordan Harband + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - es-to-primitive@1.2.1 + - is-boolean-object@1.1.2 + - is-callable@1.2.7 + - is-date-object@1.0.5 + - is-number-object@1.0.7 + - is-string@1.0.7 + - is-symbol@1.0.4 + - is-typed-array@1.1.13 + - object.entries@1.1.8 + - object.getownpropertydescriptors@2.1.8 + - object.values@1.2.0 + - string.prototype.matchall@4.0.11 + - which-typed-array@1.1.15 + +These packages each contain the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2015 Jordan Harband + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - symbol-tree@3.2.4 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2015 Joris van der Wel + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - identity-obj-proxy@3.0.0 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2015 Keyan Zhang + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - multicast-dns@7.2.5 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2015 Mathias Buus + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - reusify@1.0.4 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2015 Matteo Collina + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - babel-plugin-transform-react-remove-prop-types@0.4.24 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2015 Nikita Gusakov + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - file-entry-cache@6.0.1 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2015 Roy Riojas + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - http-proxy-middleware@2.0.6 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2015 Steven Chim + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - querystringify@2.2.0 + - requires-port@1.0.0 + - url-parse@1.5.10 + +These packages each contain the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2015 Unshift.io, Arnout Kazemier, the Contributors. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - detect-port-alt@1.1.6 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2015 xdf + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - string-natural-compare@3.0.1 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2015-2016 Nathan Woltman + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - ajv@6.12.6 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2015-2017 Evgeny Poberezkin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - ajv@8.13.0 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2015-2021 Evgeny Poberezkin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - coa@2.0.2 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2015-present Sergey Berezhnoy + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - global-modules@2.0.0 + - global-prefix@3.0.0 + - to-regex-range@5.0.1 + +These packages each contain the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2015-present, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - whatwg-url@7.1.0 + - whatwg-url@8.7.0 + +These packages each contain the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2015–2016 Sebastian Mayr + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - asynckit@0.4.0 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2016 Alex Indigo + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - resolve-url-loader@4.0.0 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2016 Ben Holloway + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - ajv-keywords@3.5.2 + - ajv-keywords@5.1.0 + +These packages each contain the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2016 Evgeny Poberezkin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - object.hasown@1.1.4 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2016 Glen Mailer, Jordan Harband, and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - tsconfig-paths@3.15.0 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2016 Jonas Kello + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - function.prototype.name@1.1.6 + - globalthis@1.0.4 + +These packages each contain the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2016 Jordan Harband + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - dns-packet@5.6.1 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2016 Mathias Buus + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - tr46@1.0.1 + - tr46@2.1.0 + +These packages each contain the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2016 Sebastian Mayr + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - ci-info@3.9.0 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2016 Thomas Watson Steen + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - ms@2.0.0 + - ms@2.1.2 + +These packages each contain the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2016 Zeit, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - stack-utils@2.0.6 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2016-2022 Isaac Z. Schlueter , James Talmage (github.com/jamestalmage), and Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - unquote@1.1.1 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2017 Cameron Lakenen + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sub-license, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - psl@1.9.0 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2017 Lupo Montero lupomontero@gmail.com + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - postcss-selector-not@6.0.1 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2017 Maxime Thirouin + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - picomatch@2.3.1 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2017-present, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - launch-editor@2.6.1 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2017-present, Yuxi (Evan) You + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - framer-motion@11.2.0 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2018 Framer B.V. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - cross-spawn@7.0.3 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2018 Made With MOXY Lda + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - thunky@1.1.0 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2018 Mathias Buus + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - case-sensitive-paths-webpack-plugin@2.4.0 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2018 Michael Pratt + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - @popperjs/core@2.11.8 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2019 Federico Zivolo + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - @rollup/plugin-babel@5.3.1 + - @rollup/plugin-node-resolve@11.2.1 + - @rollup/plugin-replace@2.4.2 + - @rollup/pluginutils@3.1.0 + +These packages each contain the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2019 RollupJS Plugin Contributors (https://github.com/rollup/plugins/graphs/contributors) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - usehooks-ts@2.16.0 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2020 Julien CARON + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - ms@2.1.3 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2020 Vercel, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - is-async-function@2.0.0 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2021 Jordan Harband + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - arg@5.0.2 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2021 Vercel, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - i18next@21.10.0 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2022 i18next + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - i18next-browser-languagedetector@6.1.8 + - react-i18next@11.18.6 + +These packages each contain the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2022 i18next + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - snakecase-keys@8.0.1 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) Ben Drucker (bendrucker.me) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - webpack-manifest-plugin@4.1.1 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) Dane Thurber + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - @nodelib/fs.scandir@2.1.5 + - @nodelib/fs.stat@2.0.5 + - @nodelib/fs.walk@1.2.8 + - fast-glob@3.3.2 + +These packages each contain the following license and notice below: + +The MIT License (MIT) + +Copyright (c) Denis Malinochkin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - safe-buffer@5.1.2 + - safe-buffer@5.2.1 + - typedarray-to-buffer@3.1.5 + +These packages each contain the following license and notice below: + +The MIT License (MIT) + +Copyright (c) Feross Aboukhadijeh + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - queue-microtask@1.2.3 + - run-parallel@1.2.0 + +These packages each contain the following license and notice below: + +The MIT License (MIT) + +Copyright (c) Feross Aboukhadijeh + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - normalize-range@0.1.2 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) James Talmage (github.com/jamestalmage) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - moment-timezone@0.5.45 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) JS Foundation and other contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - dequal@2.0.3 + - kleur@3.0.3 + - resolve.exports@1.1.1 + +These packages each contain the following license and notice below: + +The MIT License (MIT) + +Copyright (c) Luke Edwards (lukeed.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - flat-cache@3.2.0 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) Roy Riojas and Jared Wray + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - decamelize@1.2.0 + - escape-string-regexp@1.0.5 + - is-obj@1.0.1 + - object-assign@4.1.1 + - path-exists@3.0.0 + - path-is-absolute@1.0.1 + - pify@2.3.0 + - strip-bom@3.0.0 + +These packages each contain the following license and notice below: + +The MIT License (MIT) + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - merge-stream@2.0.0 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) Stephen Sugden (stephensugden.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - camelcase-css@2.0.1 + - relateurl@0.2.7 + +These packages each contain the following license and notice below: + +The MIT License (MIT) + +Copyright (c) Steven Vachon (svachon.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - require-from-string@2.0.2 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) Vsevolod Strukchinsky (github.com/floatdrop) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - bonjour-service@1.2.1 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (https://github.com/onlxltd/bonjour-service) (c) 2021 ON LX Limited + +Portions Copyright (Bonjour - https://github.com/watson/bonjour) (c) 2015-2016 Thomas Watson Steen + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - emojis-list@3.0.0 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright © 2015 Kiko Beats + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - autoprefixer@10.4.19 + - postcss@7.0.39 + - postcss@8.4.38 + +These packages each contain the following license and notice below: + +The MIT License (MIT) + +Copyright 2013 Andrey Sitnik + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - postcss-nested@6.0.1 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright 2014 Andrey Sitnik + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - browserslist@4.23.0 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright 2014 Andrey Sitnik and other contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - @babel/regjsgen@0.8.0 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright 2014-2020 Benjamin Tan + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - postcss-js@4.0.1 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright 2015 Andrey Sitnik + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - postcss-minify-params@5.1.4 + - postcss-normalize-charset@5.1.0 + +These packages each contain the following license and notice below: + +The MIT License (MIT) + +Copyright 2015 Bogdan Chadkin + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - postcss-flexbugs-fixes@5.0.2 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright 2015 Luis Rudge + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - postcss-initial@4.0.1 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright 2015 Maksim Koretskiy + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - postcss-modules-local-by-default@4.0.5 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright 2015 Mark Dalgleish + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - read-cache@1.0.0 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright 2016 Bogdan Chadkin + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - postcss-discard-overridden@5.1.0 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright 2016 Justineo + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - nanoid@3.3.7 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright 2017 Andrey Sitnik + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - postcss-page-break@3.0.4 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright 2017 AUTHOR_NAME + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - rollup-plugin-terser@7.0.2 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright 2018 Bogdan Chadkin + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - postcss-attribute-case-insensitive@5.0.2 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright 2020 Dmitry Semigradsky + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - postcss-clamp@4.1.0 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright 2020 Ivan Menshykov + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - update-browserslist-db@1.0.16 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright 2022 Andrey Sitnik and other contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - postcss-load-config@4.0.2 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright Michael Ciniawsky + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - w3c-xmlserializer@2.0.0 + +This package contains the following license and notice below: + +The MIT License (MIT) +===================== + +Copyright © 2016 Sebastian Mayr + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the “Software”), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - eslint-plugin-jsx-a11y@6.8.0 + - jsx-ast-utils@3.3.5 + +These packages each contain the following license and notice below: + +The MIT License (MIT) +Copyright (c) 2016 Ethan Cohen + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - babel-plugin-macros@3.1.0 + +This package contains the following license and notice below: + +The MIT License (MIT) +Copyright (c) 2020 Kent C. Dodds + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - tsutils@3.21.0 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2017 Klaus Meinhardt + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - postcss-replace-overflow-wrap@4.0.0 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright 2016 Matthias Müller + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - color-name@1.1.3 + - color-name@1.1.4 + +These packages each contain the following license and notice below: + +The MIT License (MIT) +Copyright (c) 2015 Dmitry Ivanov + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - adjust-sourcemap-loader@4.0.0 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2019 Ben Holloway + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - fs-monkey@1.0.6 + - memfs@3.5.3 + +These packages each contain the following license and notice below: + +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to + +----------- + +The following npm package may be included in this product: + + - address@1.2.2 + +This package contains the following license and notice below: + +This software is licensed under the MIT License. + +Copyright (C) 2013 - 2014 fengmk2 +Copyright (C) 2015 - present node-modules and other contributors. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - fast-json-stable-stringify@2.1.0 + +This package contains the following license and notice below: + +This software is released under the MIT license: + +Copyright (c) 2017 Evgeny Poberezkin +Copyright (c) 2013 James Halliday + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - concat-map@0.0.1 + - is-typedarray@1.0.0 + - json-stable-stringify-without-jsonify@1.0.1 + - minimist@1.2.8 + - static-eval@2.0.2 + - text-table@0.2.0 + +These packages each contain the following license and notice below: + +This software is released under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - @sinclair/typebox@0.24.51 + +This package contains the following license and notice below: + +TypeBox: JSON Schema Type Builder with Static Type Resolution for TypeScript + +The MIT License (MIT) + +Copyright (c) 2022 Haydn Paterson (sinclair) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - @typescript-eslint/parser@5.62.0 + +This package contains the following license and notice below: + +TypeScript ESLint Parser +Copyright JS Foundation and other contributors, https://js.foundation + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +- Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +- Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----------- + +The following npm package may be included in this product: + + - @typescript-eslint/typescript-estree@5.62.0 + +This package contains the following license and notice below: + +TypeScript ESTree + +Originally extracted from: + +TypeScript ESLint Parser +Copyright JS Foundation and other contributors, https://js.foundation + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +- Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +- Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----------- + +The following npm package may be included in this product: + + - node-forge@1.3.1 + +This package contains the following license and notice below: + +You may use the Forge project under the terms of either the BSD License or the +GNU General Public License (GPL) Version 2. + +The BSD License is recommended for most projects. It is simple and easy to +understand and it places almost no restrictions on what you can do with the +Forge project. + +If the GPL suits your project better you are also free to use Forge under +that license. + +You don't have to do anything special to choose one license or the other and +you don't have to notify anyone which license you are using. You are free to +use this project in commercial projects as long as the copyright header is +left intact. + +If you are a commercial entity and use this set of libraries in your +commercial software then reasonable payment to Digital Bazaar, if you can +afford it, is not required but is expected and would be appreciated. If this +library saves you time, then it's saving you money. The cost of developing +the Forge software was on the order of several hundred hours and tens of +thousands of dollars. We are attempting to strike a balance between helping +the development community while not being taken advantage of by lucrative +commercial entities for our efforts. + +------------------------------------------------------------------------------- +New BSD License (3-clause) +Copyright (c) 2010, Digital Bazaar, Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Digital Bazaar, Inc. nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL DIGITAL BAZAAR BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +------------------------------------------------------------------------------- + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + +----------- + +This file was generated with the generate-license-file npm package! +https://www.npmjs.com/package/generate-license-file diff --git a/lerna.json b/lerna.json deleted file mode 100644 index f6604bd..0000000 --- a/lerna.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "$schema": "node_modules/lerna/schemas/lerna-schema.json", - "version": "0.0.0" -} diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 34e3eb1..0000000 --- a/package-lock.json +++ /dev/null @@ -1,7818 +0,0 @@ -{ - "name": "root", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "root", - "workspaces": [ - "packages/*" - ], - "devDependencies": { - "lerna": "^8.1.2" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", - "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.24.2", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz", - "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz", - "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.24.5", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "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, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@hutson/parse-repository-url": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", - "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/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==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/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==", - "dev": true - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "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/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "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/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "dev": true, - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@lerna/create": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/@lerna/create/-/create-8.1.2.tgz", - "integrity": "sha512-GzScCIkAW3tg3+Yn/MKCH9963bzG+zpjGz2NdfYDlYWI7p0f/SH46v1dqpPpYmZ2E/m3JK8HjTNNNL8eIm8/YQ==", - "dev": true, - "dependencies": { - "@npmcli/run-script": "7.0.2", - "@nx/devkit": ">=17.1.2 < 19", - "@octokit/plugin-enterprise-rest": "6.0.1", - "@octokit/rest": "19.0.11", - "byte-size": "8.1.1", - "chalk": "4.1.0", - "clone-deep": "4.0.1", - "cmd-shim": "6.0.1", - "columnify": "1.6.0", - "conventional-changelog-core": "5.0.1", - "conventional-recommended-bump": "7.0.1", - "cosmiconfig": "^8.2.0", - "dedent": "0.7.0", - "execa": "5.0.0", - "fs-extra": "^11.1.1", - "get-stream": "6.0.0", - "git-url-parse": "13.1.0", - "glob-parent": "5.1.2", - "globby": "11.1.0", - "graceful-fs": "4.2.11", - "has-unicode": "2.0.1", - "ini": "^1.3.8", - "init-package-json": "5.0.0", - "inquirer": "^8.2.4", - "is-ci": "3.0.1", - "is-stream": "2.0.0", - "js-yaml": "4.1.0", - "libnpmpublish": "7.3.0", - "load-json-file": "6.2.0", - "lodash": "^4.17.21", - "make-dir": "4.0.0", - "minimatch": "3.0.5", - "multimatch": "5.0.0", - "node-fetch": "2.6.7", - "npm-package-arg": "8.1.1", - "npm-packlist": "5.1.1", - "npm-registry-fetch": "^14.0.5", - "npmlog": "^6.0.2", - "nx": ">=17.1.2 < 19", - "p-map": "4.0.0", - "p-map-series": "2.1.0", - "p-queue": "6.6.2", - "p-reduce": "^2.1.0", - "pacote": "^17.0.5", - "pify": "5.0.0", - "read-cmd-shim": "4.0.0", - "read-package-json": "6.0.4", - "resolve-from": "5.0.0", - "rimraf": "^4.4.1", - "semver": "^7.3.4", - "signal-exit": "3.0.7", - "slash": "^3.0.0", - "ssri": "^9.0.1", - "strong-log-transformer": "2.1.0", - "tar": "6.1.11", - "temp-dir": "1.0.0", - "upath": "2.0.1", - "uuid": "^9.0.0", - "validate-npm-package-license": "^3.0.4", - "validate-npm-package-name": "5.0.0", - "write-file-atomic": "5.0.1", - "write-pkg": "4.0.0", - "yargs": "17.7.2", - "yargs-parser": "21.1.1" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "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, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "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, - "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, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@npmcli/agent": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.2.tgz", - "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==", - "dev": true, - "dependencies": { - "agent-base": "^7.1.0", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.1", - "lru-cache": "^10.0.1", - "socks-proxy-agent": "^8.0.3" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/agent/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/@npmcli/fs": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", - "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", - "dev": true, - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/git": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.6.tgz", - "integrity": "sha512-4x/182sKXmQkf0EtXxT26GEsaOATpD7WVtza5hrYivWZeo6QefC6xq9KAXrnjtFKBZ4rZwR7aX/zClYYXgtwLw==", - "dev": true, - "dependencies": { - "@npmcli/promise-spawn": "^7.0.0", - "lru-cache": "^10.0.1", - "npm-pick-manifest": "^9.0.0", - "proc-log": "^4.0.0", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.5", - "which": "^4.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/git/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/@npmcli/git/node_modules/proc-log": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", - "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/installed-package-contents": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz", - "integrity": "sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==", - "dev": true, - "dependencies": { - "npm-bundled": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "bin": { - "installed-package-contents": "bin/index.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/installed-package-contents/node_modules/npm-bundled": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.0.tgz", - "integrity": "sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==", - "dev": true, - "dependencies": { - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/installed-package-contents/node_modules/npm-normalize-package-bin": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", - "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/node-gyp": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", - "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/promise-spawn": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.1.tgz", - "integrity": "sha512-P4KkF9jX3y+7yFUxgcUdDtLy+t4OlDGuEBLNs57AZsfSfg+uV6MLndqGpnl4831ggaEdXwR50XFoZP4VFtHolg==", - "dev": true, - "dependencies": { - "which": "^4.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/redact": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-1.1.0.tgz", - "integrity": "sha512-PfnWuOkQgu7gCbnSsAisaX7hKOdZ4wSAhAzH3/ph5dSGau52kCRrMMGbiSQLwyTZpgldkZ49b0brkOr1AzGBHQ==", - "dev": true, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/run-script": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-7.0.2.tgz", - "integrity": "sha512-Omu0rpA8WXvcGeY6DDzyRoY1i5DkCBkzyJ+m2u7PD6quzb0TvSqdIPOkTn8ZBOj7LbbcbMfZ3c5skwSu6m8y2w==", - "dev": true, - "dependencies": { - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/promise-spawn": "^7.0.0", - "node-gyp": "^10.0.0", - "read-package-json-fast": "^3.0.0", - "which": "^4.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@nrwl/devkit": { - "version": "18.3.4", - "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-18.3.4.tgz", - "integrity": "sha512-Fty9Huqm12OYueU3uLJl3uvBUl5BvEyPfvw8+rLiNx9iftdEattM8C+268eAbIRRSLSOVXlWsJH4brlc6QZYYw==", - "dev": true, - "dependencies": { - "@nx/devkit": "18.3.4" - } - }, - "node_modules/@nrwl/tao": { - "version": "18.3.4", - "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-18.3.4.tgz", - "integrity": "sha512-+7KsDYmGj1cvNaXZcjSYOPN1h17hsGFBtVX7MqnpJLLkQTUhKg2rQxqyluzshJ+RoDUVtYPGyHg1AizlB66RIA==", - "dev": true, - "dependencies": { - "nx": "18.3.4", - "tslib": "^2.3.0" - }, - "bin": { - "tao": "index.js" - } - }, - "node_modules/@nx/devkit": { - "version": "18.3.4", - "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-18.3.4.tgz", - "integrity": "sha512-M3htxl5WvlNKK5KNOndCAApbyBCZNTFFs+rtdwvudNZk5+84zAAPaWzSoX9C4XLAW78/f98LzF68/ch05aN12A==", - "dev": true, - "dependencies": { - "@nrwl/devkit": "18.3.4", - "ejs": "^3.1.7", - "enquirer": "~2.3.6", - "ignore": "^5.0.4", - "semver": "^7.5.3", - "tmp": "~0.2.1", - "tslib": "^2.3.0", - "yargs-parser": "21.1.1" - }, - "peerDependencies": { - "nx": ">= 16 <= 19" - } - }, - "node_modules/@nx/nx-darwin-arm64": { - "version": "18.3.4", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-18.3.4.tgz", - "integrity": "sha512-MOGk9z4fIoOkJB68diH3bwoWrC8X9IzMNsz1mu0cbVfgCRAfIV3b+lMsiwQYzWal3UWW5DE5Rkss4F8whiV5Uw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-darwin-x64": { - "version": "18.3.4", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-18.3.4.tgz", - "integrity": "sha512-tSzPRnNB3QdPM+KYiIuRCUtyCwcuIRC95FfP0ZB3WvfDeNxJChEAChNqmCMDE4iFvZhGuze8WqkJuIVdte+lyQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-freebsd-x64": { - "version": "18.3.4", - "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-18.3.4.tgz", - "integrity": "sha512-bjSPak/d+bcR95/pxHMRhnnpHc6MnrQcG6f5AjX15Esm4JdrdQKPBmG1RybuK0WKSyD5wgVhkAGc/QQUom9l8g==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-linux-arm-gnueabihf": { - "version": "18.3.4", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-18.3.4.tgz", - "integrity": "sha512-/1HnUL7jhH0S7PxJqf6R1pk3QlAU22GY89EQV9fd+RDUtp7IyzaTlkebijTIqfxlSjC4OO3bPizaxEaxdd3uKQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-linux-arm64-gnu": { - "version": "18.3.4", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-18.3.4.tgz", - "integrity": "sha512-g/2IaB2bZTKaBNPEf9LxtIXb1XHdhh3VO9PnePIrwkkixPMLN0dTxT5Sttt75lvLP3EU1AUR5w3Aaz2Q1mYtWA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-linux-arm64-musl": { - "version": "18.3.4", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-18.3.4.tgz", - "integrity": "sha512-MgfKLoEF6I1cCS+0ooFLEjJSSVdCYyCT9Q96IHRJntAEL8u/0GR2OUoBoLC+q1lnbIkJr/uqTJxA2Jh+sJTIbA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-linux-x64-gnu": { - "version": "18.3.4", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-18.3.4.tgz", - "integrity": "sha512-vbHxv7m3gjthBvw50EYCtgyY0Zg5nVTaQtX+wRsmKybV2i7wHbw5zIe1aL4zHUm6TcPGbIQK+utVM+hyCqKHVA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-linux-x64-musl": { - "version": "18.3.4", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-18.3.4.tgz", - "integrity": "sha512-qIJKJCYFRLVSALsvg3avjReOjuYk91Q0hFXMJ2KaEM1Y3tdzcFN0fKBiaHexgbFIUk8zJuS4dJObTqSYMXowbg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-win32-arm64-msvc": { - "version": "18.3.4", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-18.3.4.tgz", - "integrity": "sha512-UxC8mRkFTPdZbKFprZkiBqVw8624xU38kI0xyooxKlFpt5lccTBwJ0B7+R8p1RoWyvh2DSyFI9VvfD7lczg1lA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-win32-x64-msvc": { - "version": "18.3.4", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-18.3.4.tgz", - "integrity": "sha512-/RqEjNU9hxIBxRLafCNKoH3SaB2FShf+1ZnIYCdAoCZBxLJebDpnhiyrVs0lPnMj9248JbizEMdJj1+bs/bXig==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@octokit/auth-token": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.4.tgz", - "integrity": "sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ==", - "dev": true, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/core": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.2.4.tgz", - "integrity": "sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ==", - "dev": true, - "dependencies": { - "@octokit/auth-token": "^3.0.0", - "@octokit/graphql": "^5.0.0", - "@octokit/request": "^6.0.0", - "@octokit/request-error": "^3.0.0", - "@octokit/types": "^9.0.0", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/endpoint": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.6.tgz", - "integrity": "sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg==", - "dev": true, - "dependencies": { - "@octokit/types": "^9.0.0", - "is-plain-object": "^5.0.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/graphql": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.6.tgz", - "integrity": "sha512-Fxyxdy/JH0MnIB5h+UQ3yCoh1FG4kWXfFKkpWqjZHw/p+Kc8Y44Hu/kCgNBT6nU1shNumEchmW/sUO1JuQnPcw==", - "dev": true, - "dependencies": { - "@octokit/request": "^6.0.0", - "@octokit/types": "^9.0.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/openapi-types": { - "version": "18.1.1", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.1.1.tgz", - "integrity": "sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw==", - "dev": true - }, - "node_modules/@octokit/plugin-enterprise-rest": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz", - "integrity": "sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw==", - "dev": true - }, - "node_modules/@octokit/plugin-paginate-rest": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.1.2.tgz", - "integrity": "sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ==", - "dev": true, - "dependencies": { - "@octokit/tsconfig": "^1.0.2", - "@octokit/types": "^9.2.3" - }, - "engines": { - "node": ">= 14" - }, - "peerDependencies": { - "@octokit/core": ">=4" - } - }, - "node_modules/@octokit/plugin-request-log": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", - "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", - "dev": true, - "peerDependencies": { - "@octokit/core": ">=3" - } - }, - "node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.2.3.tgz", - "integrity": "sha512-I5Gml6kTAkzVlN7KCtjOM+Ruwe/rQppp0QU372K1GP7kNOYEKe8Xn5BW4sE62JAHdwpq95OQK/qGNyKQMUzVgA==", - "dev": true, - "dependencies": { - "@octokit/types": "^10.0.0" - }, - "engines": { - "node": ">= 14" - }, - "peerDependencies": { - "@octokit/core": ">=3" - } - }, - "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-10.0.0.tgz", - "integrity": "sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg==", - "dev": true, - "dependencies": { - "@octokit/openapi-types": "^18.0.0" - } - }, - "node_modules/@octokit/request": { - "version": "6.2.8", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.8.tgz", - "integrity": "sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw==", - "dev": true, - "dependencies": { - "@octokit/endpoint": "^7.0.0", - "@octokit/request-error": "^3.0.0", - "@octokit/types": "^9.0.0", - "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.7", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/request-error": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz", - "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==", - "dev": true, - "dependencies": { - "@octokit/types": "^9.0.0", - "deprecation": "^2.0.0", - "once": "^1.4.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/rest": { - "version": "19.0.11", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.11.tgz", - "integrity": "sha512-m2a9VhaP5/tUw8FwfnW2ICXlXpLPIqxtg3XcAiGMLj/Xhw3RSBfZ8le/466ktO1Gcjr8oXudGnHhxV1TXJgFxw==", - "dev": true, - "dependencies": { - "@octokit/core": "^4.2.1", - "@octokit/plugin-paginate-rest": "^6.1.2", - "@octokit/plugin-request-log": "^1.0.4", - "@octokit/plugin-rest-endpoint-methods": "^7.1.2" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/tsconfig": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@octokit/tsconfig/-/tsconfig-1.0.2.tgz", - "integrity": "sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA==", - "dev": true - }, - "node_modules/@octokit/types": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", - "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", - "dev": true, - "dependencies": { - "@octokit/openapi-types": "^18.0.0" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@sigstore/bundle": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-1.1.0.tgz", - "integrity": "sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog==", - "dev": true, - "dependencies": { - "@sigstore/protobuf-specs": "^0.2.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/core": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-1.1.0.tgz", - "integrity": "sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==", - "dev": true, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/protobuf-specs": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.2.1.tgz", - "integrity": "sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/sign": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-1.0.0.tgz", - "integrity": "sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA==", - "dev": true, - "dependencies": { - "@sigstore/bundle": "^1.1.0", - "@sigstore/protobuf-specs": "^0.2.0", - "make-fetch-happen": "^11.0.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/sign/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==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/@sigstore/sign/node_modules/cacache": { - "version": "17.1.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.1.4.tgz", - "integrity": "sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==", - "dev": true, - "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^7.7.1", - "minipass": "^7.0.3", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/sign/node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@sigstore/sign/node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@sigstore/sign/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@sigstore/sign/node_modules/make-fetch-happen": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", - "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", - "dev": true, - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/sign/node_modules/make-fetch-happen/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@sigstore/sign/node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@sigstore/sign/node_modules/minipass-collect/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@sigstore/sign/node_modules/socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", - "dev": true, - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@sigstore/sign/node_modules/ssri": { - "version": "10.0.5", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", - "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", - "dev": true, - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/tuf": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-1.0.3.tgz", - "integrity": "sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg==", - "dev": true, - "dependencies": { - "@sigstore/protobuf-specs": "^0.2.0", - "tuf-js": "^1.1.7" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/verify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.2.0.tgz", - "integrity": "sha512-hQF60nc9yab+Csi4AyoAmilGNfpXT+EXdBgFkP9OgPwIBPwyqVf7JAWPtmqrrrneTmAT6ojv7OlH1f6Ix5BG4Q==", - "dev": true, - "dependencies": { - "@sigstore/bundle": "^2.3.1", - "@sigstore/core": "^1.1.0", - "@sigstore/protobuf-specs": "^0.3.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/verify/node_modules/@sigstore/bundle": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.3.1.tgz", - "integrity": "sha512-eqV17lO3EIFqCWK3969Rz+J8MYrRZKw9IBHpSo6DEcEX2c+uzDFOgHE9f2MnyDpfs48LFO4hXmk9KhQ74JzU1g==", - "dev": true, - "dependencies": { - "@sigstore/protobuf-specs": "^0.3.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/verify/node_modules/@sigstore/protobuf-specs": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.1.tgz", - "integrity": "sha512-aIL8Z9NsMr3C64jyQzE0XlkEyBLpgEJJFDHLVVStkFV5Q3Il/r/YtY6NJWKQ4cy4AE7spP1IX5Jq7VCAxHHMfQ==", - "dev": true, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true - }, - "node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tufjs/canonical-json": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-1.0.0.tgz", - "integrity": "sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@tufjs/models": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-1.0.4.tgz", - "integrity": "sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==", - "dev": true, - "dependencies": { - "@tufjs/canonical-json": "1.0.0", - "minimatch": "^9.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@tufjs/models/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==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@tufjs/models/node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", - "dev": true - }, - "node_modules/@types/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", - "dev": true - }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", - "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", - "dev": true - }, - "node_modules/@yarnpkg/lockfile": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", - "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", - "dev": true - }, - "node_modules/@yarnpkg/parsers": { - "version": "3.0.0-rc.46", - "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.0-rc.46.tgz", - "integrity": "sha512-aiATs7pSutzda/rq8fnuPwTglyVwjM22bNnK2ZgjrpAjQHSSl3lztd2f9evst1W/qnC58DRz7T7QndUDumAR4Q==", - "dev": true, - "dependencies": { - "js-yaml": "^3.10.0", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=14.15.0" - } - }, - "node_modules/@yarnpkg/parsers/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/@yarnpkg/parsers/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==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@yarnpkg/parsers/node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "node_modules/@zkochan/js-yaml": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/@zkochan/js-yaml/-/js-yaml-0.0.6.tgz", - "integrity": "sha512-nzvgl3VfhcELQ8LyVrYOru+UtAy1nrygk2+AGbTm8a5YcO6o8lSjAT+pfg3vJWxIoZKOUhrK6UU7xW/+00kQrg==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/abbrev": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", - "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/add-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", - "integrity": "sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==", - "dev": true - }, - "node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", - "dev": true, - "dependencies": { - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/agentkeepalive": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", - "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", - "dev": true, - "dependencies": { - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 8.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, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "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, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "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, - "engines": { - "node": ">=8" - } - }, - "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==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "dev": true - }, - "node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dev": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "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==", - "dev": true - }, - "node_modules/array-differ": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", - "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/array-ify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", - "dev": true - }, - "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, - "engines": { - "node": ">=8" - } - }, - "node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/async": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", - "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", - "dev": true - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, - "node_modules/axios": { - "version": "1.6.8", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", - "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", - "dev": true, - "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/before-after-hook": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", - "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", - "dev": true - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/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, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "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, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/builtins": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz", - "integrity": "sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==", - "dev": true, - "dependencies": { - "semver": "^7.0.0" - } - }, - "node_modules/byte-size": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-8.1.1.tgz", - "integrity": "sha512-tUkzZWK0M/qdoLEqikxBWe4kumyuwjl3HO6zHTr4yEI23EojPtLYXdG1+AQY7MN0cGyNDvEaJ8wiYQm6P2bPxg==", - "dev": true, - "engines": { - "node": ">=12.17" - } - }, - "node_modules/cacache": { - "version": "18.0.2", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.2.tgz", - "integrity": "sha512-r3NU8h/P+4lVUHfeRw1dtgQYar3DZMm4/cm2bZgOvrFC/su7budSOeqh52VJIC4U4iG1WWwV6vRW0znqBvxNuw==", - "dev": true, - "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^10.0.1", - "minipass": "^7.0.3", - "minipass-collect": "^2.0.1", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/cacache/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/cacache/node_modules/ssri": { - "version": "10.0.5", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", - "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", - "dev": true, - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "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, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "engines": { - "node": ">=8" - } - }, - "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, - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-spinners": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", - "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/cliui/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, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/clone-deep/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cmd-shim": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-6.0.1.tgz", - "integrity": "sha512-S9iI9y0nKR4hwEQsVWpyxld/6kRfGepGfzff83FcaiEBpmvlbA2nnGe7Cylgrx2f/p1P5S5wpRm9oL8z1PbS3Q==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "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==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "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==", - "dev": true - }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true, - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/columnify": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.6.0.tgz", - "integrity": "sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==", - "dev": true, - "dependencies": { - "strip-ansi": "^6.0.1", - "wcwidth": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "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==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/compare-func": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", - "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", - "dev": true, - "dependencies": { - "array-ify": "^1.0.0", - "dot-prop": "^5.1.0" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/concat-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", - "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", - "dev": true, - "engines": [ - "node >= 6.0" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.0.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "dev": true - }, - "node_modules/conventional-changelog-angular": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz", - "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==", - "dev": true, - "dependencies": { - "compare-func": "^2.0.0" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/conventional-changelog-core": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-5.0.1.tgz", - "integrity": "sha512-Rvi5pH+LvgsqGwZPZ3Cq/tz4ty7mjijhr3qR4m9IBXNbxGGYgTVVO+duXzz9aArmHxFtwZ+LRkrNIMDQzgoY4A==", - "dev": true, - "dependencies": { - "add-stream": "^1.0.0", - "conventional-changelog-writer": "^6.0.0", - "conventional-commits-parser": "^4.0.0", - "dateformat": "^3.0.3", - "get-pkg-repo": "^4.2.1", - "git-raw-commits": "^3.0.0", - "git-remote-origin-url": "^2.0.0", - "git-semver-tags": "^5.0.0", - "normalize-package-data": "^3.0.3", - "read-pkg": "^3.0.0", - "read-pkg-up": "^3.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/conventional-changelog-preset-loader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-3.0.0.tgz", - "integrity": "sha512-qy9XbdSLmVnwnvzEisjxdDiLA4OmV3o8db+Zdg4WiFw14fP3B6XNz98X0swPPpkTd/pc1K7+adKgEDM1JCUMiA==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/conventional-changelog-writer": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-6.0.1.tgz", - "integrity": "sha512-359t9aHorPw+U+nHzUXHS5ZnPBOizRxfQsWT5ZDHBfvfxQOAik+yfuhKXG66CN5LEWPpMNnIMHUTCKeYNprvHQ==", - "dev": true, - "dependencies": { - "conventional-commits-filter": "^3.0.0", - "dateformat": "^3.0.3", - "handlebars": "^4.7.7", - "json-stringify-safe": "^5.0.1", - "meow": "^8.1.2", - "semver": "^7.0.0", - "split": "^1.0.1" - }, - "bin": { - "conventional-changelog-writer": "cli.js" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/conventional-commits-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-3.0.0.tgz", - "integrity": "sha512-1ymej8b5LouPx9Ox0Dw/qAO2dVdfpRFq28e5Y0jJEU8ZrLdy0vOSkkIInwmxErFGhg6SALro60ZrwYFVTUDo4Q==", - "dev": true, - "dependencies": { - "lodash.ismatch": "^4.4.0", - "modify-values": "^1.0.1" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/conventional-commits-parser": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-4.0.0.tgz", - "integrity": "sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==", - "dev": true, - "dependencies": { - "is-text-path": "^1.0.1", - "JSONStream": "^1.3.5", - "meow": "^8.1.2", - "split2": "^3.2.2" - }, - "bin": { - "conventional-commits-parser": "cli.js" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/conventional-recommended-bump": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-7.0.1.tgz", - "integrity": "sha512-Ft79FF4SlOFvX4PkwFDRnaNiIVX7YbmqGU0RwccUaiGvgp3S0a8ipR2/Qxk31vclDNM+GSdJOVs2KrsUCjblVA==", - "dev": true, - "dependencies": { - "concat-stream": "^2.0.0", - "conventional-changelog-preset-loader": "^3.0.0", - "conventional-commits-filter": "^3.0.0", - "conventional-commits-parser": "^4.0.0", - "git-raw-commits": "^3.0.0", - "git-semver-tags": "^5.0.0", - "meow": "^8.1.2" - }, - "bin": { - "conventional-recommended-bump": "cli.js" - }, - "engines": { - "node": ">=14" - } - }, - "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==", - "dev": true - }, - "node_modules/cosmiconfig": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", - "dev": true, - "dependencies": { - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "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==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cross-spawn/node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/cross-spawn/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/dargs": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", - "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/dateformat": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decamelize-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", - "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", - "dev": true, - "dependencies": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decamelize-keys/node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true - }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "dev": true, - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "dev": true - }, - "node_modules/deprecation": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", - "dev": true - }, - "node_modules/detect-indent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", - "integrity": "sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "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, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dotenv": { - "version": "16.3.2", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.2.tgz", - "integrity": "sha512-HTlk5nmhkm8F6JcdXvHIzaorzCoziNQT9mGxLPVXW8wJF1TiGSL60ZGB4gHWabHOaMmWmhvk2/lPHfnBiT78AQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/motdotla/dotenv?sponsor=1" - } - }, - "node_modules/dotenv-expand": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-10.0.0.tgz", - "integrity": "sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, - "node_modules/ejs": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", - "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", - "dev": true, - "dependencies": { - "jake": "^10.8.5" - }, - "bin": { - "ejs": "bin/cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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 - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", - "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", - "dev": true, - "bin": { - "envinfo": "dist/cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true - }, - "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==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.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==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, - "node_modules/execa": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz", - "integrity": "sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/exponential-backoff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", - "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", - "dev": true - }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/external-editor/node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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==", - "dev": true, - "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==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/filelist/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "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, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true, - "bin": { - "flat": "cli.js" - } - }, - "node_modules/follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/fs-minipass": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", - "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", - "dev": true, - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dev": true, - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.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==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-pkg-repo": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz", - "integrity": "sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==", - "dev": true, - "dependencies": { - "@hutson/parse-repository-url": "^3.0.0", - "hosted-git-info": "^4.0.0", - "through2": "^2.0.0", - "yargs": "^16.2.0" - }, - "bin": { - "get-pkg-repo": "src/cli.js" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-pkg-repo/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/get-pkg-repo/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, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/get-pkg-repo/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "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" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/get-pkg-repo/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/get-port": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", - "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-stream": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.0.tgz", - "integrity": "sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/git-raw-commits": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-3.0.0.tgz", - "integrity": "sha512-b5OHmZ3vAgGrDn/X0kS+9qCfNKWe4K/jFnhwzVWWg0/k5eLa3060tZShrRg8Dja5kPc+YjS0Gc6y7cRr44Lpjw==", - "dev": true, - "dependencies": { - "dargs": "^7.0.0", - "meow": "^8.1.2", - "split2": "^3.2.2" - }, - "bin": { - "git-raw-commits": "cli.js" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/git-remote-origin-url": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", - "integrity": "sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==", - "dev": true, - "dependencies": { - "gitconfiglocal": "^1.0.0", - "pify": "^2.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/git-remote-origin-url/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/git-semver-tags": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-5.0.1.tgz", - "integrity": "sha512-hIvOeZwRbQ+7YEUmCkHqo8FOLQZCEn18yevLHADlFPZY02KJGsu5FZt9YW/lybfK2uhWFI7Qg/07LekJiTv7iA==", - "dev": true, - "dependencies": { - "meow": "^8.1.2", - "semver": "^7.0.0" - }, - "bin": { - "git-semver-tags": "cli.js" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/git-up": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/git-up/-/git-up-7.0.0.tgz", - "integrity": "sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==", - "dev": true, - "dependencies": { - "is-ssh": "^1.4.0", - "parse-url": "^8.1.0" - } - }, - "node_modules/git-url-parse": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-13.1.0.tgz", - "integrity": "sha512-5FvPJP/70WkIprlUZ33bm4UAaFdjcLkJLpWft1BeZKqwR0uhhNGoKwlUaPtVb4LxCSQ++erHapRak9kWGj+FCA==", - "dev": true, - "dependencies": { - "git-up": "^7.0.0" - } - }, - "node_modules/gitconfiglocal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", - "integrity": "sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==", - "dev": true, - "dependencies": { - "ini": "^1.3.2" - } - }, - "node_modules/glob": { - "version": "10.3.12", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", - "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", - "dev": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.10.2" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "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==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/glob/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==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "node_modules/handlebars": { - "version": "4.7.8", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", - "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.2", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" - } - }, - "node_modules/hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "dev": true - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true - }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "dev": true, - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", - "dev": true, - "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "dev": true, - "dependencies": { - "ms": "^2.0.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/ignore-walk": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-5.0.1.tgz", - "integrity": "sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==", - "dev": true, - "dependencies": { - "minimatch": "^5.0.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/ignore-walk/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==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/ignore-walk/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "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, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "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": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "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, - "engines": { - "node": ">=8" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "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 - }, - "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 - }, - "node_modules/init-package-json": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-5.0.0.tgz", - "integrity": "sha512-kBhlSheBfYmq3e0L1ii+VKe3zBTLL5lDCDWR+f9dLmEGSB3MqLlMlsolubSsyI88Bg6EA+BIMlomAnQ1SwgQBw==", - "dev": true, - "dependencies": { - "npm-package-arg": "^10.0.0", - "promzard": "^1.0.0", - "read": "^2.0.0", - "read-package-json": "^6.0.0", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4", - "validate-npm-package-name": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/init-package-json/node_modules/hosted-git-info": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", - "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", - "dev": true, - "dependencies": { - "lru-cache": "^7.5.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/init-package-json/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/init-package-json/node_modules/npm-package-arg": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-10.1.0.tgz", - "integrity": "sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^6.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/inquirer": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz", - "integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.21", - "mute-stream": "0.0.8", - "ora": "^5.4.1", - "run-async": "^2.4.0", - "rxjs": "^7.5.5", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6", - "wrap-ansi": "^6.0.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/inquirer/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, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/ip-address": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", - "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", - "dev": true, - "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "^1.1.3" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-ci": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", - "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", - "dev": true, - "dependencies": { - "ci-info": "^3.2.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "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, - "engines": { - "node": ">=8" - } - }, - "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, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "dev": true - }, - "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, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-ssh": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.0.tgz", - "integrity": "sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==", - "dev": true, - "dependencies": { - "protocols": "^2.0.1" - } - }, - "node_modules/is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-text-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", - "dev": true, - "dependencies": { - "text-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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, - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "dev": true, - "engines": { - "node": ">=16" - } - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", - "dev": true, - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/jake": { - "version": "10.8.7", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", - "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", - "dev": true, - "dependencies": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.4", - "minimatch": "^3.1.2" - }, - "bin": { - "jake": "bin/cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jake/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/jest-diff": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "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==", - "dev": true - }, - "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==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", - "dev": true - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", - "dev": true, - "engines": [ - "node >= 0.2.0" - ] - }, - "node_modules/JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "bin.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lerna": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/lerna/-/lerna-8.1.2.tgz", - "integrity": "sha512-RCyBAn3XsqqvHbz3TxLfD7ylqzCi1A2UJnFEZmhURgx589vM3qYWQa/uOMeEEf565q6cAdtmulITciX1wgkAtw==", - "dev": true, - "dependencies": { - "@lerna/create": "8.1.2", - "@npmcli/run-script": "7.0.2", - "@nx/devkit": ">=17.1.2 < 19", - "@octokit/plugin-enterprise-rest": "6.0.1", - "@octokit/rest": "19.0.11", - "byte-size": "8.1.1", - "chalk": "4.1.0", - "clone-deep": "4.0.1", - "cmd-shim": "6.0.1", - "columnify": "1.6.0", - "conventional-changelog-angular": "7.0.0", - "conventional-changelog-core": "5.0.1", - "conventional-recommended-bump": "7.0.1", - "cosmiconfig": "^8.2.0", - "dedent": "0.7.0", - "envinfo": "7.8.1", - "execa": "5.0.0", - "fs-extra": "^11.1.1", - "get-port": "5.1.1", - "get-stream": "6.0.0", - "git-url-parse": "13.1.0", - "glob-parent": "5.1.2", - "globby": "11.1.0", - "graceful-fs": "4.2.11", - "has-unicode": "2.0.1", - "import-local": "3.1.0", - "ini": "^1.3.8", - "init-package-json": "5.0.0", - "inquirer": "^8.2.4", - "is-ci": "3.0.1", - "is-stream": "2.0.0", - "jest-diff": ">=29.4.3 < 30", - "js-yaml": "4.1.0", - "libnpmaccess": "7.0.2", - "libnpmpublish": "7.3.0", - "load-json-file": "6.2.0", - "lodash": "^4.17.21", - "make-dir": "4.0.0", - "minimatch": "3.0.5", - "multimatch": "5.0.0", - "node-fetch": "2.6.7", - "npm-package-arg": "8.1.1", - "npm-packlist": "5.1.1", - "npm-registry-fetch": "^14.0.5", - "npmlog": "^6.0.2", - "nx": ">=17.1.2 < 19", - "p-map": "4.0.0", - "p-map-series": "2.1.0", - "p-pipe": "3.1.0", - "p-queue": "6.6.2", - "p-reduce": "2.1.0", - "p-waterfall": "2.1.1", - "pacote": "^17.0.5", - "pify": "5.0.0", - "read-cmd-shim": "4.0.0", - "read-package-json": "6.0.4", - "resolve-from": "5.0.0", - "rimraf": "^4.4.1", - "semver": "^7.3.8", - "signal-exit": "3.0.7", - "slash": "3.0.0", - "ssri": "^9.0.1", - "strong-log-transformer": "2.1.0", - "tar": "6.1.11", - "temp-dir": "1.0.0", - "typescript": ">=3 < 6", - "upath": "2.0.1", - "uuid": "^9.0.0", - "validate-npm-package-license": "3.0.4", - "validate-npm-package-name": "5.0.0", - "write-file-atomic": "5.0.1", - "write-pkg": "4.0.0", - "yargs": "17.7.2", - "yargs-parser": "21.1.1" - }, - "bin": { - "lerna": "dist/cli.js" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/libnpmaccess": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-7.0.2.tgz", - "integrity": "sha512-vHBVMw1JFMTgEk15zRsJuSAg7QtGGHpUSEfnbcRL1/gTBag9iEfJbyjpDmdJmwMhvpoLoNBtdAUCdGnaP32hhw==", - "dev": true, - "dependencies": { - "npm-package-arg": "^10.1.0", - "npm-registry-fetch": "^14.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/libnpmaccess/node_modules/hosted-git-info": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", - "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", - "dev": true, - "dependencies": { - "lru-cache": "^7.5.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/libnpmaccess/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/libnpmaccess/node_modules/npm-package-arg": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-10.1.0.tgz", - "integrity": "sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^6.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/libnpmpublish": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-7.3.0.tgz", - "integrity": "sha512-fHUxw5VJhZCNSls0KLNEG0mCD2PN1i14gH5elGOgiVnU3VgTcRahagYP2LKI1m0tFCJ+XrAm0zVYyF5RCbXzcg==", - "dev": true, - "dependencies": { - "ci-info": "^3.6.1", - "normalize-package-data": "^5.0.0", - "npm-package-arg": "^10.1.0", - "npm-registry-fetch": "^14.0.3", - "proc-log": "^3.0.0", - "semver": "^7.3.7", - "sigstore": "^1.4.0", - "ssri": "^10.0.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/libnpmpublish/node_modules/hosted-git-info": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", - "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", - "dev": true, - "dependencies": { - "lru-cache": "^7.5.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/libnpmpublish/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/libnpmpublish/node_modules/normalize-package-data": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-5.0.0.tgz", - "integrity": "sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==", - "dev": true, - "dependencies": { - "hosted-git-info": "^6.0.0", - "is-core-module": "^2.8.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/libnpmpublish/node_modules/npm-package-arg": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-10.1.0.tgz", - "integrity": "sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^6.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/libnpmpublish/node_modules/ssri": { - "version": "10.0.5", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", - "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", - "dev": true, - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/lines-and-columns": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.4.tgz", - "integrity": "sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/load-json-file": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-6.2.0.tgz", - "integrity": "sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.15", - "parse-json": "^5.0.0", - "strip-bom": "^4.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/load-json-file/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.ismatch": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", - "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==", - "dev": true - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "dev": true, - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-fetch-happen": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", - "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", - "dev": true, - "dependencies": { - "@npmcli/agent": "^2.0.0", - "cacache": "^18.0.0", - "http-cache-semantics": "^4.1.1", - "is-lambda": "^1.0.1", - "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "ssri": "^10.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/ssri": { - "version": "10.0.5", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", - "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", - "dev": true, - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", - "dev": true, - "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/meow/node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/meow/node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/meow/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/meow/node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "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 - }, - "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, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "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": { - "mime-db": "1.52.0" - }, - "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, - "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==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "dev": true, - "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "dev": true, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/minipass-collect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", - "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", - "dev": true, - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/minipass-fetch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz", - "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==", - "dev": true, - "dependencies": { - "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-flush/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-json-stream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", - "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", - "dev": true, - "dependencies": { - "jsonparse": "^1.3.1", - "minipass": "^3.0.0" - } - }, - "node_modules/minipass-json-stream/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-pipeline/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/modify-values": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", - "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/multimatch": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", - "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", - "dev": true, - "dependencies": { - "@types/minimatch": "^3.0.3", - "array-differ": "^3.0.0", - "array-union": "^2.1.0", - "arrify": "^2.0.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/multimatch/node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-gyp": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.1.0.tgz", - "integrity": "sha512-B4J5M1cABxPc5PwfjhbV5hoy2DP9p8lFXASnEN6hugXOa61416tnTZ29x9sSwAd0o99XNIcpvDDy1swAExsVKA==", - "dev": true, - "dependencies": { - "env-paths": "^2.2.0", - "exponential-backoff": "^3.1.1", - "glob": "^10.3.10", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^13.0.0", - "nopt": "^7.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^4.0.0" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/node-machine-id": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/node-machine-id/-/node-machine-id-1.1.12.tgz", - "integrity": "sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==", - "dev": true - }, - "node_modules/nopt": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz", - "integrity": "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==", - "dev": true, - "dependencies": { - "abbrev": "^2.0.0" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm-bundled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", - "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", - "dev": true, - "dependencies": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "node_modules/npm-install-checks": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz", - "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", - "dev": true, - "dependencies": { - "semver": "^7.1.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", - "dev": true - }, - "node_modules/npm-package-arg": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.1.tgz", - "integrity": "sha512-CsP95FhWQDwNqiYS+Q0mZ7FAEDytDZAkNxQqea6IaAFJTAY9Lhhqyl0irU/6PMc7BGfUmnsbHcqxJD7XuVM/rg==", - "dev": true, - "dependencies": { - "hosted-git-info": "^3.0.6", - "semver": "^7.0.0", - "validate-npm-package-name": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm-package-arg/node_modules/builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", - "dev": true - }, - "node_modules/npm-package-arg/node_modules/hosted-git-info": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz", - "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm-package-arg/node_modules/validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", - "dev": true, - "dependencies": { - "builtins": "^1.0.3" - } - }, - "node_modules/npm-packlist": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-5.1.1.tgz", - "integrity": "sha512-UfpSvQ5YKwctmodvPPkK6Fwk603aoVsf8AEbmVKAEECrfvL8SSe1A2YIwrJ6xmTHAITKPwwZsWo7WwEbNk0kxw==", - "dev": true, - "dependencies": { - "glob": "^8.0.1", - "ignore-walk": "^5.0.1", - "npm-bundled": "^1.1.2", - "npm-normalize-package-bin": "^1.0.1" - }, - "bin": { - "npm-packlist": "bin/index.js" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm-packlist/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==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/npm-packlist/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm-packlist/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm-pick-manifest": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.0.0.tgz", - "integrity": "sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg==", - "dev": true, - "dependencies": { - "npm-install-checks": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "npm-package-arg": "^11.0.0", - "semver": "^7.3.5" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm-pick-manifest/node_modules/hosted-git-info": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", - "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==", - "dev": true, - "dependencies": { - "lru-cache": "^10.0.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm-pick-manifest/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/npm-pick-manifest/node_modules/npm-normalize-package-bin": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", - "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-pick-manifest/node_modules/npm-package-arg": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.2.tgz", - "integrity": "sha512-IGN0IAwmhDJwy13Wc8k+4PEbTPhpJnMtfR53ZbOyjkvmEcLS4nCwp6mvMWjS5sUjeiW3mpx6cHmuhKEu9XmcQw==", - "dev": true, - "dependencies": { - "hosted-git-info": "^7.0.0", - "proc-log": "^4.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm-pick-manifest/node_modules/proc-log": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", - "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-registry-fetch": { - "version": "14.0.5", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.5.tgz", - "integrity": "sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==", - "dev": true, - "dependencies": { - "make-fetch-happen": "^11.0.0", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.1.2", - "npm-package-arg": "^10.0.0", - "proc-log": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-registry-fetch/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==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/cacache": { - "version": "17.1.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.1.4.tgz", - "integrity": "sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==", - "dev": true, - "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^7.7.1", - "minipass": "^7.0.3", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/cacache/node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "dev": true, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/npm-registry-fetch/node_modules/hosted-git-info": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", - "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", - "dev": true, - "dependencies": { - "lru-cache": "^7.5.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/npm-registry-fetch/node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/npm-registry-fetch/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/npm-registry-fetch/node_modules/make-fetch-happen": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", - "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", - "dev": true, - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm-registry-fetch/node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/npm-registry-fetch/node_modules/minipass-collect/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm-registry-fetch/node_modules/npm-package-arg": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-10.1.0.tgz", - "integrity": "sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^6.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", - "dev": true, - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/npm-registry-fetch/node_modules/ssri": { - "version": "10.0.5", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", - "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", - "dev": true, - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/ssri/node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "dev": true, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dev": true, - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/nx": { - "version": "18.3.4", - "resolved": "https://registry.npmjs.org/nx/-/nx-18.3.4.tgz", - "integrity": "sha512-7rOHRyxpnZGJ3pHnwmpoAMHt9hNuwibWhOhPBJDhJVcbQJtGfwcWWyV/iSEnVXwKZ2lfHVE3TwE+gXFdT/GFiw==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@nrwl/tao": "18.3.4", - "@yarnpkg/lockfile": "^1.1.0", - "@yarnpkg/parsers": "3.0.0-rc.46", - "@zkochan/js-yaml": "0.0.6", - "axios": "^1.6.0", - "chalk": "^4.1.0", - "cli-cursor": "3.1.0", - "cli-spinners": "2.6.1", - "cliui": "^8.0.1", - "dotenv": "~16.3.1", - "dotenv-expand": "~10.0.0", - "enquirer": "~2.3.6", - "figures": "3.2.0", - "flat": "^5.0.2", - "fs-extra": "^11.1.0", - "ignore": "^5.0.4", - "jest-diff": "^29.4.1", - "js-yaml": "4.1.0", - "jsonc-parser": "3.2.0", - "lines-and-columns": "~2.0.3", - "minimatch": "9.0.3", - "node-machine-id": "1.1.12", - "npm-run-path": "^4.0.1", - "open": "^8.4.0", - "ora": "5.3.0", - "semver": "^7.5.3", - "string-width": "^4.2.3", - "strong-log-transformer": "^2.1.0", - "tar-stream": "~2.2.0", - "tmp": "~0.2.1", - "tsconfig-paths": "^4.1.2", - "tslib": "^2.3.0", - "yargs": "^17.6.2", - "yargs-parser": "21.1.1" - }, - "bin": { - "nx": "bin/nx.js", - "nx-cloud": "bin/nx-cloud.js" - }, - "optionalDependencies": { - "@nx/nx-darwin-arm64": "18.3.4", - "@nx/nx-darwin-x64": "18.3.4", - "@nx/nx-freebsd-x64": "18.3.4", - "@nx/nx-linux-arm-gnueabihf": "18.3.4", - "@nx/nx-linux-arm64-gnu": "18.3.4", - "@nx/nx-linux-arm64-musl": "18.3.4", - "@nx/nx-linux-x64-gnu": "18.3.4", - "@nx/nx-linux-x64-musl": "18.3.4", - "@nx/nx-win32-arm64-msvc": "18.3.4", - "@nx/nx-win32-x64-msvc": "18.3.4" - }, - "peerDependencies": { - "@swc-node/register": "^1.8.0", - "@swc/core": "^1.3.85" - }, - "peerDependenciesMeta": { - "@swc-node/register": { - "optional": true - }, - "@swc/core": { - "optional": true - } - } - }, - "node_modules/nx/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==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/nx/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/nx/node_modules/ora": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.3.0.tgz", - "integrity": "sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==", - "dev": true, - "dependencies": { - "bl": "^4.0.3", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "log-symbols": "^4.0.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "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, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", - "dev": true, - "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/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map-series": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map-series/-/p-map-series-2.1.0.tgz", - "integrity": "sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-pipe": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-3.1.0.tgz", - "integrity": "sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-queue": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", - "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", - "dev": true, - "dependencies": { - "eventemitter3": "^4.0.4", - "p-timeout": "^3.2.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-reduce": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz", - "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-timeout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", - "dev": true, - "dependencies": { - "p-finally": "^1.0.0" - }, - "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==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-waterfall": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-waterfall/-/p-waterfall-2.1.1.tgz", - "integrity": "sha512-RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw==", - "dev": true, - "dependencies": { - "p-reduce": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pacote": { - "version": "17.0.7", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-17.0.7.tgz", - "integrity": "sha512-sgvnoUMlkv9xHwDUKjKQFXVyUi8dtJGKp3vg6sYy+TxbDic5RjZCHF3ygv0EJgNRZ2GfRONjlKPUfokJ9lDpwQ==", - "dev": true, - "dependencies": { - "@npmcli/git": "^5.0.0", - "@npmcli/installed-package-contents": "^2.0.1", - "@npmcli/promise-spawn": "^7.0.0", - "@npmcli/run-script": "^7.0.0", - "cacache": "^18.0.0", - "fs-minipass": "^3.0.0", - "minipass": "^7.0.2", - "npm-package-arg": "^11.0.0", - "npm-packlist": "^8.0.0", - "npm-pick-manifest": "^9.0.0", - "npm-registry-fetch": "^16.0.0", - "proc-log": "^4.0.0", - "promise-retry": "^2.0.1", - "read-package-json": "^7.0.0", - "read-package-json-fast": "^3.0.0", - "sigstore": "^2.2.0", - "ssri": "^10.0.0", - "tar": "^6.1.11" - }, - "bin": { - "pacote": "lib/bin.js" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/@sigstore/bundle": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.3.1.tgz", - "integrity": "sha512-eqV17lO3EIFqCWK3969Rz+J8MYrRZKw9IBHpSo6DEcEX2c+uzDFOgHE9f2MnyDpfs48LFO4hXmk9KhQ74JzU1g==", - "dev": true, - "dependencies": { - "@sigstore/protobuf-specs": "^0.3.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/@sigstore/protobuf-specs": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.1.tgz", - "integrity": "sha512-aIL8Z9NsMr3C64jyQzE0XlkEyBLpgEJJFDHLVVStkFV5Q3Il/r/YtY6NJWKQ4cy4AE7spP1IX5Jq7VCAxHHMfQ==", - "dev": true, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/@sigstore/sign": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.3.0.tgz", - "integrity": "sha512-tsAyV6FC3R3pHmKS880IXcDJuiFJiKITO1jxR1qbplcsBkZLBmjrEw5GbC7ikD6f5RU1hr7WnmxB/2kKc1qUWQ==", - "dev": true, - "dependencies": { - "@sigstore/bundle": "^2.3.0", - "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.3.1", - "make-fetch-happen": "^13.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/@sigstore/tuf": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.2.tgz", - "integrity": "sha512-mwbY1VrEGU4CO55t+Kl6I7WZzIl+ysSzEYdA1Nv/FTrl2bkeaPXo5PnWZAVfcY2zSdhOpsUTJW67/M2zHXGn5w==", - "dev": true, - "dependencies": { - "@sigstore/protobuf-specs": "^0.3.0", - "tuf-js": "^2.2.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/@tufjs/canonical-json": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", - "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", - "dev": true, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/@tufjs/models": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.0.tgz", - "integrity": "sha512-c8nj8BaOExmZKO2DXhDfegyhSGcG9E/mPN3U13L+/PsoWm1uaGiHHjxqSHQiasDBQwDA3aHuw9+9spYAP1qvvg==", - "dev": true, - "dependencies": { - "@tufjs/canonical-json": "2.0.0", - "minimatch": "^9.0.3" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/pacote/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==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/pacote/node_modules/hosted-git-info": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", - "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==", - "dev": true, - "dependencies": { - "lru-cache": "^10.0.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/ignore-walk": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.4.tgz", - "integrity": "sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==", - "dev": true, - "dependencies": { - "minimatch": "^9.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/json-parse-even-better-errors": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz", - "integrity": "sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/pacote/node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/pacote/node_modules/normalize-package-data": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz", - "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==", - "dev": true, - "dependencies": { - "hosted-git-info": "^7.0.0", - "is-core-module": "^2.8.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/npm-normalize-package-bin": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", - "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/npm-package-arg": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.2.tgz", - "integrity": "sha512-IGN0IAwmhDJwy13Wc8k+4PEbTPhpJnMtfR53ZbOyjkvmEcLS4nCwp6mvMWjS5sUjeiW3mpx6cHmuhKEu9XmcQw==", - "dev": true, - "dependencies": { - "hosted-git-info": "^7.0.0", - "proc-log": "^4.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/npm-packlist": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.2.tgz", - "integrity": "sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==", - "dev": true, - "dependencies": { - "ignore-walk": "^6.0.4" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/npm-registry-fetch": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.2.1.tgz", - "integrity": "sha512-8l+7jxhim55S85fjiDGJ1rZXBWGtRLi1OSb4Z3BPLObPuIaeKRlPRiYMSHU4/81ck3t71Z+UwDDl47gcpmfQQA==", - "dev": true, - "dependencies": { - "@npmcli/redact": "^1.1.0", - "make-fetch-happen": "^13.0.0", - "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.1.2", - "npm-package-arg": "^11.0.0", - "proc-log": "^4.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/proc-log": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", - "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/read-package-json": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-7.0.0.tgz", - "integrity": "sha512-uL4Z10OKV4p6vbdvIXB+OzhInYtIozl/VxUBPgNkBuUi2DeRonnuspmaVAMcrkmfjKGNmRndyQAbE7/AmzGwFg==", - "dev": true, - "dependencies": { - "glob": "^10.2.2", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/sigstore": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.3.0.tgz", - "integrity": "sha512-q+o8L2ebiWD1AxD17eglf1pFrl9jtW7FHa0ygqY6EKvibK8JHyq9Z26v9MZXeDiw+RbfOJ9j2v70M10Hd6E06A==", - "dev": true, - "dependencies": { - "@sigstore/bundle": "^2.3.1", - "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.3.1", - "@sigstore/sign": "^2.3.0", - "@sigstore/tuf": "^2.3.1", - "@sigstore/verify": "^1.2.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/ssri": { - "version": "10.0.5", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", - "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", - "dev": true, - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/tuf-js": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.0.tgz", - "integrity": "sha512-ZSDngmP1z6zw+FIkIBjvOp/II/mIub/O7Pp12j1WNsiCpg5R5wAc//i555bBQsE44O94btLt0xM/Zr2LQjwdCg==", - "dev": true, - "dependencies": { - "@tufjs/models": "2.0.0", - "debug": "^4.3.4", - "make-fetch-happen": "^13.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "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, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "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==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse-json/node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/parse-path": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-7.0.0.tgz", - "integrity": "sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog==", - "dev": true, - "dependencies": { - "protocols": "^2.0.0" - } - }, - "node_modules/parse-url": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-8.1.0.tgz", - "integrity": "sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==", - "dev": true, - "dependencies": { - "parse-path": "^7.0.0" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/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 - }, - "node_modules/path-scurry": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", - "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", - "dev": true, - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } - }, - "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==", - "dev": true, - "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 - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", - "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.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==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/proc-log": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", - "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "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==", - "dev": true - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "dev": true - }, - "node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "dev": true, - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/promzard": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promzard/-/promzard-1.0.1.tgz", - "integrity": "sha512-ulDF77aULEHUoJkN5XZgRV5loHXBaqd9eorMvLNLvi2gXMuRAtwH6Gh4zsMHQY1kTt7tyv/YZwZW5C2gtj8F2A==", - "dev": true, - "dependencies": { - "read": "^3.0.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/promzard/node_modules/mute-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", - "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/promzard/node_modules/read": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/read/-/read-3.0.1.tgz", - "integrity": "sha512-SLBrDU/Srs/9EoWhU5GdbAoxG1GzpQHo/6qiGItaoLJ1thmYpcNIM1qISEUvyHBzfGlWIyd6p2DNi1oV1VmAuw==", - "dev": true, - "dependencies": { - "mute-stream": "^1.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/protocols": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/protocols/-/protocols-2.0.1.tgz", - "integrity": "sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==", - "dev": true - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true - }, - "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", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true - }, - "node_modules/read": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/read/-/read-2.1.0.tgz", - "integrity": "sha512-bvxi1QLJHcaywCAEsAk4DG3nVoqiY2Csps3qzWalhj5hFqRn1d/OixkFXtLO1PrgHUcAP0FNaSY/5GYNfENFFQ==", - "dev": true, - "dependencies": { - "mute-stream": "~1.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/read-cmd-shim": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-4.0.0.tgz", - "integrity": "sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/read-package-json": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-6.0.4.tgz", - "integrity": "sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==", - "dev": true, - "dependencies": { - "glob": "^10.2.2", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^5.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/read-package-json-fast": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", - "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", - "dev": true, - "dependencies": { - "json-parse-even-better-errors": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/read-package-json-fast/node_modules/json-parse-even-better-errors": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz", - "integrity": "sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/read-package-json-fast/node_modules/npm-normalize-package-bin": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", - "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/read-package-json/node_modules/hosted-git-info": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", - "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", - "dev": true, - "dependencies": { - "lru-cache": "^7.5.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/read-package-json/node_modules/json-parse-even-better-errors": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz", - "integrity": "sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/read-package-json/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/read-package-json/node_modules/normalize-package-data": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-5.0.0.tgz", - "integrity": "sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==", - "dev": true, - "dependencies": { - "hosted-git-info": "^6.0.0", - "is-core-module": "^2.8.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/read-package-json/node_modules/npm-normalize-package-bin": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", - "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", - "dev": true, - "dependencies": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==", - "dev": true, - "dependencies": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/read-pkg/node_modules/load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/read-pkg/node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", - "dev": true, - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg/node_modules/path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/read-pkg/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/read/node_modules/mute-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", - "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dev": true, - "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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==", - "dev": true, - "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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "dev": true, - "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==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz", - "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==", - "dev": true, - "dependencies": { - "glob": "^9.2.0" - }, - "bin": { - "rimraf": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/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==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "9.3.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz", - "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "minimatch": "^8.0.2", - "minipass": "^4.2.4", - "path-scurry": "^1.6.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/minimatch": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", - "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/minipass": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", - "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "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==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dev": true, - "dependencies": { - "tslib": "^2.1.0" - } - }, - "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", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "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/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/sigstore": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-1.9.0.tgz", - "integrity": "sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A==", - "dev": true, - "dependencies": { - "@sigstore/bundle": "^1.1.0", - "@sigstore/protobuf-specs": "^0.2.0", - "@sigstore/sign": "^1.0.0", - "@sigstore/tuf": "^1.0.3", - "make-fetch-happen": "^11.0.1" - }, - "bin": { - "sigstore": "bin/sigstore.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/sigstore/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==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/sigstore/node_modules/cacache": { - "version": "17.1.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.1.4.tgz", - "integrity": "sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==", - "dev": true, - "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^7.7.1", - "minipass": "^7.0.3", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/sigstore/node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/sigstore/node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/sigstore/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/sigstore/node_modules/make-fetch-happen": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", - "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", - "dev": true, - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/sigstore/node_modules/make-fetch-happen/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/sigstore/node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/sigstore/node_modules/minipass-collect/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/sigstore/node_modules/socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", - "dev": true, - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/sigstore/node_modules/ssri": { - "version": "10.0.5", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", - "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", - "dev": true, - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "dev": true, - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", - "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", - "dev": true, - "dependencies": { - "ip-address": "^9.0.5", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.3.tgz", - "integrity": "sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==", - "dev": true, - "dependencies": { - "agent-base": "^7.1.1", - "debug": "^4.3.4", - "socks": "^2.7.1" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/sort-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", - "integrity": "sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==", - "dev": true, - "dependencies": { - "is-plain-obj": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", - "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", - "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", - "dev": true - }, - "node_modules/split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "dev": true, - "dependencies": { - "through": "2" - }, - "engines": { - "node": "*" - } - }, - "node_modules/split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "dev": true, - "dependencies": { - "readable-stream": "^3.0.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", - "dev": true - }, - "node_modules/ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "dev": true, - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/ssri/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "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, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs": { - "name": "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, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "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, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "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, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "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==", - "dev": true, - "dependencies": { - "min-indent": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strong-log-transformer": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz", - "integrity": "sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==", - "dev": true, - "dependencies": { - "duplexer": "^0.1.1", - "minimist": "^1.2.0", - "through": "^2.3.4" - }, - "bin": { - "sl-log-transformer": "bin/sl-log-transformer.js" - }, - "engines": { - "node": ">=4" - } - }, - "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, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "dev": true, - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar/node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/tar/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/temp-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", - "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/text-extensions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", - "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/through2/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "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/through2/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/through2/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==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/tmp": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", - "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", - "dev": true, - "engines": { - "node": ">=14.14" - } - }, - "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, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "node_modules/trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/tsconfig-paths": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", - "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", - "dev": true, - "dependencies": { - "json5": "^2.2.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "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": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true - }, - "node_modules/tuf-js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-1.1.7.tgz", - "integrity": "sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==", - "dev": true, - "dependencies": { - "@tufjs/models": "1.0.4", - "debug": "^4.3.4", - "make-fetch-happen": "^11.1.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/tuf-js/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==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/tuf-js/node_modules/cacache": { - "version": "17.1.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.1.4.tgz", - "integrity": "sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==", - "dev": true, - "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^7.7.1", - "minipass": "^7.0.3", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/tuf-js/node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/tuf-js/node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/tuf-js/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/tuf-js/node_modules/make-fetch-happen": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", - "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", - "dev": true, - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/tuf-js/node_modules/make-fetch-happen/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/tuf-js/node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/tuf-js/node_modules/minipass-collect/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tuf-js/node_modules/socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", - "dev": true, - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/tuf-js/node_modules/ssri": { - "version": "10.0.5", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", - "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", - "dev": true, - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "dev": true - }, - "node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", - "dev": true, - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/unique-filename": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", - "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", - "dev": true, - "dependencies": { - "unique-slug": "^4.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/unique-slug": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", - "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/universal-user-agent": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz", - "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==", - "dev": true - }, - "node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/upath": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", - "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==", - "dev": true, - "engines": { - "node": ">=4", - "yarn": "*" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/validate-npm-package-name": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", - "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", - "dev": true, - "dependencies": { - "builtins": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "dev": true, - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", - "dev": true, - "dependencies": { - "isexe": "^3.1.1" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^16.13.0 || >=18.0.0" - } - }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dev": true, - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true - }, - "node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "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, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/write-file-atomic": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", - "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/write-file-atomic/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/write-json-file": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-3.2.0.tgz", - "integrity": "sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ==", - "dev": true, - "dependencies": { - "detect-indent": "^5.0.0", - "graceful-fs": "^4.1.15", - "make-dir": "^2.1.0", - "pify": "^4.0.1", - "sort-keys": "^2.0.0", - "write-file-atomic": "^2.4.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/write-json-file/node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/write-json-file/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/write-json-file/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/write-json-file/node_modules/write-file-atomic": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", - "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "node_modules/write-pkg": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-4.0.0.tgz", - "integrity": "sha512-v2UQ+50TNf2rNHJ8NyWttfm/EJUBWMJcx6ZTYZr6Qp52uuegWw/lBkCtCbnYZEmPRNL61m+u67dAmGxo+HTULA==", - "dev": true, - "dependencies": { - "sort-keys": "^2.0.0", - "type-fest": "^0.4.1", - "write-json-file": "^3.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/write-pkg/node_modules/type-fest": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.4.1.tgz", - "integrity": "sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "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==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "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 - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - } - } -} diff --git a/package.json b/package.json index 7ebfdf9..e3078dc 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,14 @@ { - "name": "root", + "name": "redeem-ce", "private": true, - "workspaces": [ - "packages/*" - ], - "dependencies": {}, + "scripts": { + "dev": "pnpm --filter @redeem/* dev", + "start": "pnpm --filter @redeem/* start", + "build": "pnpm --filter @redeem/* build", + "prepare": "husky" + }, "devDependencies": { - "lerna": "^8.1.2" - } + "husky": "^9.0.11" + }, + "packageManager": "pnpm@9.1.3+sha512.7c2ea089e1a6af306409c4fc8c4f0897bdac32b772016196c469d9428f1fe2d5a21daf8ad6512762654ac645b5d9136bb210ec9a00afa8dbc4677843ba362ecd" } diff --git a/packages/voucher/.env.development b/packages/voucher/.env.development new file mode 100644 index 0000000..ebe988d --- /dev/null +++ b/packages/voucher/.env.development @@ -0,0 +1,13 @@ +REACT_APP_API_BASE_URL=http://localhost:10000 +REACT_APP_LANDING_PAGE=https://redeem.gov.sg +REACT_APP_SUPPORT_EMAIL=feedback@redeem.gov.sg +REACT_APP_TERMS_OF_USE=https://redeem.gov.sg/terms-of-use.html +REACT_APP_PRIVACY=https://redeem.gov.sg/privacy.html +REACT_APP_REPORT_VULNERABILITY=https://www.tech.gov.sg/report_vulnerability +REACT_APP_FEEDBACK_PAGE=https://go.gov.sg/redeemsgfeedback + +# Datadog RUM configuration +REACT_APP_DD_ENV=development +REACT_APP_DATADOG_APPLICATION_ID= +REACT_APP_DATADOG_CLIENT_TOKEN= +REACT_APP_DATADOG_RUM_SAMPLE_RATE= diff --git a/packages/voucher/.eslintrc.js b/packages/voucher/.eslintrc.js new file mode 100644 index 0000000..357b922 --- /dev/null +++ b/packages/voucher/.eslintrc.js @@ -0,0 +1,81 @@ +// TODO(ts): Remove eslint rule for import/no-unresolved + +module.exports = { + plugins: [ + '@typescript-eslint', + 'import', + 'react', + 'react-hooks', + 'prettier', + 'chakra-ui', + ], + extends: [ + 'eslint:recommended', + 'plugin:react/recommended', + 'plugin:prettier/recommended', + 'plugin:@typescript-eslint/recommended', + ], + env: {es6: true}, + parser: '@typescript-eslint/parser', + ignorePatterns: ['build', 'tsconfig.json', '.eslintrc.js'], + parserOptions: { + ecmaFeatures: { + jsx: true, + }, + ecmaVersion: 2020, + sourceType: 'module', + project: ['./tsconfig.json'], + }, + rules: { + camelcase: 'off', + 'no-use-before-define': 'off', + 'react/react-in-jsx-scope': 'off', + '@typescript-eslint/no-use-before-define': ['error'], + '@typescript-eslint/explicit-module-boundary-types': 'off', + 'react/jsx-filename-extension': [ + 1, + {extensions: ['.js', '.jsx', '.ts', '.tsx']}, + ], + '@typescript-eslint/no-unused-vars': ['warn', {argsIgnorePattern: '^_'}], + 'import/extensions': [ + 'error', + 'ignorePackages', + { + js: 'never', + jsx: 'never', + ts: 'never', + tsx: 'never', + }, + ], + 'import/no-extraneous-dependencies': [ + 'error', + {devDependencies: ['e2e/**/*.ts', 'playwright.config.ts']}, + ], + 'chakra-ui/props-order': [ + 'error', + { + firstProps: ['filter'], // Prop filter='auto' must be before related props to work. + }, + ], + 'chakra-ui/props-shorthand': [ + 'error', + { + noShorthand: true, + }, + ], + }, + settings: { + react: { + version: 'detect', + }, + 'import/resolver': { + node: { + paths: ['src'], + extensions: ['.js', '.jsx', '.ts', '.tsx'], + }, + }, + }, + globals: { + JSX: 'readonly', + }, +} diff --git a/packages/voucher/.gitignore b/packages/voucher/.gitignore new file mode 100644 index 0000000..7f5da5f --- /dev/null +++ b/packages/voucher/.gitignore @@ -0,0 +1,30 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage +/test-results + +# production +/build + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# environment variables +/env + +test-results/ +playwright-report/ \ No newline at end of file diff --git a/packages/voucher/.i18n-json.eslintrc.js b/packages/voucher/.i18n-json.eslintrc.js new file mode 100644 index 0000000..3663e34 --- /dev/null +++ b/packages/voucher/.i18n-json.eslintrc.js @@ -0,0 +1,15 @@ +const path = require('path') + +// Config file to deal with translations only. +// TODO: Look into 'identical-keys' for typescript. +module.exports = { + extends: ['plugin:i18n-json/recommended'], + rules: { + 'i18n-json/valid-message-syntax': [ + 2, + { + syntax: path.resolve('./trans-syntax-custom'), + }, + ], + }, +} diff --git a/packages/voucher/.nvmrc b/packages/voucher/.nvmrc new file mode 100644 index 0000000..53d1c14 --- /dev/null +++ b/packages/voucher/.nvmrc @@ -0,0 +1 @@ +v22 diff --git a/packages/voucher/.prettierrc.js b/packages/voucher/.prettierrc.js new file mode 100644 index 0000000..2d82aa8 --- /dev/null +++ b/packages/voucher/.prettierrc.js @@ -0,0 +1,9 @@ +module.exports = { + bracketSpacing: false, + jsxBracketSameLine: false, + singleQuote: true, + trailingComma: 'all', + jsxSingleQuote: true, + tabWidth: 2, + semi: false, +} \ No newline at end of file diff --git a/packages/voucher/README.md b/packages/voucher/README.md new file mode 100644 index 0000000..425fd2e --- /dev/null +++ b/packages/voucher/README.md @@ -0,0 +1,131 @@ +# Redeem CE Voucher View + +Provides a web-based view of vouchers given to a recipient, +with redemptions made using QR codes. + +This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). + +## Background + +Digital vouchers created in Redeem are distributed as hard-to-guess links to +recipients. Each link is keyed by the voucher group id generated when the +vouchers are created within a campaign. + +Recipients redeem vouchers by collating the denominations they wish to use, +then display the corresponding QR code to the merchant. + +## Getting Started + +- Have the [API](../api) up and running +- Create a voucher campaign and voucher group using the + [admin interface](../admin) +- `npm run dev`, then visit `http://localhost:3000/` + +## Notable Libraries and Services + +### Core + +We use React (through create-react-app) and [Chakra UI](https://chakra-ui.com) +to build the frontend. + +### Operations + +[DataDog](https://datadoghq.com) is used to facilitate monitoring of the frontend, +especially taking advantage of [Real User Monitoring](https://docs.datadoghq.com/real_user_monitoring/) +to monitor user sessions and behaviour + +[LaunchDarkly](https://launchdarkly.com) is used for feature flags, that is, +features that are deployed but hidden to the user. + +## Environment Variables and Configuration + +As this application is created using create-react-app, environment variables are +[given](https://create-react-app.dev/docs/adding-custom-environment-variables/) +to the application prefixed with `REACT_APP_`. + +These are loaded into the application at runtime using +[dotenv-cli](https://www.npmjs.com/package/dotenv-cli) (through react-scripts), +as `.env.*` files, where the suffix denotes the environment +(as in `.env.development`), and whether the file is local to the machine +(as in `.env.development.local`). + +| Name | Purpose | Example Value | +| ----------------------------------- | ------------------------------------------------- | ---------------------------------------------- | +| `REACT_APP_API_BASE_URL` | Required for operation. URL to backend API | `http://localhost:10000` | +| `REACT_APP_LANDING_PAGE` | Link to page for product information | `https://redeem.gov.sg` | +| `REACT_APP_SUPPORT_EMAIL` | Contact email to send queries or feedback | `placeholder@redeem.gov.sg` | +| `REACT_APP_TERMS_OF_USE` | Link to page that lists legal terms of use | `https://redeem.gov.sg/terms-of-use.html` | +| `REACT_APP_PRIVACY` | Link to page describing privacy info | `https://redeem.gov.sg/privacy.html` | +| `REACT_APP_REPORT_VULNERABILITY` | Link to page to report security issues | `https://www.tech.gov.sg/report_vulnerability` | +| `REACT_APP_FEEDBACK_PAGE` | Link to page to provide feedback | `https://go.gov.sg/redeemsgfeedback` | +| `REACT_APP_DD_ENV` | The environment as specified on DataDog | `development` | +| `REACT_APP_DATADOG_APPLICATION_ID` | The application id given by DataDog | `192cf359-ab3f-1923-0215-91afe9320bd0` | +| `REACT_APP_DATADOG_CLIENT_TOKEN` | The client token given by DataDog | `ad93e9f02cdf013491ab9ef` | +| `REACT_APP_DATADOG_RUM_SAMPLE_RATE` | The frequency to sample user sessions for DataDog | `1000` | + +## Available Scripts + +In the project directory, you can run: + +### `npm start` + +Runs the app in the development mode.
+Open [http://localhost:3000](http://localhost:3000) to view it in the browser. + +The page will reload if you make edits.
+You will also see any lint errors in the console. + +### `npm test` + +Launches the test runner in the interactive watch mode.
+See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. + +### `npm run build` + +Builds the app for production to the `build` folder.
+It correctly bundles React in production mode and optimizes the build for the best performance. + +The build is minified and the filenames include the hashes.
+Your app is ready to be deployed! + +See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. + +### `npm run eject` + +**Note: this is a one-way operation. Once you `eject`, you can’t go back!** + +If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. + +Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own. + +You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it. + +## Learn More + +You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). + +To learn React, check out the [React documentation](https://reactjs.org/). + +### Code Splitting + +This section has moved here: https://facebook.github.io/create-react-app/docs/code-splitting + +### Analyzing the Bundle Size + +This section has moved here: https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size + +### Making a Progressive Web App + +This section has moved here: https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app + +### Advanced Configuration + +This section has moved here: https://facebook.github.io/create-react-app/docs/advanced-configuration + +### Deployment + +This section has moved here: https://facebook.github.io/create-react-app/docs/deployment + +### `npm run build` fails to minify + +This section has moved here: https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify diff --git a/packages/voucher/THIRD-PARTY-LICENSES.txt b/packages/voucher/THIRD-PARTY-LICENSES.txt new file mode 100644 index 0000000..c1d676d --- /dev/null +++ b/packages/voucher/THIRD-PARTY-LICENSES.txt @@ -0,0 +1,82 @@ +This file was generated with the generate-license-file npm package! +https://www.npmjs.com/package/generate-license-file + +The following npm package may be included in this product: + + - type-fest@4.18.2 + +This package contains the following license and notice below: + +(MIT OR CC0-1.0) + +----------- + +The following npm package may be included in this product: + + - axios@0.28.1 + +This package contains the following license and notice below: + +Copyright (c) 2014-present Matt Zabriskie + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----------- + +The following npm packages may be included in this product: + + - camelcase-keys@9.1.3 + - camelcase@8.0.0 + - map-obj@5.0.0 + - quick-lru@6.1.2 + +These packages each contain the following license and notice below: + +MIT License + +Copyright (c) Sindre Sorhus (https://sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +The following npm package may be included in this product: + + - uuid@8.3.2 + +This package contains the following license and notice below: + +The MIT License (MIT) + +Copyright (c) 2010-2020 Robert Kieffer and other contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----------- + +This file was generated with the generate-license-file npm package! +https://www.npmjs.com/package/generate-license-file diff --git a/packages/voucher/e2e/GroupPageDefault.spec.ts b/packages/voucher/e2e/GroupPageDefault.spec.ts new file mode 100644 index 0000000..c63760a --- /dev/null +++ b/packages/voucher/e2e/GroupPageDefault.spec.ts @@ -0,0 +1,325 @@ +import {test, expect} from '@playwright/test' +import {GROUP_VOUCHER_URL} from './constants/voucher' +import {CDC_ADVISORY_URL, REDEEM_FEEDBACK_URL} from './mocks/common' +import { + mockConnectionLost, + percySnapshot, + waitForInitialFontLoad, + replaceWholeCanvasIntoAnImageForTest, + getCDCMerchantListRedirectURL, +} from './utils/helpers' +import { + mockEmptyTransactionHistoryApiResponse, + mockEndedGroupVoucherApiResponse, + mockMoreThanMaximumGroupedVouchersApiResponse, + mockNotFoundGroupVoucherApiResponse, + mockNotStartedGroupVoucherApiResponse, + mockRedeemedAndVoidedGroupVoucherApiResponse, + mockRedeemedGroupVoucherApiResponse, + mockTransactionHistoryContentApiResponse, + mockUnusedGroupVoucherApiResponse, +} from './utils/network' + +// TODO: create fixtures for each page to reduce duplication of code +test.describe('GroupPageDefault tests', () => { + test.beforeEach(async ({context, page, baseURL}) => { + await mockUnusedGroupVoucherApiResponse(context) + // Go to the starting url before each test. + await page.goto(`${baseURL}${GROUP_VOUCHER_URL}`) + // Wait for Inter font to load + await waitForInitialFontLoad(page) + // Disable animations to prevent race conditions due to incomplete animation states + await page.addStyleTag({ + content: `*, + *::before, + *::after { + -moz-animation: none !important; + -moz-transition: none !important; + animation: none !important; + caret-color: transparent !important; + transition: none !important; + }`, + }) + await page.waitForSelector('#voucher-group-page') + }) + + test('no types golden path snapshot tests', async ({ + context, + page, + browserName, + }) => { + if (browserName === 'chromium') { + await percySnapshot(page, 'Default Main Page') + } + // Click on two vouchers + await page.click('#voucher-button_v_enT791mQRuqgi03OhaNQB') + await page.click('#voucher-button_v_BZpRLJBLfaCpqAvM6nmVU') + await page.waitForSelector( + '#voucher-button_v_BZpRLJBLfaCpqAvM6nmVU[aria-checked="true"]', + ) + // Snapshot with vouchers selected + if (browserName === 'chromium') { + await percySnapshot(page, 'Default Main Page Vouchers Selected') + } + // Open redemption page + await page.click('#redeem-button') + await page.waitForTimeout(2000) + if (browserName === 'chromium') { + await replaceWholeCanvasIntoAnImageForTest(page) + await percySnapshot(page, 'Default Redemption Page') + } + + await mockRedeemedGroupVoucherApiResponse(context) + await page.waitForSelector('.voucher-redeemed-stamp') + // Wait for Dosis font to load + // There is no reliable way to wait for this font to load so a timeout is used + await page.waitForTimeout(2000) + if (browserName === 'chromium') { + await replaceWholeCanvasIntoAnImageForTest(page) + await percySnapshot(page, 'Default Redemption Page Redeemed') + } + }) + + test('default campaign ended test', async ({context, page, browserName}) => { + await mockEndedGroupVoucherApiResponse(context) + + // Reload to trigger campaign ended + await page.reload() + + // Where to use and open help drawer buttons should be not be selectable. + const whereToUseButton = page.locator('#where-to-use-button') + await expect(whereToUseButton).toBeDisabled() + + const openHelpDrawerButton = page.locator('#open-help-drawer-button') + await expect(openHelpDrawerButton).toBeDisabled() + + // Language Selector should still be selectable + const languageSelector = page.locator('#language-select-dropdown-button') + await expect(languageSelector).toBeEnabled() + + if (browserName === 'chromium') { + await percySnapshot(page, 'Default Campaign Ended Page') + } + + // Organiser contact details + await page.click('#contact-organiser-text') + await page.waitForSelector('#organiser-contact-section') + if (browserName === 'chromium') { + await percySnapshot(page, 'Default Campaign Ended Organiser Details Page') + } + await page.click('#organiser-contact-section-close-button') + }) + + test('default campaign not started test', async ({ + context, + page, + browserName, + }) => { + await mockNotStartedGroupVoucherApiResponse(context) + + // Reload to trigger campaign not started + await page.reload() + + // Where to use and open help drawer buttons should be not be selectable. + const whereToUseButton = page.locator('#where-to-use-button') + await expect(whereToUseButton).toBeDisabled() + + const openHelpDrawerButton = page.locator('#open-help-drawer-button') + await expect(openHelpDrawerButton).toBeDisabled() + + // Language Selector should still be selectable + const languageSelector = page.locator('#language-select-dropdown-button') + await expect(languageSelector).toBeEnabled() + + if (browserName === 'chromium') { + await percySnapshot(page, 'Default Campaign Not Started Page') + } + + // Organiser contact details + await page.click('#contact-organiser-text') + await page.waitForSelector('#organiser-contact-section') + await page.click('#organiser-contact-section-close-button') + }) + + test('default voided vouchers test', async ({context, page, browserName}) => { + await mockRedeemedAndVoidedGroupVoucherApiResponse(context) + // Reload to reset order of vouchers + await page.reload() + await waitForInitialFontLoad(page) + if (browserName === 'chromium') { + await percySnapshot(page, 'Default Main Page Redeemed and Voided') + } + // Voided voucher should not be selectable + const voidedVoucherSelector = '#voucher-button_v_yQMFlMU7t0IpPLYOQq0Nt' + const voidedVoucherElement = page.locator(voidedVoucherSelector) + await expect(voidedVoucherElement).toBeDisabled() + expect(await page.locator('#redeem-button').isVisible()).toBeFalsy() + }) + + test('default max vouchers selected test', async ({ + context, + page, + browserName, + }) => { + await mockMoreThanMaximumGroupedVouchersApiResponse(context) + // Reload to reset order of vouchers + await page.reload() + await waitForInitialFontLoad(page) + // Click on 15 vouchers + // eslint-disable-next-line no-plusplus + for (let i = 0; i < 15; i++) { + // eslint-disable-next-line no-await-in-loop + await page + .locator('button[id*=\'voucher-button_\']:not([aria-checked="true"])') + .first() + .click() + } + if (browserName === 'chromium') { + await percySnapshot(page, 'Default Main Page Max Vouchers Selected') + } + + expect( + await page + .locator('button[id*=\'voucher-button_\']:not([aria-checked="true"])') + .first() + .isDisabled(), + ).toBeTruthy() + }) + + test('default lost connection test', async ({page, browserName}) => { + await mockConnectionLost(page) + await page.waitForSelector('#error-template') + if (browserName === 'chromium') { + await percySnapshot(page, 'Default Main Page Service Unavailable') + } + }) + + test('default voucher not found test', async ({ + context, + page, + browserName, + baseURL, + }) => { + await mockNotFoundGroupVoucherApiResponse(context) + await page.goto(`${baseURL}/non-existant`) + await page.waitForSelector('#error-template') + if (browserName === 'chromium') { + await percySnapshot(page, 'Default Main Page Voucher Not Found') + } + }) + + test('default where to use button test', async ({page}) => { + const cdcMerchantListRedirectUrl = await getCDCMerchantListRedirectURL() + + await page.click('#where-to-use-button') + + const popup = await page.waitForEvent('popup') + expect(popup.url()).toBe(cdcMerchantListRedirectUrl) + await popup.close() + }) + + test('default info and help drawer test', async ({page, browserName}) => { + await page.click('#open-help-drawer-button') + await page.waitForTimeout(2000) + if (browserName === 'chromium') { + // TODO: Improve interface for this helper function to reduce code duplication + // and clarity of params. + await percySnapshot(page, 'Default Help Drawer Page', undefined, 1300) + } + + await page.click('#info-and-help-general-info-button') + const popupGeneralInfo = await page.waitForEvent('popup') + expect(popupGeneralInfo.url()).toBe(CDC_ADVISORY_URL) + await popupGeneralInfo.close() + + await page.waitForTimeout(2000) + + await page.click('#info-and-help-give-feedback-button') + const popupGiveFeedback = await page.waitForEvent('popup') + expect(popupGiveFeedback.url()).toBe(REDEEM_FEEDBACK_URL) + await popupGiveFeedback.close() + }) + + test('default transaction history drawer empty test', async ({ + context, + page, + browserName, + }) => { + await mockEmptyTransactionHistoryApiResponse(context) + await page.click('#transaction-history-button') + await page.waitForTimeout(2000) + + await page.waitForSelector('#empty-transaction-history-container') + if (browserName === 'chromium') { + await percySnapshot(page, 'Default Empty Transaction History Container') + } + }) + + test('default transaction history drawer has content test', async ({ + context, + page, + browserName, + }) => { + await mockTransactionHistoryContentApiResponse(context) + await page.click('#transaction-history-button') + await page.waitForTimeout(2000) + + await page.waitForSelector('#content-transaction-history-container') + if (browserName === 'chromium') { + await percySnapshot( + page, + 'Default Transaction History Container With Content', + ) + } + }) + + test('default error modal snapshot test', async ({ + context, + page, + browserName, + }) => { + // Click on two vouchers + await page.click('#voucher-button_v_enT791mQRuqgi03OhaNQB') + await page.click('#voucher-button_v_yQMFlMU7t0IpPLYOQq0Nt') + await page.waitForSelector( + '#voucher-button_v_yQMFlMU7t0IpPLYOQq0Nt[aria-checked="true"]', + ) + // Open redemption page + await page.click('#redeem-button') + + await mockRedeemedGroupVoucherApiResponse(context) + await page.waitForSelector('.modal-main') + if (browserName === 'chromium') { + await replaceWholeCanvasIntoAnImageForTest(page) + await percySnapshot(page, 'Default Redemption Page Error Modal') + } + }) + + test('default language settings test', async ({page, baseURL}) => { + // Only checks if one text element is updated. + // TODO: Update to check all translations once implementation and translations finalized + await page.click('#language-select-dropdown-button') + const zh = page.locator('button[role=menuitem]:text("中文")') + await zh.click() + // "Share link" was refactored to "Where to use" for default group page + // To add "Where to use" in other languages in the future. + // await page.waitForSelector(':text("分享链接")') + await expect(page).toHaveURL(`${baseURL}${GROUP_VOUCHER_URL}?lang=zh`) + await zh.waitFor({state: 'hidden'}) + + await page.click('#language-select-dropdown-button') + const en = page.locator('button[role=menuitem]:text("English")') + await en.click() + // await page.waitForSelector(':text("Share link")') + await page.waitForSelector(':text("Where to use")') + await expect(page).toHaveURL(`${baseURL}${GROUP_VOUCHER_URL}?lang=en`) + await en.waitFor({state: 'hidden'}) + + await page.click('#language-select-dropdown-button') + const ms = page.locator('button[role=menuitem]:text("Melayu")') + await ms.click() + // await page.waitForSelector(':text("Kongsi pautan")') + await expect(page).toHaveURL(`${baseURL}${GROUP_VOUCHER_URL}?lang=ms`) + await ms.waitFor({state: 'hidden'}) + }) +}) diff --git a/packages/voucher/e2e/GroupPageWithVoucherTypes.spec.ts b/packages/voucher/e2e/GroupPageWithVoucherTypes.spec.ts new file mode 100644 index 0000000..92b7744 --- /dev/null +++ b/packages/voucher/e2e/GroupPageWithVoucherTypes.spec.ts @@ -0,0 +1,384 @@ +import {test, expect} from '@playwright/test' +import {GROUP_VOUCHER_URL} from './constants/voucher' +import {CDC_ADVISORY_URL, REDEEM_FEEDBACK_URL} from './mocks/common' +import { + mockConnectionLost, + percySnapshot, + waitForInitialFontLoad, + replaceWholeCanvasIntoAnImageForTest, + getCDCMerchantListRedirectURL, +} from './utils/helpers' +import { + mockEmptyTransactionHistoryApiResponse, + mockEndedGroupVoucherTypesApiResponse, + mockNotFoundGroupVoucherApiResponse, + mockNotStartedGroupVoucherTypesApiResponse, + mockRedeemedGroupVoucherApiHeartlandTypesResponse, + mockRedeemedGroupVoucherApiSupermarketTypesResponse, + mockTransactionHistoryContentApiResponse, + mockUnusedGroupVoucherTypesApiResponse, +} from './utils/network' + +test.describe('GroupPageWithVoucherTypes tests', () => { + test.beforeEach(async ({context, page, baseURL}) => { + await mockUnusedGroupVoucherTypesApiResponse(context) + // Go to the starting url before each test. + await page.goto(`${baseURL}${GROUP_VOUCHER_URL}`) + // Wait for Inter font to load + await waitForInitialFontLoad(page) + // Disable animations to prevent race conditions due to incomplete animation states + await page.addStyleTag({ + content: `*, + *::before, + *::after { + -moz-animation: none !important; + -moz-transition: none !important; + animation: none !important; + caret-color: transparent !important; + transition: none !important; + }`, + }) + await page.waitForSelector('#select-voucher-type-page') + }) + + test('heartland types golden path snapshot tests', async ({ + context, + page, + browserName, + }) => { + if (browserName === 'chromium') { + await percySnapshot(page, 'CDC Campaign Types Main Page') + } + + await page.waitForSelector('#vouchers-button') + await page.click('#vouchers-button') + + if (browserName === 'chromium') { + await percySnapshot(page, 'Heartland Type Select Vouchers Page') + } + + // Click on two heartland vouchers + await page.click('#voucher-button_v_enT791mQRuqgi03OhaNQB') + await page.click('#voucher-button_v_yQMFlMU7t0IpPLYOQq0Nt') + await page.waitForSelector( + '#voucher-button_v_yQMFlMU7t0IpPLYOQq0Nt[aria-checked="true"]', + ) + // Snapshot with vouchers selected + if (browserName === 'chromium') { + await percySnapshot(page, 'Heartland Type Vouchers Selected') + } + // Open redemption page + await page.click('#redeem-button') + await page.waitForTimeout(2000) + if (browserName === 'chromium') { + await replaceWholeCanvasIntoAnImageForTest(page) + await percySnapshot(page, 'Heartland Type Redemption Page') + } + + await mockRedeemedGroupVoucherApiHeartlandTypesResponse(context) + await page.waitForSelector('.voucher-redeemed-stamp') + // Wait for Dosis font to load + // There is no reliable way to wait for this font to load so a timeout is used + await page.waitForTimeout(2000) + if (browserName === 'chromium') { + await replaceWholeCanvasIntoAnImageForTest(page) + await percySnapshot(page, 'Heartland Type Redemption Page Redeemed') + } + }) + + test('supermarket types golden path snapshot tests', async ({ + context, + page, + browserName, + }) => { + await page.waitForSelector('#supermarket-vouchers-button') + await page.click('#supermarket-vouchers-button') + + if (browserName === 'chromium') { + await percySnapshot(page, 'Supermarket Type Select Vouchers Page') + } + + // Click on two supermarket vouchers + await page.click('#voucher-button_v_BZpRLJBLfaCpqAvM6nmVU') + await page.click('#voucher-button_v_hhGzyoe55IpOgNKbpin40') + await page.waitForSelector( + '#voucher-button_v_hhGzyoe55IpOgNKbpin40[aria-checked="true"]', + ) + // Snapshot with vouchers selected + if (browserName === 'chromium') { + await percySnapshot(page, 'Supermarket Type Vouchers Selected') + } + // Open redemption page + await page.click('#redeem-button') + await page.waitForTimeout(2000) + if (browserName === 'chromium') { + await replaceWholeCanvasIntoAnImageForTest(page) + await percySnapshot(page, 'Supermarket Type Redemption Page') + } + + await mockRedeemedGroupVoucherApiSupermarketTypesResponse(context) + await page.waitForSelector('.voucher-redeemed-stamp') + // Wait for Dosis font to load + // There is no reliable way to wait for this font to load so a timeout is used + await page.waitForTimeout(2000) + if (browserName === 'chromium') { + await percySnapshot(page, 'Supermarket Type Redemption Page Redeemed') + } + }) + + test('voucher types campaign ended test', async ({ + context, + page, + browserName, + }) => { + await mockEndedGroupVoucherTypesApiResponse(context) + + // Reload to trigger campaign ended + await page.reload() + + // Share voucher and open help drawer buttons should be not be selectable. + const shareVoucherButton = page.locator('#share-voucher-button') + await expect(shareVoucherButton).toBeDisabled() + + const openHelpDrawerButton = page.locator('#open-help-drawer-button') + await expect(openHelpDrawerButton).toBeDisabled() + + // Language Selector should still be selectable + const languageSelector = page.locator('#language-select-dropdown-button') + await expect(languageSelector).toBeEnabled() + + // TODO: Add a assertion for correct date rendered + if (browserName === 'chromium') { + await percySnapshot(page, 'Types Campaign Ended Page') + } + + // Organiser contact details + await page.click('#contact-organiser-text') + await page.waitForSelector('#organiser-contact-section') + if (browserName === 'chromium') { + await percySnapshot(page, 'Types Campaign Ended Organiser Details Page') + } + await page.click('#organiser-contact-section-close-button') + }) + + test('voucher types campaign not started test', async ({ + context, + page, + browserName, + }) => { + await mockNotStartedGroupVoucherTypesApiResponse(context) + + // Reload to trigger campaign not started + await page.reload() + + // Share voucher and open help drawer buttons should be not be selectable. + const shareVoucherButton = page.locator('#share-voucher-button') + await expect(shareVoucherButton).toBeDisabled() + + const openHelpDrawerButton = page.locator('#open-help-drawer-button') + await expect(openHelpDrawerButton).toBeDisabled() + + // Language Selector should still be selectable + const languageSelector = page.locator('#language-select-dropdown-button') + await expect(languageSelector).toBeEnabled() + + if (browserName === 'chromium') { + await percySnapshot(page, 'Types Campaign Not Started Page') + } + + // Organiser contact details + await page.click('#contact-organiser-text') + await page.waitForSelector('#organiser-contact-section') + await page.click('#organiser-contact-section-close-button') + }) + + test('types lost connection test', async ({page, browserName}) => { + await mockConnectionLost(page) + await page.waitForSelector('#error-template') + if (browserName === 'chromium') { + await percySnapshot( + page, + 'CDC Campaign Types Main Page Service Unavailable', + ) + } + }) + + test('default voucher not found test', async ({ + context, + page, + browserName, + baseURL, + }) => { + await mockNotFoundGroupVoucherApiResponse(context) + await page.goto(`${baseURL}/non-existant`) + await page.waitForSelector('#error-template') + if (browserName === 'chromium') { + await percySnapshot(page, 'CDC Campaign Types Voucher Not Found') + } + }) + + test('heartland type voucher selector lost connection test', async ({ + page, + browserName, + }) => { + await page.waitForSelector('#vouchers-button') + await page.click('#vouchers-button') + + await mockConnectionLost(page) + await page.waitForSelector('#error-template') + if (browserName === 'chromium') { + await percySnapshot( + page, + 'Heartland Type Voucher Select Page Service Unavailable', + ) + } + }) + + test('heartland type redemption page lost connection test', async ({ + page, + browserName, + }) => { + await page.waitForSelector('#vouchers-button') + await page.click('#vouchers-button') + + // Click on two heartland vouchers + await page.click('#voucher-button_v_enT791mQRuqgi03OhaNQB') + await page.click('#voucher-button_v_yQMFlMU7t0IpPLYOQq0Nt') + await page.waitForSelector( + '#voucher-button_v_yQMFlMU7t0IpPLYOQq0Nt[aria-checked="true"]', + ) + + // Open redemption page + await page.click('#redeem-button') + await page.waitForTimeout(2000) + + await mockConnectionLost(page) + await page.waitForSelector('#error-template') + if (browserName === 'chromium') { + await percySnapshot( + page, + 'Heartland Type Voucher Redemption Page Service Unavailable', + ) + } + }) + + test('supermarket type voucher selector lost connection test', async ({ + page, + browserName, + }) => { + await page.waitForSelector('#supermarket-vouchers-button') + await page.click('#supermarket-vouchers-button') + + await mockConnectionLost(page) + await page.waitForSelector('#error-template') + if (browserName === 'chromium') { + await percySnapshot( + page, + 'Supermarket Type Voucher Select Page Service Unavailable', + ) + } + }) + + test('supermarket type redemption page lost connection test', async ({ + page, + browserName, + }) => { + await page.waitForSelector('#supermarket-vouchers-button') + await page.click('#supermarket-vouchers-button') + + // Click on two supermarket vouchers + await page.click('#voucher-button_v_BZpRLJBLfaCpqAvM6nmVU') + await page.click('#voucher-button_v_hhGzyoe55IpOgNKbpin40') + await page.waitForSelector( + '#voucher-button_v_hhGzyoe55IpOgNKbpin40[aria-checked="true"]', + ) + + // Open redemption page + await page.click('#redeem-button') + await page.waitForTimeout(2000) + + await mockConnectionLost(page) + await page.waitForSelector('#error-template') + if (browserName === 'chromium') { + await percySnapshot( + page, + 'Supermarket Type Voucher Redemption Page Service Unavailable', + ) + } + }) + + test('voucher types where to use button test', async ({page}) => { + const cdcMerchantListRedirectUrl = await getCDCMerchantListRedirectURL() + await page.waitForSelector('#vouchers-button') + await page.click('#vouchers-button') + + await page.click('#voucher-types-where-to-use-button') + + const popup = await page.waitForEvent('popup') + expect(popup.url()).toBe(cdcMerchantListRedirectUrl) + await popup.close() + }) + + test('types info and help drawer test', async ({page, browserName}) => { + await page.click('#open-help-drawer-button') + await page.waitForTimeout(2000) + if (browserName === 'chromium') { + // TODO: Improve interface for this helper function to reduce code duplication + // and clarity of params. + await percySnapshot( + page, + 'Voucher Types Help Drawer Page', + undefined, + 1300, + ) + } + + await page.click('#info-and-help-general-info-button') + const popupGeneralInfo = await page.waitForEvent('popup') + expect(popupGeneralInfo.url()).toBe(CDC_ADVISORY_URL) + await popupGeneralInfo.close() + + await page.waitForTimeout(2000) + + await page.click('#info-and-help-give-feedback-button') + const popupGiveFeedback = await page.waitForEvent('popup') + expect(popupGiveFeedback.url()).toBe(REDEEM_FEEDBACK_URL) + await popupGiveFeedback.close() + }) + + test('voucher types transaction history drawer empty test', async ({ + context, + page, + browserName, + }) => { + await mockEmptyTransactionHistoryApiResponse(context) + await page.click('#transaction-history-button') + await page.waitForTimeout(2000) + + await page.waitForSelector('#empty-transaction-history-container') + if (browserName === 'chromium') { + await percySnapshot( + page, + 'Voucher Types Empty Transaction History Container', + ) + } + }) + + test('voucher types transaction history drawer has content test', async ({ + context, + page, + browserName, + }) => { + await mockTransactionHistoryContentApiResponse(context) + await page.click('#transaction-history-button') + await page.waitForTimeout(2000) + + await page.waitForSelector('#content-transaction-history-container') + if (browserName === 'chromium') { + await percySnapshot( + page, + 'Voucher Types Transaction History Container With Content', + ) + } + }) +}) diff --git a/packages/voucher/e2e/constants/merchant.ts b/packages/voucher/e2e/constants/merchant.ts new file mode 100644 index 0000000..e0e791a --- /dev/null +++ b/packages/voucher/e2e/constants/merchant.ts @@ -0,0 +1,14 @@ +export const MERCHANT_NAMES = { + NO_TYPES: 'SHEIKHS SHACK', + HEARTLAND: 'SHEIKHS HEARTLAND', + SUPERMARKET: 'SHEIKH SHIONG SUPERMARKET', +} + +export const MERCHANT_ID = 'merchant_b5deaec4-b69d-4de0-b778-4d066c89e7f3' + +export const DEFAULT_LAST_REDEEMED_TIMESTAMP = '2022-10-13T16:02:07.000+08:00' + +export const VOUCHER_TYPES = { + HEARTLAND: 'heartland', + SUPERMARKET: 'supermarket', +} diff --git a/packages/voucher/e2e/constants/voucher.ts b/packages/voucher/e2e/constants/voucher.ts new file mode 100644 index 0000000..32f13a0 --- /dev/null +++ b/packages/voucher/e2e/constants/voucher.ts @@ -0,0 +1 @@ +export const GROUP_VOUCHER_URL = '/UQGVUCIN1S6BZY3' diff --git a/packages/voucher/e2e/mocks/DefaultGroupedVouchers.response.ts b/packages/voucher/e2e/mocks/DefaultGroupedVouchers.response.ts new file mode 100644 index 0000000..6336a3f --- /dev/null +++ b/packages/voucher/e2e/mocks/DefaultGroupedVouchers.response.ts @@ -0,0 +1,60 @@ +import { + defaultCampaign, + defaultPerson, + endedCampaign, + notStartedCampaign, +} from './common' +import { + moreThanMaximumVouchers, + redeemedAndVoidedNoTypesVouchers, + redeemedNoTypesVouchers, + unusedNoTypesVouchers, +} from './vouchers' + +export const unusedGroupedVouchersResponse = { + ...defaultCampaign, + data: { + ...defaultPerson, + vouchers: unusedNoTypesVouchers, + }, +} + +export const redeemedGroupedVouchersResponse = { + ...defaultCampaign, + data: { + ...defaultPerson, + vouchers: redeemedNoTypesVouchers, + }, +} + +export const redeemedAndVoidedGroupedVouchersResponse = { + ...defaultCampaign, + data: { + ...defaultPerson, + vouchers: redeemedAndVoidedNoTypesVouchers, + }, +} + +export const moreThanMaximumGroupedVouchersResponse = { + ...defaultCampaign, + data: { + ...defaultPerson, + vouchers: moreThanMaximumVouchers, + }, +} + +export const endedGroupedVouchersResponse = { + ...endedCampaign, + data: { + ...defaultPerson, + vouchers: unusedNoTypesVouchers, + }, +} + +export const notStartedGroupedVouchersResponse = { + ...notStartedCampaign, + data: { + ...defaultPerson, + vouchers: unusedNoTypesVouchers, + }, +} diff --git a/packages/voucher/e2e/mocks/GroupedVoucherEvents.response.ts b/packages/voucher/e2e/mocks/GroupedVoucherEvents.response.ts new file mode 100644 index 0000000..ca9b7bd --- /dev/null +++ b/packages/voucher/e2e/mocks/GroupedVoucherEvents.response.ts @@ -0,0 +1,36 @@ +import {MERCHANT_ID, MERCHANT_NAMES} from '../constants/merchant' + +const defaultPageInfo = { + has_next_page: false, + has_previous_page: false, + start_cursor: 'WyIyOSJd', + end_cursor: 'WyIxMSJd', +} + +export const noRedemptionEventsResponse = { + data: [], + page_info: { + ...defaultPageInfo, + }, +} + +export const redemptionEventsResponse = { + data: [ + { + created_at: '2022-09-29T17:19:51.899+08:00', + updated_at: '2022-09-29T17:19:51.899+08:00', + id: '1', + event: 'grouped_voucher_redemption', + data: { + merchant_id: MERCHANT_ID, + voucher_ids: ['v_enT791mQRuqgi03OhaNQB', 'v_BZpRLJBLfaCpqAvM6nmVU'], + merchant_shop_name: MERCHANT_NAMES.NO_TYPES, + total_voucher_value: 20, + transaction_id: 'transaction_ae522479-1d8e-4790-b93a-17ae9bbf00cc', + }, + }, + ], + page_info: { + ...defaultPageInfo, + }, +} diff --git a/packages/voucher/e2e/mocks/TypedGroupedVouchers.response.ts b/packages/voucher/e2e/mocks/TypedGroupedVouchers.response.ts new file mode 100644 index 0000000..02d96d8 --- /dev/null +++ b/packages/voucher/e2e/mocks/TypedGroupedVouchers.response.ts @@ -0,0 +1,51 @@ +import { + defaultCampaign, + defaultPerson, + endedCampaign, + notStartedCampaign, +} from './common' +import { + redeemedHeartlandTypesVouchers, + redeemedSupermarketTypesVouchers, + unusedTypesVouchers, +} from './vouchers' + +export const unusedGroupedVouchersTypesResponse = { + ...defaultCampaign, + data: { + ...defaultPerson, + vouchers: unusedTypesVouchers, + }, +} + +export const redeemedGroupedVouchersHeartlandTypesResponse = { + ...defaultCampaign, + data: { + ...defaultPerson, + vouchers: redeemedHeartlandTypesVouchers, + }, +} + +export const redeemedGroupedVouchersSupermarketTypesResponse = { + ...defaultCampaign, + data: { + ...defaultPerson, + vouchers: redeemedSupermarketTypesVouchers, + }, +} + +export const endedGroupedVouchersTypesResponse = { + ...endedCampaign, + data: { + ...defaultPerson, + vouchers: unusedTypesVouchers, + }, +} + +export const notStartedGroupedVouchersTypesResponse = { + ...notStartedCampaign, + data: { + ...defaultPerson, + vouchers: unusedTypesVouchers, + }, +} diff --git a/packages/voucher/e2e/mocks/common.ts b/packages/voucher/e2e/mocks/common.ts new file mode 100644 index 0000000..7cce88f --- /dev/null +++ b/packages/voucher/e2e/mocks/common.ts @@ -0,0 +1,194 @@ +export const CDC_MERCHANT_LIST_URL = + 'https://www.gowhere.gov.sg/cdcvouchersmerchants' +export const CDC_ADVISORY_URL = 'https://www.cdc.gov.sg/' +export const REDEEM_FEEDBACK_URL = 'https://go.gov.sg/redeemsgfeedback' +// Temporarily putting it as redeem's website +export const CDC_TERMS_AND_CONDITIONS = 'https://redeem.gov.sg/' + +export const defaultCampaign = { + object: 'grouped_vouchers', + campaign: { + created_at: '2022-08-31T16:26:15.742+08:00', + updated_at: '2022-08-31T16:26:15.742+08:00', + id: 'campaign_4feecf0e-b20f-48b2-bee9-04c4de9dbf5a', + name: 'CDC Vouchers 2023', + description: + 'This is a test campaign which might or might not have voucher types', + organiser_name: 'Community Development Council', + organiser_email: 'enquiries@cdc.gov.sg', + organiser_contact_number: '6562255322', + organiser_feedback_url: 'https://form.gov.sg', + organiser_location: 'Visit your nearest Community Centre/Club (CC)', + merchant_list_url: CDC_MERCHANT_LIST_URL, + advisory_url: CDC_ADVISORY_URL, + logo_url: 'https://statics.redeem.gov.sg/campaign_logo/cdc_identifier.png', + logo_qr_url: + 'https://statics.redeem.gov.sg/campaign_logo/cdc_identifier.png', + colour: 'blue', + owner: 'user_cc14a4e3-b428-49a0-8a3e-92fd55e2acd6', + validity_start: '2021-01-01T00:00:00.000+08:00', + validity_end: '2099-12-12T00:00:00.000+08:00', // TODO: Extend if E2E fails + validity: 'campaign_valid', + default_vouchers: [ + { + value: 10, + quantity: 2, + }, + { + value: 5, + quantity: 5, + }, + { + value: 2, + quantity: 5, + }, + ], + voucher_colours: [ + { + value: 'default', + colour: 'blue', + }, + ], + is_deleted: false, + metadata: {}, + tnc_url: CDC_TERMS_AND_CONDITIONS, + }, +} + +export const endedCampaign = { + object: 'grouped_vouchers', + campaign: { + created_at: '2022-08-31T16:26:15.742+08:00', + updated_at: '2022-08-31T16:26:15.742+08:00', + id: 'campaign_4feecf0e-b20f-48b2-bee9-04c4de9dbf5a', + name: 'CDC Vouchers 2023', + description: + 'This is a test campaign which might or might not have voucher types', + organiser_name: 'Community Development Council', + organiser_email: 'enquiries@cdc.gov.sg', + organiser_contact_number: '6562255322', + organiser_feedback_url: 'https://form.gov.sg', + organiser_location: 'Visit your nearest Community Centre/Club (CC)', + merchant_list_url: CDC_MERCHANT_LIST_URL, + advisory_url: CDC_ADVISORY_URL, + logo_url: 'https://statics.redeem.gov.sg/campaign_logo/cdc_identifier.png', + logo_qr_url: + 'https://statics.redeem.gov.sg/campaign_logo/cdc_identifier.png', + colour: 'blue', + owner: 'user_cc14a4e3-b428-49a0-8a3e-92fd55e2acd6', + validity_start: '2021-01-01T00:00:00.000+08:00', + validity_end: '2021-12-12T00:00:00.000+08:00', + validity: 'campaign_ended', + default_vouchers: [ + { + value: 10, + quantity: 2, + }, + { + value: 5, + quantity: 5, + }, + { + value: 2, + quantity: 5, + }, + ], + voucher_colours: [ + { + value: 'default', + colour: 'blue', + }, + ], + is_deleted: false, + metadata: {}, + }, +} + +export const generalVouchersEndedCampaign = { + ...endedCampaign, + campaign: { + ...endedCampaign.campaign, + name: 'IRAS Staff Welfare Vouchers', + category: 'redeemsg_general_vouchers', + }, +} + +// TODO: Extend validity start and end past current date if tests start failing +// for not started campaigns. +export const notStartedCampaign = { + object: 'grouped_vouchers', + campaign: { + created_at: '2022-08-31T16:26:15.742+08:00', + updated_at: '2022-08-31T16:26:15.742+08:00', + id: 'campaign_4feecf0e-b20f-48b2-bee9-04c4de9dbf5a', + name: 'CDC Vouchers 2023', + description: + 'This is a test campaign which might or might not have voucher types', + organiser_name: 'Community Development Council', + organiser_email: 'enquiries@cdc.gov.sg', + organiser_contact_number: '6562255322', + organiser_feedback_url: 'https://form.gov.sg', + organiser_location: 'Visit your nearest Community Centre/Club (CC)', + merchant_list_url: CDC_MERCHANT_LIST_URL, + advisory_url: CDC_ADVISORY_URL, + logo_url: 'https://statics.redeem.gov.sg/campaign_logo/cdc_identifier.png', + logo_qr_url: + 'https://statics.redeem.gov.sg/campaign_logo/cdc_identifier.png', + colour: 'blue', + owner: 'user_cc14a4e3-b428-49a0-8a3e-92fd55e2acd6', + validity_start: '2024-01-01T00:00:00.000+08:00', + validity_end: '2024-12-12T00:00:00.000+08:00', + validity: 'campaign_not_started', + default_vouchers: [ + { + value: 10, + quantity: 2, + }, + { + value: 5, + quantity: 5, + }, + { + value: 2, + quantity: 5, + }, + ], + voucher_colours: [ + { + value: 'default', + colour: 'blue', + }, + ], + is_deleted: false, + metadata: {}, + }, +} + +export const generalVouchersNotStartedCampaign = { + ...notStartedCampaign, + campaign: { + ...notStartedCampaign.campaign, + name: 'IRAS Staff Welfare Vouchers', + category: 'redeemsg_general_vouchers', + }, +} + +export const defaultPerson = { + created_at: '2022-09-08T14:46:52.260+08:00', + updated_at: '2022-09-13T18:32:28.278+08:00', + virtual_address: + 'Blk 1234 Lower XYZ Mee Siam Road, #15-3960, SINGAPORE 123456', + id: 'UQGVUCIN1S6BZY3', + block: 'Blk 1234', + street: 'Lower XYZ Mee Siam Road', + floor: '15', + unit: '3960', + postal_code: '123456', + campaign_id: 'campaign_4feecf0e-b20f-48b2-bee9-04c4de9dbf5a', + is_deleted: false, + is_sent: true, + is_viewed: true, + metadata: {}, + unique_key: 'campaign_4feecf0e-b20f-48b2-bee9-04c4de9dbf5a.758780.1.10.10.', + vouchers: [], // Placeholder for other exported constants to overwrite. +} diff --git a/packages/voucher/e2e/mocks/vouchers.ts b/packages/voucher/e2e/mocks/vouchers.ts new file mode 100644 index 0000000..eb26cc2 --- /dev/null +++ b/packages/voucher/e2e/mocks/vouchers.ts @@ -0,0 +1,1115 @@ +/* +This file exists to help us generate voucher objects for different tests. +Default voucher object shape: +{ + id: 'v_enT791mQRuqgi03OhaNQB', + label: 'v_enT791mQRuqgi03OhaNQB', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 10, + merchant_name: null, + type: null, +} + +Modifiable properties include: +1. state (unused, redeemed, voided) +2. last_redeemed_timestamp (if redeemed) +3. merchant_name (if redeemed) +4. type (heartland, supermarket) +*/ + +import { + DEFAULT_LAST_REDEEMED_TIMESTAMP, + MERCHANT_NAMES, +} from '../constants/merchant' + +// TODO: Implement function to redeem vouchers provided an array of voucher ids. +// TODO: Implement function to modify voucher types. + +export const unusedNoTypesVouchers = [ + { + id: 'v_enT791mQRuqgi03OhaNQB', + label: 'v_enT791mQRuqgi03OhaNQB', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 10, + merchant_name: null, + type: null, + }, + { + id: 'v_BZpRLJBLfaCpqAvM6nmVU', + label: 'v_BZpRLJBLfaCpqAvM6nmVU', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 10, + merchant_name: null, + type: null, + }, + { + id: 'v_yQMFlMU7t0IpPLYOQq0Nt', + label: 'v_yQMFlMU7t0IpPLYOQq0Nt', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 5, + merchant_name: null, + type: null, + }, + { + id: 'v_HNGL3uAIV8yrZn45i0Jlt', + label: 'v_HNGL3uAIV8yrZn45i0Jlt', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 5, + merchant_name: null, + type: null, + }, + { + id: 'v_lqkDXjrTOUoVP4OoKfVVa', + label: 'v_lqkDXjrTOUoVP4OoKfVVa', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 5, + merchant_name: null, + type: null, + }, + { + id: 'v_GP5gjEBzvXp1MAbR76Wxd', + label: 'v_GP5gjEBzvXp1MAbR76Wxd', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 5, + merchant_name: null, + type: null, + }, + { + id: 'v_r6ZqQJh5NF4U3YUrJKP4i', + label: 'v_r6ZqQJh5NF4U3YUrJKP4i', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 5, + merchant_name: null, + type: null, + }, + { + id: 'v_hhGzyoe55IpOgNKbpin40', + label: 'v_hhGzyoe55IpOgNKbpin40', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 2, + merchant_name: null, + type: null, + }, + { + id: 'v_2mON1wEXJ1qpUWAv5FnHG', + label: 'v_2mON1wEXJ1qpUWAv5FnHG', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 2, + merchant_name: null, + type: null, + }, + { + id: 'v_zRGU0YX498auGS1ZMdhql', + label: 'v_zRGU0YX498auGS1ZMdhql', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 2, + merchant_name: null, + type: null, + }, + { + id: 'v_aFT01diuiYlIxqTqwmWUi', + label: 'v_aFT01diuiYlIxqTqwmWUi', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 2, + merchant_name: null, + type: null, + }, + { + id: 'v_cZHhI11R8Wep42wGVyzuN', + label: 'v_cZHhI11R8Wep42wGVyzuN', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 2, + merchant_name: null, + type: null, + }, +] + +export const redeemedNoTypesVouchers = [ + { + id: 'v_enT791mQRuqgi03OhaNQB', + label: 'v_enT791mQRuqgi03OhaNQB', + state: 'redeemed', + metadata: {}, + last_redeemed_timestamp: DEFAULT_LAST_REDEEMED_TIMESTAMP, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 10, + merchant_name: MERCHANT_NAMES.NO_TYPES, + type: null, + transaction_id: 'transaction_ae522479-1d8e-4790-b93a-17ae9bbf00cc', + }, + { + id: 'v_BZpRLJBLfaCpqAvM6nmVU', + label: 'v_BZpRLJBLfaCpqAvM6nmVU', + state: 'redeemed', + metadata: {}, + last_redeemed_timestamp: DEFAULT_LAST_REDEEMED_TIMESTAMP, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 10, + merchant_name: MERCHANT_NAMES.NO_TYPES, + type: null, + transaction_id: 'transaction_ae522479-1d8e-4790-b93a-17ae9bbf00cc', + }, + { + id: 'v_yQMFlMU7t0IpPLYOQq0Nt', + label: 'v_yQMFlMU7t0IpPLYOQq0Nt', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 5, + merchant_name: null, + type: null, + }, + { + id: 'v_HNGL3uAIV8yrZn45i0Jlt', + label: 'v_HNGL3uAIV8yrZn45i0Jlt', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 5, + merchant_name: null, + type: null, + }, + { + id: 'v_lqkDXjrTOUoVP4OoKfVVa', + label: 'v_lqkDXjrTOUoVP4OoKfVVa', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 5, + merchant_name: null, + type: null, + }, + { + id: 'v_GP5gjEBzvXp1MAbR76Wxd', + label: 'v_GP5gjEBzvXp1MAbR76Wxd', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 5, + merchant_name: null, + type: null, + }, + { + id: 'v_r6ZqQJh5NF4U3YUrJKP4i', + label: 'v_r6ZqQJh5NF4U3YUrJKP4i', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 5, + merchant_name: null, + type: null, + }, + { + id: 'v_hhGzyoe55IpOgNKbpin40', + label: 'v_hhGzyoe55IpOgNKbpin40', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 2, + merchant_name: null, + type: null, + }, + { + id: 'v_2mON1wEXJ1qpUWAv5FnHG', + label: 'v_2mON1wEXJ1qpUWAv5FnHG', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 2, + merchant_name: null, + type: null, + }, + { + id: 'v_zRGU0YX498auGS1ZMdhql', + label: 'v_zRGU0YX498auGS1ZMdhql', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 2, + merchant_name: null, + type: null, + }, + { + id: 'v_aFT01diuiYlIxqTqwmWUi', + label: 'v_aFT01diuiYlIxqTqwmWUi', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 2, + merchant_name: null, + type: null, + }, + { + id: 'v_cZHhI11R8Wep42wGVyzuN', + label: 'v_cZHhI11R8Wep42wGVyzuN', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 2, + merchant_name: null, + type: null, + }, +] + +export const redeemedAndVoidedNoTypesVouchers = [ + { + id: 'v_enT791mQRuqgi03OhaNQB', + label: 'v_enT791mQRuqgi03OhaNQB', + state: 'redeemed', + metadata: {}, + last_redeemed_timestamp: DEFAULT_LAST_REDEEMED_TIMESTAMP, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 10, + merchant_name: MERCHANT_NAMES.NO_TYPES, + type: null, + transaction_id: 'transaction_ae522479-1d8e-4790-b93a-17ae9bbf00cc', + }, + { + id: 'v_BZpRLJBLfaCpqAvM6nmVU', + label: 'v_BZpRLJBLfaCpqAvM6nmVU', + state: 'redeemed', + metadata: {}, + last_redeemed_timestamp: DEFAULT_LAST_REDEEMED_TIMESTAMP, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 10, + merchant_name: MERCHANT_NAMES.NO_TYPES, + type: null, + transaction_id: 'transaction_ae522479-1d8e-4790-b93a-17ae9bbf00cc', + }, + { + id: 'v_yQMFlMU7t0IpPLYOQq0Nt', + label: 'v_yQMFlMU7t0IpPLYOQq0Nt', + state: 'voided', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 5, + merchant_name: null, + type: null, + }, + { + id: 'v_HNGL3uAIV8yrZn45i0Jlt', + label: 'v_HNGL3uAIV8yrZn45i0Jlt', + state: 'voided', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 5, + merchant_name: null, + type: null, + }, + { + id: 'v_lqkDXjrTOUoVP4OoKfVVa', + label: 'v_lqkDXjrTOUoVP4OoKfVVa', + state: 'voided', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 5, + merchant_name: null, + type: null, + }, + { + id: 'v_GP5gjEBzvXp1MAbR76Wxd', + label: 'v_GP5gjEBzvXp1MAbR76Wxd', + state: 'voided', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 5, + merchant_name: null, + type: null, + }, + { + id: 'v_r6ZqQJh5NF4U3YUrJKP4i', + label: 'v_r6ZqQJh5NF4U3YUrJKP4i', + state: 'voided', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 5, + merchant_name: null, + type: null, + }, + { + id: 'v_hhGzyoe55IpOgNKbpin40', + label: 'v_hhGzyoe55IpOgNKbpin40', + state: 'voided', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 2, + merchant_name: null, + type: null, + }, + { + id: 'v_2mON1wEXJ1qpUWAv5FnHG', + label: 'v_2mON1wEXJ1qpUWAv5FnHG', + state: 'voided', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 2, + merchant_name: null, + type: null, + }, + { + id: 'v_zRGU0YX498auGS1ZMdhql', + label: 'v_zRGU0YX498auGS1ZMdhql', + state: 'voided', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 2, + merchant_name: null, + type: null, + }, + { + id: 'v_aFT01diuiYlIxqTqwmWUi', + label: 'v_aFT01diuiYlIxqTqwmWUi', + state: 'voided', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 2, + merchant_name: null, + type: null, + }, + { + id: 'v_cZHhI11R8Wep42wGVyzuN', + label: 'v_cZHhI11R8Wep42wGVyzuN', + state: 'voided', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 2, + merchant_name: null, + type: null, + }, +] + +export const unusedTypesVouchers = [ + { + id: 'v_enT791mQRuqgi03OhaNQB', + label: 'v_enT791mQRuqgi03OhaNQB', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 10, + merchant_name: null, + type: 'heartland', + }, + { + id: 'v_BZpRLJBLfaCpqAvM6nmVU', + label: 'v_BZpRLJBLfaCpqAvM6nmVU', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 10, + merchant_name: null, + type: 'supermarket', + }, + { + id: 'v_yQMFlMU7t0IpPLYOQq0Nt', + label: 'v_yQMFlMU7t0IpPLYOQq0Nt', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 5, + merchant_name: null, + type: 'heartland', + }, + { + id: 'v_HNGL3uAIV8yrZn45i0Jlt', + label: 'v_HNGL3uAIV8yrZn45i0Jlt', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 5, + merchant_name: null, + type: 'heartland', + }, + { + id: 'v_lqkDXjrTOUoVP4OoKfVVa', + label: 'v_lqkDXjrTOUoVP4OoKfVVa', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 5, + merchant_name: null, + type: 'heartland', + }, + { + id: 'v_GP5gjEBzvXp1MAbR76Wxd', + label: 'v_GP5gjEBzvXp1MAbR76Wxd', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 5, + merchant_name: null, + type: 'heartland', + }, + { + id: 'v_r6ZqQJh5NF4U3YUrJKP4i', + label: 'v_r6ZqQJh5NF4U3YUrJKP4i', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 5, + merchant_name: null, + type: 'heartland', + }, + { + id: 'v_hhGzyoe55IpOgNKbpin40', + label: 'v_hhGzyoe55IpOgNKbpin40', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 2, + merchant_name: null, + type: 'supermarket', + }, + { + id: 'v_2mON1wEXJ1qpUWAv5FnHG', + label: 'v_2mON1wEXJ1qpUWAv5FnHG', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 2, + merchant_name: null, + type: 'supermarket', + }, + { + id: 'v_zRGU0YX498auGS1ZMdhql', + label: 'v_zRGU0YX498auGS1ZMdhql', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 2, + merchant_name: null, + type: 'supermarket', + }, + { + id: 'v_aFT01diuiYlIxqTqwmWUi', + label: 'v_aFT01diuiYlIxqTqwmWUi', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 2, + merchant_name: null, + type: 'supermarket', + }, + { + id: 'v_cZHhI11R8Wep42wGVyzuN', + label: 'v_cZHhI11R8Wep42wGVyzuN', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 2, + merchant_name: null, + type: 'supermarket', + }, +] + +export const redeemedHeartlandTypesVouchers = [ + { + id: 'v_enT791mQRuqgi03OhaNQB', + label: 'v_enT791mQRuqgi03OhaNQB', + state: 'redeemed', + metadata: {}, + last_redeemed_timestamp: DEFAULT_LAST_REDEEMED_TIMESTAMP, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 10, + merchant_name: MERCHANT_NAMES.HEARTLAND, + type: 'heartland', + transaction_id: 'transaction_ae522479-1d8e-4790-b93a-17ae9bbf00cc', + }, + { + id: 'v_BZpRLJBLfaCpqAvM6nmVU', + label: 'v_BZpRLJBLfaCpqAvM6nmVU', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 10, + merchant_name: null, + type: 'supermarket', + }, + { + id: 'v_yQMFlMU7t0IpPLYOQq0Nt', + label: 'v_yQMFlMU7t0IpPLYOQq0Nt', + state: 'redeemed', + metadata: {}, + last_redeemed_timestamp: DEFAULT_LAST_REDEEMED_TIMESTAMP, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 5, + merchant_name: MERCHANT_NAMES.HEARTLAND, + type: 'heartland', + transaction_id: 'transaction_ae522479-1d8e-4790-b93a-17ae9bbf00cc', + }, + { + id: 'v_HNGL3uAIV8yrZn45i0Jlt', + label: 'v_HNGL3uAIV8yrZn45i0Jlt', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 5, + merchant_name: null, + type: 'heartland', + }, + { + id: 'v_lqkDXjrTOUoVP4OoKfVVa', + label: 'v_lqkDXjrTOUoVP4OoKfVVa', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 5, + merchant_name: null, + type: 'heartland', + }, + { + id: 'v_GP5gjEBzvXp1MAbR76Wxd', + label: 'v_GP5gjEBzvXp1MAbR76Wxd', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 5, + merchant_name: null, + type: 'heartland', + }, + { + id: 'v_r6ZqQJh5NF4U3YUrJKP4i', + label: 'v_r6ZqQJh5NF4U3YUrJKP4i', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 5, + merchant_name: null, + type: 'heartland', + }, + { + id: 'v_hhGzyoe55IpOgNKbpin40', + label: 'v_hhGzyoe55IpOgNKbpin40', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 2, + merchant_name: null, + type: 'supermarket', + }, + { + id: 'v_2mON1wEXJ1qpUWAv5FnHG', + label: 'v_2mON1wEXJ1qpUWAv5FnHG', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 2, + merchant_name: null, + type: 'supermarket', + }, + { + id: 'v_zRGU0YX498auGS1ZMdhql', + label: 'v_zRGU0YX498auGS1ZMdhql', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 2, + merchant_name: null, + type: 'supermarket', + }, + { + id: 'v_aFT01diuiYlIxqTqwmWUi', + label: 'v_aFT01diuiYlIxqTqwmWUi', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 2, + merchant_name: null, + type: 'supermarket', + }, + { + id: 'v_cZHhI11R8Wep42wGVyzuN', + label: 'v_cZHhI11R8Wep42wGVyzuN', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 2, + merchant_name: null, + type: 'supermarket', + }, +] + +export const redeemedSupermarketTypesVouchers = [ + { + id: 'v_enT791mQRuqgi03OhaNQB', + label: 'v_enT791mQRuqgi03OhaNQB', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 10, + merchant_name: null, + type: 'heartland', + }, + { + id: 'v_BZpRLJBLfaCpqAvM6nmVU', + label: 'v_BZpRLJBLfaCpqAvM6nmVU', + state: 'redeemed', + metadata: {}, + last_redeemed_timestamp: DEFAULT_LAST_REDEEMED_TIMESTAMP, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 10, + merchant_name: MERCHANT_NAMES.SUPERMARKET, + type: 'supermarket', + transaction_id: 'transaction_ae522479-1d8e-4790-b93a-17ae9bbf00cc', + }, + { + id: 'v_yQMFlMU7t0IpPLYOQq0Nt', + label: 'v_yQMFlMU7t0IpPLYOQq0Nt', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 5, + merchant_name: null, + type: 'heartland', + }, + { + id: 'v_HNGL3uAIV8yrZn45i0Jlt', + label: 'v_HNGL3uAIV8yrZn45i0Jlt', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 5, + merchant_name: null, + type: 'heartland', + }, + { + id: 'v_lqkDXjrTOUoVP4OoKfVVa', + label: 'v_lqkDXjrTOUoVP4OoKfVVa', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 5, + merchant_name: null, + type: 'heartland', + }, + { + id: 'v_GP5gjEBzvXp1MAbR76Wxd', + label: 'v_GP5gjEBzvXp1MAbR76Wxd', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 5, + merchant_name: null, + type: 'heartland', + }, + { + id: 'v_r6ZqQJh5NF4U3YUrJKP4i', + label: 'v_r6ZqQJh5NF4U3YUrJKP4i', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 5, + merchant_name: null, + type: 'heartland', + }, + { + id: 'v_hhGzyoe55IpOgNKbpin40', + label: 'v_hhGzyoe55IpOgNKbpin40', + state: 'redeemed', + metadata: {}, + last_redeemed_timestamp: DEFAULT_LAST_REDEEMED_TIMESTAMP, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 2, + merchant_name: MERCHANT_NAMES.SUPERMARKET, + type: 'supermarket', + transaction_id: 'transaction_ae522479-1d8e-4790-b93a-17ae9bbf00cc', + }, + { + id: 'v_2mON1wEXJ1qpUWAv5FnHG', + label: 'v_2mON1wEXJ1qpUWAv5FnHG', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 2, + merchant_name: null, + type: 'supermarket', + }, + { + id: 'v_zRGU0YX498auGS1ZMdhql', + label: 'v_zRGU0YX498auGS1ZMdhql', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 2, + merchant_name: null, + type: 'supermarket', + }, + { + id: 'v_aFT01diuiYlIxqTqwmWUi', + label: 'v_aFT01diuiYlIxqTqwmWUi', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 2, + merchant_name: null, + type: 'supermarket', + }, + { + id: 'v_cZHhI11R8Wep42wGVyzuN', + label: 'v_cZHhI11R8Wep42wGVyzuN', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 2, + merchant_name: null, + type: 'supermarket', + }, +] + +export const moreThanMaximumVouchers = [ + { + id: 'v_enT791mQRuqgi03OhaNQB', + label: 'v_enT791mQRuqgi03OhaNQB', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 10, + merchant_name: null, + type: null, + }, + { + id: 'v_BZpRLJBLfaCpqAvM6nmVU', + label: 'v_BZpRLJBLfaCpqAvM6nmVU', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 10, + merchant_name: null, + type: null, + }, + { + id: 'v_DWTHXIEOqjapBuNmcBDy7', + label: 'v_DWTHXIEOqjapBuNmcBDy7', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 10, + merchant_name: null, + type: null, + }, + { + id: 'v_AJ9EGvNfdrn0WM39eePwo', + label: 'v_AJ9EGvNfdrn0WM39eePwo', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 10, + merchant_name: null, + type: null, + }, + { + id: 'v_gaaBVnHZ4laJqZx8TKyj9', + label: 'v_gaaBVnHZ4laJqZx8TKyj9', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 10, + merchant_name: null, + type: null, + }, + { + id: 'v_fMFMgRnrqhoHCrCRgjENE', + label: 'v_fMFMgRnrqhoHCrCRgjENE', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 10, + merchant_name: null, + type: null, + }, + { + id: 'v_yQMFlMU7t0IpPLYOQq0Nt', + label: 'v_yQMFlMU7t0IpPLYOQq0Nt', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 5, + merchant_name: null, + type: null, + }, + { + id: 'v_HNGL3uAIV8yrZn45i0Jlt', + label: 'v_HNGL3uAIV8yrZn45i0Jlt', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 5, + merchant_name: null, + type: null, + }, + { + id: 'v_lqkDXjrTOUoVP4OoKfVVa', + label: 'v_lqkDXjrTOUoVP4OoKfVVa', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 5, + merchant_name: null, + type: null, + }, + { + id: 'v_GP5gjEBzvXp1MAbR76Wxd', + label: 'v_GP5gjEBzvXp1MAbR76Wxd', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 5, + merchant_name: null, + type: null, + }, + { + id: 'v_r6ZqQJh5NF4U3YUrJKP4i', + label: 'v_r6ZqQJh5NF4U3YUrJKP4i', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 5, + merchant_name: null, + type: null, + }, + { + id: 'v_hhGzyoe55IpOgNKbpin40', + label: 'v_hhGzyoe55IpOgNKbpin40', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 2, + merchant_name: null, + type: null, + }, + { + id: 'v_2mON1wEXJ1qpUWAv5FnHG', + label: 'v_2mON1wEXJ1qpUWAv5FnHG', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 2, + merchant_name: null, + type: null, + }, + { + id: 'v_zRGU0YX498auGS1ZMdhql', + label: 'v_zRGU0YX498auGS1ZMdhql', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 2, + merchant_name: null, + type: null, + }, + { + id: 'v_aFT01diuiYlIxqTqwmWUi', + label: 'v_aFT01diuiYlIxqTqwmWUi', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 2, + merchant_name: null, + type: null, + }, + { + id: 'v_cZHhI11R8Wep42wGVyzuN', + label: 'v_cZHhI11R8Wep42wGVyzuN', + state: 'unused', + metadata: {}, + last_redeemed_timestamp: null, + created_at: '2022-09-08T14:46:52.305+08:00', + updated_at: '2022-09-08T14:46:52.305+08:00', + voucher_value: 2, + merchant_name: null, + type: null, + }, +] diff --git a/packages/voucher/e2e/utils/helpers.ts b/packages/voucher/e2e/utils/helpers.ts new file mode 100644 index 0000000..e84f230 --- /dev/null +++ b/packages/voucher/e2e/utils/helpers.ts @@ -0,0 +1,79 @@ +import {chromium, Page} from '@playwright/test' +import originalPercySnapshot from '@percy/playwright' +import {CDC_MERCHANT_LIST_URL} from '../mocks/common' + +// This function visits the hard-coded CDC merchant list url +// to retrieve the actual URL value, because they perform redirects +// on the original URL. +// Example: https://gowhere.gov.sg -> https://gowhere.gov.sg/heartland?filter... +export async function getCDCMerchantListRedirectURL() { + const browser = await chromium.launch() + + const context = await browser.newContext() + const page = await context.newPage() + + // Navigate to the initial URL. + await page.goto(CDC_MERCHANT_LIST_URL) + + // Wait for the page to fully load and finish any redirects. + await page.waitForLoadState('domcontentloaded') + + // Get the final URL after any redirects. + const redirectedUrl = page.url() + + await browser.close() + + return redirectedUrl +} + +export async function waitForInitialFontLoad(page: Page) { + await page.waitForFunction(() => document.fonts.load('12px Inter')) +} + +export async function percySnapshot( + page: Page, + name: string, + widths: number[] = [320, 360, 450, 600], + minHeight = 640, +) { + await originalPercySnapshot(page, name, { + widths, + minHeight, + }) +} + +export async function mockConnectionLost(page: Page) { + await page.route('**/public/vouchers/groups/UQGVUCIN1S6BZY3', (route) => + route.abort(), + ) +} + +export async function replaceWholeCanvasIntoAnImageForTest(page: Page) { + const qrCodeId = 'qr-code' + const canvas = await page.$(`#${qrCodeId}`) + if (canvas) { + // Using jpeg as it is smaller in size + const canvasRaw = await canvas.screenshot({type: 'jpeg'}) + const canvasBase64 = canvasRaw.toString('base64') + + await page.evaluate( + async ([canvasBase64, canvas]) => { + // Creates a new image with the screenshot + const img = new Image() + img.src = `data:image/jpeg;base64,${canvasBase64}` + + // Trick to avoid the image from being hidden / blocked + img.style.zIndex = '100' + img.style.position = 'relative' + + // Replace the canvas element with the screenshot + canvas.parentNode?.replaceChild(img, canvas) + + // Remove all possible canvas because all the canvas are tainted already, and will fail the snapshot test. + const allCanvas = document.querySelectorAll('canvas') || [] + allCanvas.forEach((toRemoveCanvas) => toRemoveCanvas.remove()) + }, + [canvasBase64, canvas] as const, + ) + } +} diff --git a/packages/voucher/e2e/utils/network.ts b/packages/voucher/e2e/utils/network.ts new file mode 100644 index 0000000..be2bcd9 --- /dev/null +++ b/packages/voucher/e2e/utils/network.ts @@ -0,0 +1,161 @@ +import {BrowserContext} from '@playwright/test' +import { + endedGroupedVouchersResponse, + moreThanMaximumGroupedVouchersResponse, + notStartedGroupedVouchersResponse, + redeemedAndVoidedGroupedVouchersResponse, + redeemedGroupedVouchersResponse, + unusedGroupedVouchersResponse, +} from '../mocks/DefaultGroupedVouchers.response' +import type {JsonObject} from 'type-fest' +import { + noRedemptionEventsResponse, + redemptionEventsResponse, +} from '../mocks/GroupedVoucherEvents.response' +import { + endedGroupedVouchersTypesResponse, + notStartedGroupedVouchersTypesResponse, + redeemedGroupedVouchersHeartlandTypesResponse, + redeemedGroupedVouchersSupermarketTypesResponse, + unusedGroupedVouchersTypesResponse, +} from '../mocks/TypedGroupedVouchers.response' + +async function mockGroupVoucherApiResponse( + context: BrowserContext, + responseBody: JsonObject, +) { + return context.route('**/public/vouchers/groups/UQGVUCIN1S6BZY3', (route) => + route.fulfill({ + status: 200, + headers: {'Access-Control-Allow-Origin': '*'}, + body: JSON.stringify(responseBody), + }), + ) +} + +export async function mockNotFoundGroupVoucherApiResponse( + context: BrowserContext, +) { + return context.route('**/public/vouchers/groups/non-existant', (route) => + route.fulfill({ + status: 404, + headers: {'Access-Control-Allow-Origin': '*'}, + body: JSON.stringify({ + error: { + code: 'group_id_not_found', + message: 'Could not find group with this id.', + type: 'invalid_request_error', + }, + }), + }), + ) +} + +export async function mockUnusedGroupVoucherApiResponse( + context: BrowserContext, +) { + return mockGroupVoucherApiResponse(context, unusedGroupedVouchersResponse) +} + +export async function mockEndedGroupVoucherApiResponse( + context: BrowserContext, +) { + return mockGroupVoucherApiResponse(context, endedGroupedVouchersResponse) +} + +export async function mockNotStartedGroupVoucherApiResponse( + context: BrowserContext, +) { + return mockGroupVoucherApiResponse(context, notStartedGroupedVouchersResponse) +} + +export async function mockUnusedGroupVoucherTypesApiResponse( + context: BrowserContext, +) { + return mockGroupVoucherApiResponse( + context, + unusedGroupedVouchersTypesResponse, + ) +} + +export async function mockEndedGroupVoucherTypesApiResponse( + context: BrowserContext, +) { + return mockGroupVoucherApiResponse(context, endedGroupedVouchersTypesResponse) +} + +export async function mockNotStartedGroupVoucherTypesApiResponse( + context: BrowserContext, +) { + return mockGroupVoucherApiResponse( + context, + notStartedGroupedVouchersTypesResponse, + ) +} + +export async function mockRedeemedGroupVoucherApiResponse( + context: BrowserContext, +) { + return mockGroupVoucherApiResponse(context, redeemedGroupedVouchersResponse) +} + +export async function mockRedeemedGroupVoucherApiHeartlandTypesResponse( + context: BrowserContext, +) { + return mockGroupVoucherApiResponse( + context, + redeemedGroupedVouchersHeartlandTypesResponse, + ) +} + +export async function mockRedeemedGroupVoucherApiSupermarketTypesResponse( + context: BrowserContext, +) { + return mockGroupVoucherApiResponse( + context, + redeemedGroupedVouchersSupermarketTypesResponse, + ) +} + +export async function mockRedeemedAndVoidedGroupVoucherApiResponse( + context: BrowserContext, +) { + return mockGroupVoucherApiResponse( + context, + redeemedAndVoidedGroupedVouchersResponse, + ) +} + +export async function mockMoreThanMaximumGroupedVouchersApiResponse( + context: BrowserContext, +) { + return mockGroupVoucherApiResponse( + context, + moreThanMaximumGroupedVouchersResponse, + ) +} + +async function mockTransactionHistoryApiResponse( + context: BrowserContext, + responseBody: JsonObject, +) { + return context.route('**/public/events/vouchers/UQGVUCIN1S6BZY3', (route) => + route.fulfill({ + status: 200, + headers: {'Access-Control-Allow-Origin': '*'}, + body: JSON.stringify(responseBody), + }), + ) +} + +export async function mockEmptyTransactionHistoryApiResponse( + context: BrowserContext, +) { + return mockTransactionHistoryApiResponse(context, noRedemptionEventsResponse) +} + +export async function mockTransactionHistoryContentApiResponse( + context: BrowserContext, +) { + return mockTransactionHistoryApiResponse(context, redemptionEventsResponse) +} diff --git a/packages/voucher/package.json b/packages/voucher/package.json new file mode 100644 index 0000000..b262d88 --- /dev/null +++ b/packages/voucher/package.json @@ -0,0 +1,106 @@ +{ + "name": "@redeem/voucher", + "version": "0.1.0", + "private": true, + "dependencies": { + "@chakra-ui/react": "^2.8.2", + "@chakra-ui/theme-tools": "^2.1.2", + "@chakra-ui/utils": "^2.0.14", + "@datadog/browser-logs": "^4.28.0", + "@datadog/browser-rum": "^4.8.1", + "@emotion/react": "^11.11.4", + "@emotion/styled": "^11.8.1", + "@playwright/test": "^1.44.0", + "@rehooks/local-storage": "^2.4.4", + "@tanstack/react-query": "^5.36.0", + "axios": "^0.28.1", + "camelcase-keys": "^9.1.3", + "capital-case": "^1.0.4", + "dompurify": "^2.3.0", + "focus-visible": "^5.2.0", + "framer-motion": "^11.1.9", + "i18next": "^21.8.11", + "i18next-browser-languagedetector": "^6.1.4", + "launchdarkly-react-client-sdk": "^3.0.8", + "lodash": "^4.17.21", + "moment-timezone": "^0.5.45", + "prop-types": "^15.7.2", + "qrcode": "^1.4.4", + "qs": "^6.10.3", + "react": "^18.3.1", + "react-app-polyfill": "^2.0.0", + "react-device-detect": "^2.1.2", + "react-dom": "^18.3.1", + "react-helmet-async": "^2.0.5", + "react-hot-toast": "^2.1.1", + "react-i18next": "^11.17.4", + "react-icons": "^5.2.1", + "react-router-dom": "^6.23.1", + "react-scripts": "^5.0.1", + "sass": "^1.77.1", + "snakecase-keys": "^8.0.1", + "usehooks-ts": "^2.9.1", + "uuid": "^8.3.2" + }, + "scripts": { + "dev": "npm start", + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "test:e2e": "playwright test --config playwright.config.ts", + "test:e2e:update": "playwright test --config playwright.config.ts --update-snapshots", + "test:e2e:ci": "percy exec --parallel -- pnpm test:e2e", + "percy:ci:build": "percy build:finalize", + "lint": "eslint .", + "lint:trans": "eslint --no-eslintrc --config .i18n-json.eslintrc.js --fix --ext .json --format node_modules/eslint-plugin-i18n-json/formatter.js src/locales/", + "unused-exports": "ts-unused-exports tsconfig.json --showLineNumber --silent", + "eject": "react-scripts eject", + "pre-push": "npm run unused-exports" + }, + "eslintConfig": { + "extends": "react-app" + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + ">0.2%", + "not dead", + "not op_mini all" + ] + }, + "devDependencies": { + "@babel/plugin-transform-private-property-in-object": "^7.24.5", + "@percy/cli": "^1.28.6", + "@percy/playwright": "^1.0.5", + "@testing-library/jest-dom": "^6.4.5", + "@testing-library/react": "^15.0.7", + "@testing-library/user-event": "^14.5.2", + "@types/dompurify": "^2.3.3", + "@types/jest": "^29.5.12", + "@types/lodash": "^4.14.172", + "@types/node": "^20.12.11", + "@types/qrcode": "^1.4.2", + "@types/qs": "^6.9.7", + "@types/react": "^18.3.2", + "@types/react-dom": "^18.3.0", + "@types/uuid": "^8.3.4", + "@typescript-eslint/eslint-plugin": "^7.8.0", + "@typescript-eslint/parser": "^7.8.0", + "eslint": "^8.57.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-chakra-ui": "^0.11.0", + "eslint-plugin-i18n-json": "^4.0.0", + "eslint-plugin-import": "^2.29.1", + "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-react": "^7.34.1", + "eslint-plugin-react-hooks": "^4.6.2", + "prettier": "^3.2.5", + "ts-unused-exports": "^8.0.0", + "type-fest": "^2.16.0", + "typescript": "^4.9.5" + } +} diff --git a/packages/voucher/playwright.config.ts b/packages/voucher/playwright.config.ts new file mode 100644 index 0000000..54d054a --- /dev/null +++ b/packages/voucher/playwright.config.ts @@ -0,0 +1,57 @@ +import {PlaywrightTestConfig, devices, Project} from '@playwright/test' +import _ from 'lodash' + +const androidPhones = ['Moto G4'] +const iosPhones = ['iPhone SE'] + +const androidProjects: Project[] = _.map(androidPhones, (androidPhone) => ({ + name: androidPhone, + use: { + browserName: 'chromium', + ...devices[androidPhone], + }, +})) + +const iosProjects: Project[] = _.map(iosPhones, (iosPhone) => ({ + name: iosPhone, + use: { + browserName: 'webkit', + ...devices[iosPhone], + }, +})) + +/** + * See https://playwright.dev/docs/test-configuration. + * See https://github.com/microsoft/playwright/issues/14814 for some of the more configuration used. + */ +const config: PlaywrightTestConfig = { + // In signup and admin repository, there is an explicit technique to prevent situations where tests start before the dev server is ready. However + // in voucher repository, since its light weight, there is not much of this issue. See https://github.com/microsoft/playwright/issues/14814#issuecomment-1154581680 + webServer: { + command: 'pnpm start', + port: 3000, + // Increasing the timeout for web server should get rid of Timed out waiting XXXXms from config.webServer. + // This was the common source of our first test case always failing and is being marked as flaky. See https://github.com/datagovsg/redeem-admin/pull/681#discussion_r1356016918 + timeout: 120 * 1000, + reuseExistingServer: !process.env.CI, + }, + projects: _.concat(iosProjects, androidProjects), + retries: 3, + timeout: 2 * 60 * 1000, + // Parallel tests are flaky. + // Configuration for Worker Parallelism: + // CI Environment: 1 worker is assigned due to the inherent flakiness of parallel tests and to conform with GitHub Actions, which has 2 cores by default. + // Playwright, by default, utilizes 50% of available cores; thus, in CI, we opt for 1 worker. + // Local Environment: The worker count is left undefined, allowing Playwright to autonomously determine the optimal number of cores to utilize based on the + // machine's specifications. + workers: process.env.CI ? 1 : undefined, + // In CI, we are using the sharding technique to speed up our playwright test. + // Configuration for Report Generation: + // CI Environment: The 'blob' reporter details about the test run and can be used later to produce any other report. Their primary function is to facilitate the merging of reports from sharded tests. + // Local Environment: The 'html' reporter is preferred to produce a consolidated, web-viewable report for all tests, generating a self-contained folder that can be served as a web page for convenient inspection and review. + reporter: process.env.CI ? 'blob' : 'html', + // Signifies that each test case within a test file is executed in parallel. It's imperative to note that this configuration presumes and necessitates + // that test cases are truly isolated and bear no dependencies on one another for accurate, reliable results. + fullyParallel: true, +} +export default config diff --git a/packages/voucher/public/apple-touch-icon.png b/packages/voucher/public/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..8702e9fd35ed1e09ec5833e44676de7db1ca26c1 GIT binary patch literal 8434 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 UmU-L5B>(^b07*qoM6N<$g2|j>%K!iX literal 0 HcmV?d00001 diff --git a/packages/voucher/public/favicon-16x16.png b/packages/voucher/public/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..bd0b2dc8215197b1d0d1f17306bdab14450a11cd GIT binary patch literal 609 zcmV-n0-pVeP)Px%8%ab#R5(wa(@{uMQ5XmC|GD?>Zo0LVRHK(_(-BT;D|1)M0_nM=ryhIlB@u;o zv!|daBBG#&1U1J(B?!s_GsM(kI6>If%$U`jb3sjCQd#rv-V@t$I=Py39`E_i@0|Pp z&LIv#yszcCMvi4QP#Nh}39_uH%#dG%(ksL%h?%bTCe~yuRa=itMn)(+3y*gQbMa(x z4aGnJt3Uw6l?HI_e@{LX5!J}9I4@75wp!r%yG2n2C zvQT4V8qN!_S03EW2&wChm?SY~wh|EMc04_0Yv6%Ub7iw{) zuBx#6;7|~qo|`}ZOiPryGB*Z^$N#+$c$z_A8cEycMkEw7+|VEEs_ z$Eg_Z+(Q*7tF0KJ? z<=N8~vQ_$R?Qanb&7-G=;` vb})|Ch*p-s%d(71Run(Wa+fDR-1_Px(V@X6oR9HvFm+McHR~*N`r<78Xw&RP#VFJANY6(9F z3i8t+5C}pQPgwiMPMFZr+8aCqYMtIi0I^RhJxu}qj#rS7APdV$AR(`p!@KVv#=ZL! z!2t@3t4aifD+CY=kT(FRQ&U#q!2YfOD-x~eENDF55$YohWVS?J-fpQ#>KXze@%yT` zAU7u^lmWl{_MdNJkKr^t9xoKD;&AW&gFtqk1OPzPy2={_BxBcyuS28Gj0k}Bew(om z$4_>_&xXLuPBA%XbhqRTM6*CR4PWpq4y9Q8xs;>dU^(< zcgJBL7($21ijmuY@;W)HEEKF!f#W!wZ87q{ewKk9#|{uEeVZbY5EbQ{QS^LvK<5`P z{eq^`-EfRP0OgOe$7`i*1=IyOP$=Rby)>FG!0CJ#0N}sVP^-y8Mn(cQm1>X}qyv7x zeh2!GPJmJhu~-atkC4QQA(zXLq)b43+{$^5uJjLJaA-IRB9ssVNUCs*dr+rc6}e z#SKLufigE-&bhla*>eq?WaX`SB=@O|>&&QH{#jW8xpnw}3{lsSZ ztmaVzYu9~{%gsbZo`YF#XcScupaDP>ivpXLvzMjMj-i_)?3KaVTeFir1fL)a2#H2l zxdR~kS!Wb!3y_w&nzu4M;s66+Ly3Ybwe{ATmjr+r)fDS%K~TY-MbXiqp#1%SUjzrN zmut5BzHQMX;4`c))^8>R6_i3t2)v-MPysn;yKHEl9oT;XYUjktG`cOJ00000NkvXX Hu0mjfgqke; literal 0 HcmV?d00001 diff --git a/packages/voucher/public/favicon.ico b/packages/voucher/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..63a3943538a63e9a56f27092d0b729c3778eaad4 GIT binary patch literal 15406 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 literal 0 HcmV?d00001 diff --git a/packages/voucher/public/images/fridge_logo.png b/packages/voucher/public/images/fridge_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..dbe5a3e7e48cbf1a859851cd0c55a0263e1e7166 GIT binary patch literal 240729 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%0D87{f$Vewf0iC^^3kV71B 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

-OVM#f7R?~aeazRO!b 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 z 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 literal 0 HcmV?d00001 diff --git a/packages/voucher/public/images/light_logo.png b/packages/voucher/public/images/light_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..718a3c4de18df06cd7049c83a185bd7905ee422e GIT binary patch literal 103347 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 literal 0 HcmV?d00001 diff --git a/packages/voucher/public/images/sg_united.png b/packages/voucher/public/images/sg_united.png new file mode 100644 index 0000000000000000000000000000000000000000..c500d89e7520ff35b87abeb4d2fca0ce6486fd24 GIT binary patch literal 22661 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 Ef*0UaRsaA1 literal 0 HcmV?d00001 diff --git a/packages/voucher/public/images/shower_logo.png b/packages/voucher/public/images/shower_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..a6b447266bd546418873af70edf0bd17831a9ba9 GIT binary patch literal 109750 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 literal 0 HcmV?d00001 diff --git a/packages/voucher/public/images/voucher_sms.png b/packages/voucher/public/images/voucher_sms.png new file mode 100644 index 0000000000000000000000000000000000000000..ae6e8fc32c42615506661a97a8dc9294f2cb0614 GIT binary patch literal 58984 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�gXNgM^j%QkUEHyA)$|dD}cW7cLXhdIw z{ApEx2cH9i@b<-L3t$C)qpH-7=_JU3R~(zrL;DB>VP!*;H~ga=4(S5t?Rd491jGty zO77XSsP_Fn7Zwz$@;{~Lou7@LcbAtl%GSNx9ID7ApPHWw9} zvhm_gL?)(ICUlQh44mzji>`?S08qf@vdS?!^kVIbQS23RSVJTw0lm}i4^DTE;CKqC zS=yuOnrdQ54>54+&KGAVG?c3Gjr=zTH-x=E{ntJ}n4W1DYlGfL_);J!8H=42sF8eD ziHxlUL(m=y+xD@e`OKNcBTYw#PHX~)0;uIo{NDqgxWgM~I)&$XdRg)w}@ zn1rq1XIU!P*JrN$1)y(<%Jj=HFg{Hb04)e9u8c24O1E0wWRiSB=v~73eW4geHQ3@l z+lpF5kHXYYkHra;3Qojjrx!I1#pkn@JgYAzjd#@g;TxGIDGngW58pfUN`o?dPz~XT zvJ_kYd|_RHczUSGHVD7${AWkmSK(U}ndp|tY+-*+PD$zIlryVcf%`%NoZzP)oIf;- zk+u*)%V+14H&sCr1*L;4GE%a#iiIa1Ja>=Jw#DQmY8+QB_IBfbWwHuLN2`1cHxxB} zxpRF71!OK;Hyy#_+y6?0flr%5-W36mWj`tY!^BX-dZti;@2pR zIy;CK2zf?-HFjW8vGREp7DsfY8=4x+=Cz67aj>ecF||d;YRYsT3_I>Kv`tMS>Xt{C zh_}(fc`^fuxE1%48?``+_%FX9w-X-> z?7SV)x_%`2{#&A|Cn)xkxk|+WUbRp|e9w_sw#+X{|+K0r^qPCp1=x*qM%8~@9*>O&SEE$qB50=B)1A|qW^U9@OCAZdu%*4L{ zl~RGSy}v^*9Dcen+2fxV!c$@dvXWvB3@2(F&phhbL)73HX+@PwFg1apj2|TM^J-+A zX}>vcX_+jl@CQ;`+|HVCJYl`QY`JUW9;b+u29Z)h%3VorXS&JXBpQ1KdG2OQajQqD zfKD;BTS5QVAnbFF`PV2syiw=@nfG-{Hjo@vo1 z$j8~e(n6)`-%3QW;*e=r6nu96v_#nhGG1?x-uct2xZXIX5PYTcrdThp?xJ2Se;tC18Rmkpky~WHsnp5^Du-`?XWxtt( zB6k>iW^(qt@$cAmBKK0y`*EO5i!)o=1sRLJks}uq2!ifbR?l!4Yv#4n$}KKIykmnr zF@n#lSKpco!cCW8@gL){n~5FWJ`xUW(UQ-uzt#Ln|9Z zQXZp@yJfpQFPOvN9qon>mQuv&z2H%<#HsKv;>859dlJ7SC85SEU4Db^44897e5S9_ z0@Hv}kz$FCHyDAI4~9!DXJdw4x?_3La^)rPmR7&!xr{Y)FFq#J+j&#J?0r60RjjOq z$72MQOG=k^|-MVEFcu z&N#oNU7l}_eL3n;8bMn?TL`w% z)}xjbil4=-(H?DVe`gN~OGSs@$~{6-gaywm%r+}HbP=5(dB0dQZh zruIA>1^!wZX@t*HEBx@p|9~Py1(uoP#ko4#RsD!=p+`}dq|8|0@4$rN`DyU{Bf^2Y zz9Qb;jvS3`K;cJeYlOW_5A?>l6T|PEJOB(~Mpp_+%{>cX4)8Y<2HpO&p>0e$2vX_ebX_^`NjB0qF zvMNeT&3KeK>ni!HdO$; zYBbR8tJJkLD_B6bHkkMoz8qqo_E zgKps~mWg{Qb~E#$3*z#(&YE?V%)|^`(5^xjv4r4Uxo%e;`Z|!o3ZHQw+832Lj}vTv z{rG|(+=5NPM_Aeu_!A(mU7q{5IN{Ig)D9rDq zQjs{9&8vDx`@^vAuaL7DyZgOS34pO29$bNG$fc?j6*X#71)uFIdPh+Dy292E@r=0k zAy++W$7}lCVyS^%+z$|+TG+~r z0mss`5jpA_UVDBG-BDRjZDDTp|I(5XF{Y0K3gZL+I_Mnm@${e)+r2X|3H}ar#VZ7l zzV(>ab6@GqZe|iDo4&D80WTsigwv5N4n;Bs&n&2mehRNje1ca{go(Lesa{eq{}f3<@qY;f z^r9Mt7H0q2sEXxui3`RCd}4UbXbRbD(RxF>i>U&U@O_H1JYME%s!4=->JrP4C^Eh> zOip?0q{r8%whQVGgU@~PV^EnS>bk!9S}q2PG6Jy}a&ZUij!Pf2>WF=Pk?aBnr%w|T zSIf3jOrk=Mpd+B1L;#uv#E?S=x7tKR0@V1q#`BeI+5@!+(*I5@kx((kZU$d-`+PeI zvvQZBF|#lY!foiUaaIwH-S?*Kh@ts4BBnza2-%Bz79$W+-x9e-DP#nT2{zRRCO7po z`mV+>wOQY?z2|s>y2mizT{2)G-$oCdrmrLNIpQMnxxMfd3sjkOL4z1$SQS$^3{a^@ z{?Go;?2$y@Xo||IOoEdX#p}2RBH>eZUO8QPHD|f*gMoznh@24~`l6fb8YCp)$?tNZTT3u{QMc@cNuC6) zTceiqh}ua;tHpX-m%WCp`Xc8kNJ>hYa=N;@Hn^V~w4KzAyL7HsAmK1;7&G^km0^?% zS)@lueHy?5=)f44=M}}ek(X@Q4PMj(86fAbg&U>5hdBaeRT$k)DpBRdpUO=)gybb} zBFD9Ym>u1VZ{z~key1O@C;bRG^m^9q3{Rt|lE?&}Kk2!w1VXO&tEf2YM5NOm6$%P|OZ?@Uv2q%Kf|{i63TU z1ALFz29M?6;X*6Kns4v!BJ~@Y$_jl90zDofvdeR$jzPbB#8xuf|B`<8cz&oZJFLzo z+r3lWeEWy^s_=IIaGG%VWysc!ohSF@GSpvH%Ya7T{bi2BJ;`s_MDTv`ofR)AmVW&6 z?Xck=OHKqN`1)a;tS#MX`3sA+R+*gSS!hF;BXqV@kB}0IiwxF#`Ir5+dzZ|jFBcl6 zgF9aSL#&at=@CJqlA_^yzTAy;O&R?-D~IZQU7T0CD=*fbcF%&xYD|PcpPxRmDwWXS zXYuu{c9NE~|5>+>tRusxHObkZY}m{$f4-Ivztv8iD)YO!xvF;-Csx-9rx)VGUqAy# zPLunSv(BRym=oZz3XL^efJ#MC>#F_?;}C4AqDp+TZU zi!DROpjxTAX^*o(VLaDz#7k54TD~M@Cu)S^Yg2G5hS!?z%|XA^&F%Od#8GlN^tT_Y zI%xQ*kW4`h#K-Zg5VdpSl(N#}KhBWcNcX|dl)%zgwp$iU3|aVfo}ul&?%e5eJO40_ z%Mz(kgLD_bNNoYLG3!`hRx>h}njo~75OeTX_<-rkqw_j@0XRdXZn5M_C<|6Y2Py$A zuNhRQe>qXq2|euMv^|}*dxl}SYU@ZsF@Yr;eIZXC7yzwNimC?dng*0r+7+ydmZI12 zH?`zqxdod^;w&*%GL=ck9>($WU^BbecG3(SN@KX4-=?Kq^BYj+D|~&-A6gT{LpC*V zL{{`JEv2bWxC3N)Pu(7ytk-w%o=!g@!T)xH8UTN{e3I*VJ(K+sWE@OIo%l6e+A($x zs4jadjS9dcFnY6Xl zx@kLx;n&;*fChu(c{zCy&~aLp_HvnCqTuy$q5JBQ30(0`Wx)sGyt})y7?lM~H6!@j zDh;YNgt5jw+iO=`)^TM3al(5Zimye%I4ByA$X8lmpl?g1NEiulrw1w0DfY@T6Yu7< ztTB9+F8H{WOf7OfmYFD(Xa?;vz1O8kyLkuLzGz%}Popvwzzt8PSzGZ<9n2*|Hvu;H zme3Mmxy*G0=m4JVq~_>meO3N7Wa!T(W~r73a)MKt)Jma-3?JxQTYE(fpoY8f9LS=Qzu*))OomwHN%wU)0zN~Ezp z7&t4n900P%YwEsl~pjZhr0tsk{b+DM23GTLx zl-9&T4vzRpf*SD@e|GJq=OlW^%Tu;Y(3g|99ls=Sqjmuw=o-NeB2ows* zy7_#id(Am;9{6wPA~#s0uGyWo0a_iitPW*8R3=Mvwv~R-d=>HE-+!ns_efw`k{JWI zm%L^R-Y*CdXgTSnYA5hHViM?93H;NdmLbaW+6Q=DhDXPZ-Eh4d^OC~EcR!^y#mHGz zeW@FVZrtmRWrozi=P9rx)ABAUkK@mEzbCuLlln=^fBO>+Cc~dz38&q4wtJ*L>-hJp zMdIcrDSlMy%2Hn6+F-Sf{9Lh(o*W4iu&>{p#CL4{aYG#(0gA>t^I+!>fxPsb2e4nX zZ{As(`hTZhE_aV3l1NiQuZ?p&fD+svguhsV>KQJG^)g&>cU5S^1<1;@9Q>j-x?fc2 zKY#3=Nt#@kdS$_Qd5v13liq&d5v2+&97^Y>(oG2{nfolfDDVGrZMe9Q_lZ3=PmAIR z0Kz2o_u1aKe%g4Ab8@EARbwd3tBZ0wEd^9JC(>xnsTV9+R;Dp_X1KrdHtcscy7Y}8 z%NmU(MKqADl3Y6zw1*AQq&0I5rH+;i?;x*+Jze>Vqgd|I`V z3DgKg3o#jkNwy|S!UQEw^k#))Mh1Q$(w^-FfVvuR88QUYidQq3@-#eim@a&=y7^0# zWQ$Ln{}z_Udqq}!e?B*9a9*%yX`uP6Bd#yaD8ri0@a_(Rb>S>v#%mspowz*$ryYlr zjjBriytJ>82(sK%0H>Q7U4PQpmgUCwxbRZ__HxUeBwr0pZDn$r3ZE_|d`X$yr@z*P z&q#c(JZt-;eu*HDW!UAO>0sK3+O>@xtm1TE3^P#%3mpd;eda*T62q^=s2^~u2GId* zefGIcT#JP2U{+f;VmuPRrpu4q?$mv)EjIchh5Pgk8e?2Z*v|9?-4R7|2}3fY-`wcS zTsm6N&ZJSsF-PEIsU|?gz`78 z#=ep(=y@I!j|eVqw9gN#+3Pdy%|qh)1#zQ43#U$UPAGuM2zir~c;234CPhP}O+AU_ zHz))tGJpF8NuIepLPDuVnGUr|sH^U6It(5klNlhs$X#9M-+1#F55|}cbH+EcLGU~HYJJC*JIg!bD)J~8kf-@w& zu5R~Nb{N9%&?Q|wnIg}1DS2BvTtC{Cu^?<1C;jq^O2)ACn)2i$fjgMCup}||PTYt7 zK|d5J8S^{XZ;Oklf*>M?yw@7&tK0(XK09ZsnAK|&0@Gz8Wm8i}Gg;t<{~$^%8)2le zXc)nQZ)eTlz|9r{A+B&74k!P*ov3m2Uyz**2nR<(;BAFE5F#)f;Uz3*X>bG2% zA8BrT$E(m3X0PId)zCB5yf7vB1A{LQ{-oky>VVBd(fu@HDT30|?gOWw81&Mb@erLG zq@=6_ncG$P1lNjgp}`Ugtn*RbHnAJ;GWUqpVEKMP>2nCxh&z(_!6ouqxg-6EUsIk=It+1rtv24qKry!GZm0wK=Nt_ymD`Pybby7GkR z&DogN{;-fM^oKR(i;{4k=S#oUhj7`gE1O>wBZaQ7pXMC{rq~&q3u_Lmk~2PWZzLac zz0n%y2KU|ls4rH3*diw88Zek9b0|@qR--i&4UoHLz?aIuD7-osKXgX|AV-D=-}l)S zsIs!Na5X06H>}GSkl|?hl%g68YP9)2clMGV1fykPVmOv7OEH<02_1UId0N1S@e{^WgbD zNmR=n>EpxuAMb+zsMN7?1kMrMXvG2m@^T_{vhXQ*5LPgctq#3(tuo+oZULYvZ#i!% zQ4_Maf_3E44{otO`?`>V?h1+opM8xjbnT7M{I!FKQ6M8rBK(^V!@dy2?(>YxaC=hJ z%7lJj|9N9X3l#xn89h*mR{7=Jlh1skr=`wG#xfw7CI%!~++>WY%E&l~_md3@t+G(9 z2yhusC-RZZC69&w;X0mvq_OUyp{XYu`d+K0@CLj2=*z`RNdgzlaC{T0R1)Em#tZFX z3D0G;2pA}p1;u!fDa~mf3(eRmQH~4ghe48^f7)B#(_N44_2Gr7+-ZG|ul3=ipZw8r zf&H9~cUej=1lz9%pLinYz9R=M(RpE8BUc#xstvfk3aul6~+aGIPz?B7xCSLTK3J`|-n>{OHPD%T1TI)Db>~xphjHBh*xv zr9YqeeD#X+rmmWJ5BE;#ud(Inxth4xe(dc7F}wms#2zo&H+TbB+AiSq&qW1+X7;YqN*lmu-;PwdSm9~1?guhi+N7Vd)sFZ%lAOqgRk?T;5+pfWZR z9`jaOYBT8=vDKZyd69{3l7aH9Z7~Gh!{H-xi`pcRa_31w>6-@|2d{`ccxbWSU&;=Z zwceRvB7qxsTO$JB{1M?$E_NeLuUS#=D87d|MFO%TEUlsBLM`Cj%!|Kw{OfSukGu5; zef{}QI7Lc%;{10r?5)2>XoTq1>n%slzr)I-KCeTVI)-hc$py>k&MKrBiHkLN?e8cf zSjTKg#K@0t8|xnQ`I_%ub=_Ul2FQqNvRH1KqhQ^Dpa*Vl`V3@YMI|$4mF} z5Aqo5E_flZgXfokI&7!;p~P-hM#Z@}qq+3-R=QBGyu;4%VWDvN>L!i0qj82e(Ez;P zLe^V|S@C2Z^ihTOIEug3X{=X4wtfRHBZlA;@s(G41-Ii)*mWuuj$~- z%ry5YnC5Pv%A(z(Cz3)r~{U5E5fa6~Om*3KNkJF5dloqG&XLBuYFUKOI@>7X5 zU=b5hTip;Z!NBH8;U83W!7;T+IJ%?ttUgjU!VI~;U)>7L?SPjx#>By`27>wJ21&$!2Zbz*JU60Ry@4hB6_|U4cR!`SI-sQfYh0AT9?!`w3K1g3Qi8NqEpZHr~hN7A> zG;dDKXT-sZ7LA~EM={oVkv!XFA=r4nE~1F&<;~*e;#&W5PT`==-)?8oR~GqoTFr8Q z0M>UqERUoY+fZ}+*PBm-^v@?KfSMA1{uV0UkaLJOcmV9gOFvA+23roIJVzb)A503w z1p_=d!)PM%K1xGJR}L@zM;GTpevwh6vHX*8Keu?f&p#&l7&GZ@`Esb(#G4Sb(BfwmO$|Y=+H`)8mAYCQ7)(_X zIU2dutcg2IP3Bp~bJ??O2)*2(&-zF_h#B5bkrL~3h%~prVmj7twv|^Gd|&%PyXH4~ z_xL3~-Vs*5{FY(pKehQFZm7^Xp7m`?pw|1c+mf_l!Uz(U=`9<2r^|IXq? zNYn^0ITijM3zO>#{s@2*E4NG$Cg$?~%hYx_y=Q8IHiv6;V>EZSc;rjMi?~c;b+)>M zD_>CBhnpO~s%@2!9Iq67LK+uquP4RhT*2z7)wkt1HEI8VC3tb?KW&%npKYwzhg=a7 z1)R(HW=oV8+P|cDv~;?A>{K&4Evui&GV|cd7%-CNfAwW&zo4lFsy=2T9=?joOy^i# zQ9{9p#duy|te|MP#W_lR6NcM}YZMQJ8^7%dV`RWZS-sh`GCt~g9?9I(^1Bye*7p+{ z#KvvUW?NfMFsJ~4U_OMXPl85Pj`X{(1;VJ2scReuzYEBvEjgEQ+-2SX=%cU2w zcIQNueO=!`Q#6@q*ia!6cla!p4?Dg>NZQ+WSMC1q5a)FQYwexEK)UmUD_>o&<&~Y#p~~YG`1i7Kc?Y`g{=gr`OU*tZ;Fss zJ|(IhXJM}+vN>O&^-pAp%8%k(TWqMud~@$AJ#QoY_!R3seUwDbDs`8CYFK*2Uh`&| zMRw$eWZk{2fD@+7xhjS91i9WjnDxA7Yy8Aqr2WstA#dqaP!5QL9*)4g|2IvR-~DW# z7?5Oj7laLB6!yrj>byh@o0R1DN)#-RRn_|-aHb&b8|)M*Sx%cNzzONh`~7`>f;*GU z&5W{m#Uh-M%rMWvJf7sRWC-|9^yyofB5^?+fMod!l#(U0zcG#MsWcK0Q45h3I&hCp zH20%5G#}tWt-`_J;VfV1LywJ<28xZiT6|sgLKRuN<;`&i_gOb!D zNpU+lq0Hgb|T~xbvm(q*pp*l zuThVQosl|Kw3?mA)&Hm5GM|5_kJ?~h$*UpX{}0d{DdWcHRkaVFVp`jZrZ?I|wpz|3 z72jV-*vp`S39_=XGKKT}GG=F3h{gJxwMeD0e;Y-M2U4pIIpC^Vk>G8$rx^=`Ptuzm z4bDz|Q8zjD{ycr|cZ2xGAd7o+hkHDZdiP|FSD4guWqqAaQnh2<9-P^+*YHi%NW!pj zyz3a8;X+qm$k?ky)a)MI{lu1faY?jqwyE?gBu6S08L z$9txbqvuk z($21kM-$N_X6dlKi~K*9v!`&HC-bAQmOYKGtfz}Iqo-~#(Jup~Z^(*m;M}Di$J6zY zaBpufteRD&q?P?0PKy2_J2N=6qYZK{BL z^1T3yj*`K%b5Y5cCf^v3`W79aY=u|2KJuN1Lw}X?-DMUz=zMAQmxiXb8^Sx$171aB}bFSL$+MnknQvKHSO;-8~5v@lC?F^ty|I#*dWS`pXXU`!Ei@WvFaTo zwYV+Ez2r=wBE4pm71%5Bn-47?hqDUAUpD?g*dypJ^f{kBj3$2?DM^pw`FzyEY9?gU zvRVN8E4$nK$Vq=&jG2LYE!nYAzht712FNJ%ob3-M#Qu0DQuu>QZ>?9^er>8^=HI(*0*fv*e%2qRs9!O z!EUuKI-A@5w6tKYz5KpaJd(z_5?9mnINVy!VM9UwJ=pkuPzz?%>XuK=c4m=G55fYO zok%o`` z)K^~J9#++5;91(}B1{3MQ6RM_aTH$llMK@)aPQPwYDG=H(jd;$HV>=4>>RkmHQD61 z*>ATWB!md;N5K3bIywiy2Tqh2!vFqvWwqO)Y6{-p$G0Sh0=PQtux7@7{MfJGZ zJDj#$A)%%>G0TK|*1ky0me)*?`y>PH*u!zS$-*pt*&VXIf0?<1x&S)l`y#X!u&DAr~xrI7006^3M8Wv6AJ2>D_JhyPr?J20j(yM^{PIQ@Rga$UPtgi#SZ&s%FyWSt*j5RPD| zVW_EjD^CogAd zu%0BA{P!eB=AmwS6i(N%Mzq0C{Kc_iI^<$#jD-;QMyI07eRNiIw5yZDs;?zy*ch)9 zmIXCz)x=6B?ENG#Qe@KHe4OHjIkpcEX30;vA0k(>l(U|<2hR2YZS#e4s- z3Me5^^XGm$p}oeTX__5c(6OUa#!7?lbGlvCri_+Et;995PdeQucc5z=4aHw!z(}>< zjR-%H@4Cw|yBTFn?GeLeR3m>B^OWTHyVu?R&#djH$-<-8m#O7C5B2C$vs#Tq7L0^H zO}`VJj(-he(%t6CjQuTTk_donAy!euDH@=OGtZCw@8BWh6?u@(QOB55r&JykfZ~QG zI$2t9!QkQtj8cNYIcWyPcl30E%&C67t@*3kdY%4tEf1qTdL_UJ*E39&!}`=n1-c9= zUdo_NfXo8&wAQru(aK^!Y48j8(L!Wi5@EKXT^KWm&EXTMf8Oks3a9gz4@BV*Yl4q! zZQu_d+VY=8H1a{nfSNKZ(H{=Z2Oz0x9vV0xKF(Kl1RksYSeCI#$0=@YkDJj6h^q_1 zro*ptn8FOVs_JGl_=;r0RBx6;05_hLf6H&KczFB4~tnUEA+*4H!l z!%SA8e6w(Tbq*P%0P60sNLO(Stumo_RdCsZxITvkIJ^k$njoROq5GE{wEeJ-=#|y1 zLSp{+2}S!Me{K_gB=dyn%-x~gbw--?$x|M6UYSc(Nqjh6DJZUZV^+<>%cc|4H}26= zRtp8t_eG#CL5RP`-|3fn=+q33Z2!H%(uShE2C?M$$MJF_2%G0MVO=OIgN?EJZdaxx z&>Vu?_C4CG{Jq>|vfUJYeZId8=CIkPV_^BSQp|_OsA1JJSqX?$J;+d71$Is z|LYB~1G~`XX+!7&v%fhbygcq{zUUgp?lK7NLm0)vRD1)2O49fjWs7l(revDq>&)m| z93tfki))$f&#F&?x2H3Hjl!o3rL=)fkj zUTAdAzQs*N6nePjt8Vq@+5I#L!9IvpbG*Wy;-PgLy2~d^Cp$Y1_l3m^z5b#RG*4g}| z%E_?OD~Xqf0%C`jYYwia8uIf5H{4xF;}FB z#2rQ5X|!%D0KgAI7lS1G$hw~ePuE-d*}BsC+kc0BZcGf+3EsaN$>2yVS@_uiGMoFN zy32^v2msB!|4W*HkUol)UroL^i${FHrV(2C=jXqW>s3lTJ(!^aO#T}CmOHAqRSq{5 zZoD?%gf)|$p9i-!&U)(Yt~XtnUJGm2*(I~)%sP%vv(rJLSiMjzkS}&;oQEO$sN8C@e+1i+ucuqE-uN^`%VfHHGvyAdNZ0FOng`sjx_o4C%8td zss=WHN7q&=z8n63Or2FgTWuGtTU?5}ThSn;SaAs2;O_43?i2~`ZpDLparaW(U5k5h zJ^B7~F3tsaTx9R;B=1`D%nX-%SOCj$mHq2q4y6m@g3m2mI<%O<6*mlna8z_vxLVRU zZ~MiI&viY=R14F9Eyvq1VK%ZXNtbZAEVqSU?z4B^-ADjK7+dMEB!Z?2ry1!RH|yOo zwN88{Us^{)sNM2SQ3flPOz`Vo-N?$`p-uU3pX)MlaN~@F8ZnF49>mM#=oX^=dQ9TW zMJaN8Sw@hDBv3j}EZuyu_{A+MLOM&S0-2d#(2@p`rLi6nW6F2DdOgMU#O^)HtM;QM zGHX+^@n=_$MHQZHPuVMn)8xm=;f?J{E!z5cI%ZN{0Vb=y5KPSt1cf~Dnm|s8mTM7y zGJCmVSUJ7_w2hGDBuR6AFLBiS+u;3-Vf>~U7Kb906dvy*U=ts6R+q&89qye)>#SZ& zz?t|qC7Ybu*Oq5#8GIrv6-X>H@STjnGVqKwnkhmRZa(p^QA=NCA~Sj@i{D++TABlS z^8I|PJ}m+$CXCn$u06h5fO5Xl)_yuYL0b`f~&6RrP!_c`=}=*ujG zs4>;P^w$p`nx|?Vc1g}yUJesZzekCm-G!Dj_NnLYe!-Bs&QOVnlx~N6;Y+&vZ_xx! z#UZ+mczEc0KqSD2)*uFcvoIXpoOLti^1Tw(1BUU%*VDB3!nC~Z3?Cnf-)mYNR%a&{ zHwr;&dUDWD1`MkfMPF8F2|P0)oLr7jD$|V;M|+BJDZDrTx;KcQKxewvp(m&%%5RxI zI*pm*UTao?2}`6wvT{X{gFxUu9sRK>I!`dA8SWIQzcnUW>2DI%3dC=UL8ZT zYHb0RVq@f57AG@t*x!>2G4O@g|M1r#4_nOVY7#8Ghg@$VFM22|I2`30{Y$L4!>E3m zeQ$V-k~<8mlCZ!1O^j}a8_|EL?t*XGSE1+bN3pHYV|GO6E|hCw-n|Tg-npp~^gG~IP zx<`E`^qH?%IM43_ZqOZ!U(1t^Vq5iTyR&~Zf{$n7q^^b2Jolaf%Rim@ER=rYvD+YE zu5Ejgf*V`hki1PyLZ_3~jVZxLUlf!?Y==RA%8;A$E#PwASy92h;n*-R(8IdsD;5ed zM_DWGQc9pC=9ZZTrC1fe&KgAUJ}3Pm3yNc1D2{h^Lz!4 z{99SR>~pE?*?*Q;>Vpf#^}W~0Xc^6{-27Rmcc;hW(lIjJ<1b=r7M%n1R^rpI{I-AD zP8f0AM1~@Cu(jl1&rQKwZroN@)%dxx=l3Y;o8aGD^%hI+lOb{p!|u=}Z15&x0-$pT zbUCD>!+bSzUDpF!5U!4M4|4*|fEeod(TY!k;c+Dw@#6Y#$MV#WV%@`?M8NrUmq(S<~3-(DNy8W3ZL-9AWyI zjcF-|9uI!J?;Hssk#hP8xlIT6oIr0xtuR;Y? z>lw*z+Fjo?$Y;$_On_t=96du=mJY;4o!EyAg78~fuF2@qOu$r5@bU3pccGJNI{inX z&qip3hF-JbMRQH_kO50Q%;`RekzI^QDLz z8B?rfl15W-0nLB15~L>O;yb~b3c?lAK*b-&z}B>O(|wx{d`A;_^E`!JX{>#oIS_P)kU6-71FvMm_b{A z8{6wUwxFiV7AIey8;bj>+{kkXUP#5Z>@>v{W7$Os&lulP<#xgujdIvBqu$Ns(+CE7 zNUDUU*KqZ^>yD)fjzd8(GTtqP^uO({41i)0?f@YaupLorqaZYq@@m~VNse5j!P4}e zwn@T7=ORH+ESsJ9m{2H3@}jZt`zRgPb8V?9F~WkU-r1HJ(WxgYm-9FDIpKv>a@y6Y zMyT>BI{}r-m+fC_H4?6A)?>9vv~(N+U?`q~O`X)me5mJHahOgS`qfh|W{OWhLX$lr zc2mS)fu!gA_eY~o+|$mdKL?f$IMteKQaQMKG?X?y*1fo;kM61uK9JiDE@15HxcIq{ zjK(EhG{!=6iJ9X4k~gc6{z@t+kIYeWe&@qCSxzti`oV$(o;qg3wcCzan%F6ZQ;XVFM8WU$_`-%OHknmpHKbk_CSJK*-)Fa^8%FUpkC zGIwklLjBak}v@adBxs2nnrw=AP9J_5A;k}P#6`gETUuq(;hFCA}4uk z;Dm9yEI@i^fMt%tqzRI>swXvlEiJ1;npffU(bB-wpS6~hcm(LC1SD^#KQtwVtD*kt z=RYJQM+R(X)a%dKB_m`7gTpiS5tx0>N~Q$tkp6mOv%dq#yGOTjt0N$6pkb5Rg`zKM zSk4kC?wjS`yTga?T#IIjKDBQPbRSaDn(b~VKG3wUb5e7Jb}7yMy;x2*VPJS>AA-jS|<{|n^Zu40~dL-!zD3>U|QZBK! zxq69+TRoakwb35e?Lp?9g0cecOa_OWn2BHDZ?~TTnY7w=&gGmMn8b1V%L54Z96d8G zvc0toHVCt9=&U7*1b-#UBgdQCH8~~x`#kmlrHF!ZRW~E3dDFA9hD0A(tQ%)Sg!0n# zeoD~k8i(S!8D9_TmRyR8lkhKw(@?>w`^5aJA4U;)_)g{bU{>7yqgm~!KlMr0`o2WT zTb?A&lvkzQ>ll*+Wh;l+YM@%4-tJqxD9O@m%Ia%?wfNQ$d%oM#gZu_JJt;c=V9U#Z zsynT3`dhOFQpQI{;GBV6c!aj_b#J6pGL%r$AB|eW>ikOFn^@A&NG+kGLxjWC967@LPCvRG?TVzW~eGi~E@r z{|E|`HSyv8v%XQ8=<b5}*;Hgrm9Mr4DlXRP+W^Yl7b}L}xBPv8Zx}s`_(IuHDtp zd>AlfA^b<`^zpqrbR0cDcCC|6^=83E*{1r{atONGr0!hWM`o!OFTJv^i7MvG>ClVi zXX)4q8fi<6sN61`wenfCWLoWt$z+JSQ$4Cc7Wwx0!$Y|Ah#*^v+fPQz4ie=PBmsZk z{nlUe5Qc>QNnm>ieVUe9ai;I$N|5oJ7g|zdpl*dz;{$W|t5~h{ZkbRjxoZ87c$Ck$ zMZ4unT?)>@cVeZEbH_D=0`3<~ATV3aBFX0=sO3CKAL?USH!ORu2h%hEY7sku#M~9j16f+ z-#w6qocYQg+|bxn6p8rH@ zNRt4jQgFHOQF3s**iC5mpOweCt8tF+I=;bf0Q@H9cxx8>+KUMTcWvi4-WMU1 z!}%wG5HptLRj_tstz;nrU>N#(X>*aX*Qh2G9o#l?Y%Isal_PK!7SW3oGoiJ|_9hxCWJNNja>Tru&>J?ypv^hLo6=r3iSgX#GQl5C zC!5(5q6iKlOKoiI}}%cp=E9PFBbt zD-d4Kc*G!(%Ep%+y6ShlKjJka)DpEHw0E<=)yrt~wtrykt4=lVv-*}jf=zDB?H8qd zgMzykPCi%X=!6LI+j)I56*0|m-#H4(OUw4)9?#^EsVmJ_-)^0W1d_WYM)1t3mCZ+g zfByJC(Q%q~Oza5&tc@Us{&t?9Y7;v7VuYtgwWngJ2UuCm=N+EkDMwaVsO5zMTCtiK znNajumd4>0de)Rqcjz8ZYAIO-bJgkmb!e*l`?4)=2j#L+D_>1oTXw2|X;=|2-Eqms-tnhDejWI){rJ_edU#ye+=f@QxkHr^FAaKFc@a^?q6 zNvX%9JB1OmQ&x>(SI{?A(i9!)6+;l`Zw!-uEymi-V&;h_QzsMp_Xz_sdkk@RtovGk zs!6qt%Ob2mn37T_1i1WJthW{%a#M*=FI6?QVYlNFmSB^zb2<yt=?oe5gzZ=>^Hi z&@_M#lT2RP`JCxYZ1A+Nj@T%S{qXhueTja$%+y9bX=RnQEMo&dWB$f>pXVXB&F+ z_XpDO!(K1sOPkPOtdAUvAiAIND7T&|ej}M33G*XH8>HN22E|DCNlMC*!8Dp1a9EnP zYM#yw{;LR#P~R^3Xz)_~Q8AQ!ZX&y>SsE2Qa#b0($m)8bp6cL!Uh=|d};OB)N#0JX%S z9TbL)TRv1<%~!TwR{=sv>fhM{KW3x|c{+GE&o z&l^tzd(rc@9d`hXhqQc?Q2oLw5fH_y4@f6@{yOV%^vv@jdF6(wqD-lei3OA+yh8>e z#2#KRN@Sg8<7Ns3ok_VP7+6KT_IZ(XrzH%2NWl`X^<^gg1;uTN-6xtyKs)M&Zd{qq zQtn!$J5jWfb|gh2x@A?&r^n%3nouHqwB6rs>!7eAHy?^M?%`DHf0^b9c;xNgREnvJ zMyO+to>H#o{UQlHb`*?qWKz!Xg3yZgp*s* z0HFkqSruOBHuy7>S%@*J26lO7w6&+9nddQNb=6WD^FPgXh^qodc-M#TGTMR2+TC{W z${0#Z?GB!@({IK-wQ2v>sqdTe-+HYorVV;MG=8TuR|yd^0JIw(S0!E7OQVX1q#U)u z(<_uzbT`Lu1*oYpmfg>Y5`H+Z|Y8$p}r^ix?UCUMj|oK&NHP3QOPp>qloN zA^=bMQ|RLYQsw)_x$taBF2h7f#BQrqsd85O6%LIHUE1u32I(CNJ?pu5wUhhT>HArV zSLVw#!GO-FC~mJH@5U!2CZ`E6i+{P{eVt@o+F75cYhp;ao$A1lCFanb02&Aia}2JL zkvd%yhf>0JF3?-_1|%<)Q+LsZHykxXxYQh7hv1*~qqmdKsl!NE8R1Cykt&g%0yZmw z{nCN5SnRF=Yp?T;32*`fL#Ip$74e*@^lox+9wtwC?9B5ls$((BfJixVjl!3N)Vh}| z|Eh{aHGPBGpJlBjNb}~ zpe(e4DFu=x&-SR*zH?~(E<4cfUB%){V8CnHwf@b3`3a__aWYns^spF|dM8!{I^#XX zQRoeIl1;nAy14_3J^q$x@Pli0X&>l(Ra*Xc*a=1}n=94#4W{lbt=E>7F~l=7t3{># zvB@5KQ3P0B@>q}Dm9Y9$_)I0J-#9c+Z8jB;DZ2N?bFHl&u~yo+W~t`9PuI{EE0GwJ z5mi2e6cY1QMo9tW*w?ZFIf-5OVYa(wCQt!8iaJu|fE%f2JnQ5ct&J9JU5C%tIlYo^ z-6fp>wSRD1=raX>5a0VJ%VXqiT95n^MK!Q^Kk-Q6@}k4IqFIMg6f<%yn871 z$Nojs1S&zh{XbGVE+4m7`B*I7ni{*ze1!<@zwKZLt4tA$(Kcn|&Q%Mtb^EfrdP?xr~dA;8%Y;Qb{6mG@^ofG96o0nOc zceuYVHkzcaUeB{f;8TgR!jxt$l8Bt;`F=#ebZ2#CT$JGr%LtIWm=BBaDe(;@Tq8sh z#ADwq>V($YG(Yl5aWEiP!< z{n%{8;gSLxihjtys@IIU*Q1NYziH{bSZU2dZbZ?uGbu`7v=W!r77l%$Q7!H``qvrI z$!{D4jpRy}DkG)^%2uso^lTpU$TDZj3IB#3($wa|)i!Y=Mj=F0RP_3>X`UoB!(@+} z>L>+*lA?{rx%}NS4Ho64^)D6sCYyAnV;Tyq!#$Y2fA6b^M`A~#MPkxO>F+dp%X>eW z>%wkrom)o5GTQi}RO0VypjKz+yY5FP9lqW#%oNOeKNk%8RFHBRt{O_!C5C?urJFRg z>}tYC6JZM66MQSGxWY8TuJktJiu>{%YXM0?ra%--Jf6$Jp_t5y_g%Y!pea*m?2$}H zlo|ywpFSEmSXCR<<6^y^FEKb+Ke?dsjqOcc{pPc(3`Q_rJBCr8Qnqm5zASGTx2>?a zx?!W<#Di04#|FyazV_*cU%ImH&`f!C98sFx=USnyQk26I|zfWDe3J`~14@b7w9O}pY_K%#rJFp(`f zsKwwnLnzel(#8`klW$1)e0pD=+ZFb3s>e4jXR;ksthR-2OK|^ScBgs*mzp3wCIPiY z@NBxOFD;%eHLc#D01F>{*H0U=b#;l1(u!&+uy~E)t=B<7lLXNs#5(7PYKk@KX-Xk@ z^+KW`uEb5_;9z_?gao{ZM~Iwn{{D`=L?q@kc^MgS%Ek6Na7#qhJn2ug3X}6(f#|k4 zqW4Q#=e(Ey6#_}?d>?~&B2CulJv_i6`4+{

v&8K~q!*Pol)TQ5H<=P^~H193rBtYgw~!bS;!PQ|yHGq1e|=|>ut@b{aq z1YI9J&GG{`naknNGmk`}uXS?Iv~-qhQz+rw#~4il^sPb3BQ*;8^##lnRC)jXE2sUQ zV;ZLu3f-uak;%=Ca^LXFem^qb`CWcd$)!AC`5klS2LZFT>@+o_a!BmlC(tOGK5yVC z6aA{3noR7JOU2!=S(1$4Pk7+dANaY)edyXwWB)__kxF&a&H{9DR7fOF9ZYA=;9 z%!U?r9#hfE0E)mBpVDUsIIB3}CT*5ND^c9y-TT@;3P1=_!*w|$Fb2jW>)~L>#e5d= zO43gPlJ|V`^P17odxNrGZLSUdTKX21E*05 z-{Jz&Xh8OgSKFog?h&wIyb9i2pq4IO|6?g7uYhvn@RW^KX)4qJSv(2#2Mhi`P$HZ*!%-eIZHzh>Wx4p;5 z$I8AP&^cP>KNl#4rqaWqLz>j*dPnrc-0*n+j`!4mRugk3FmWvWx18QSXW_0Ji4ATs z5qKfu`^WivBARaQ-1kMWeu8msi5yK45fyc(z$xvcTE{otr-$7|n!7$2@3pnp=?b31 zYMTO;HC8ZxkXcEOAT5tCx#vy9 z^cu6|_~Vg_E6lz}`+1y+VHU+Rd*tCy)kg=)uk>+*)_zG`_8*sTSYnhKEk9tqA5eU} z`p5=oD!8+Bo~GU0j>!(iY}-xi#$Zx67_7#}iU8)M5m|UysiH{JI6B+E9mO3L$h^WI zUmudAEOstQ-L+&Krt7Q1r-ns6|2Mto2U2Rk#!*cD7cWs0P&;2cRbKfG)T~<HKR{K zfvj1X=$Q*a7tTg`p^;79)DOqIKTeVIN6wTG-}Rii`SpnqHU9R^{FU@IDYxX*1evmG z69%Z6Z2pVN>-E@3!PNuTRDo2K#-=CWxJe^8B+l?CMxT-0;aar|Ilt-YEGKm@aQuUj z+eC(n)pq4JXKPD3ndkDGL)53DX9Q9YUM_oo`F{?7rN1B4$f#5%K!`r-A!S zLn+}E^z#_YXehJ272`@nv^%nq6B!4PsHJvyTFhV-k0MQwpT*X++!F|xhRIFDk=O;U zNz;g27dY1Z_Sc-=Wg|WRc_-NUOl81JG6aCA;=Bm| z{rpVqdiaw6L+1ek{@(22uEI}VmGE#pHD%v3yPI(Vp3di|lSbP?4>bcsSOqYEQ{Vpj z*9;=X*=2WL1buh>vFYY_us^thl`L;}Gl_E=c z8De6R!Y*e;5UFJC@u$v>NEmyn#tHsy8}06f=!NQ4g^koXh*Xm&@#WqXr;jz2922of zl4LA;q-NPiCFHBQ4hxo=(L_|17rC|BNz`iuna^Lo`z+pjr@N`9DQzU;g?U#QeVU}d z5a&doTiRz6#(4RZpVI6KPxKMzbYoIT(YJc4Kqy4n@TDxAS__qo%X~azFlwervAi?* z3yv|fG+0ZOCX{oxtwtCXcNBJela@gT%A`WslmNzUU_G}|Lp(YxxA26r z-kU0%pY1)Li+d)|!anJBG>InX4E+0lqN#-M5TT>J;UMA0Ed|1W5+bUI zM_u<-4@Y6o+y+m!GNH@Czf2Q25`#Gm05&wS=>1eJhi))&%LiVE6*gFEzJq;XTl&k{JpS` z*W>4Z!GNE5qjO{$5h~z75@lkp6+H3EtaK;I39#OL;Rs3W9-}? zhJN2RY^afY%}yB~t-I_oGIUs3@prf7Q+A6Zm%(yT%```W22?cizkOcqm&|I+q#Bzx z(fFAxFD95Ok{Kx$vt*6Wf>VJXwPeT6raFlnS$;$dk=CcWzQIYw9zY19jVu2y@$-wS znsX{oWcjG2O2e@aO2Z5MBv?~q&GbJl-pVK#C=Vc^frgsRM7{inl?&=alc1j38_yY$ zpR`DuC1d>nLzeuw9p3oV;|ve$Km1u)j1p>hN0E%9RU)sCx-kT0d0x-a2N%`U?n?&I zQ`Dwm-uEb*+yudH2MW@h5JV9I1+|#E%BciAHu#TWNAMX`Y2c4pM0nVuLk`ZU#Ls zl2(*`6NZkB2STg1Av7LIH5W)veR+>wY_4UJt|jG8|Da@?9t>OhMFdEqEi*Qt%Y866bzI=5KLr`DJ8thz|06@uaBXSnPHdraGe?h z804d-=1^SomHqIN3J>Tu@O$O(N6k<1vBnpC{NuxvHzPWcj1KxfUWi-Ty?}BgDc+Zw z&6Ok-ax>?iA*vmXo?raezJ{RKofpFXJWm!-gy`@}JDB)@t%<-w9F5;h=F{jCe};943@2^S`N?6G+*h zynhvZztgIc9{DnRDb$hu*bn9CxqNFQcNkgdNG+)o*{>I+LkeC%Z!E+ zMnxuLtA7O^YTl4jp0BNCTAwX-8?@jzSVdNF*^5BQmr&e=^-_hSMgIgxkS^DQjBbla(OYF&| zDGYD0;=TFn7J~t)Q5Grmd6 zcDMI_*mhF0k40BT>BOfpdIUm!(CVecO<*b=8)e;^Ih6K8G&9TOS;EbO&sWn;9~RzZ zhIIE4DvKW^O2_l<)oeCqWR}Ox*lo6FJ_Wa6Y1(n|$8;5!GIVj7mjOvgI2dlJ8bO9c zZcdArJoOrp23+ApEqv}hk)MP`QVvUzUvkCD}DyQYA9)@ zjx5u}&AY;S{%aHx<6r&F1X=L$#^q)Q@K-eM8Iq(tt1G+b@jRG1D? zRtP%khvWgxA}j!}HDe!B3{tAyS8EeEUxSHk?x8BPra0#zC9~ zw69tieea;(16NqgrcM^MkHZEG22jxjL+~XoUHdBo76D8}d+~;&x8jt3LqD{G%1K5m zroQ6e)Qci?R2k9B1mT=nKkTA(J{K*Zfv_leoi`cg{R~aMXE7;ce-l+RTz~nO2X}`& zp0h0wH-aTT@$h{Y?_}U+L435(Yo_2)g@9!%i!|Uf^VfSzUZ{5trw)TkyB}I#6fa@9 z`aoy41MxkF=WrUdb0S&B&~9Q-q#Etw{(A9Hpr! z#NI)+lHh4)d-{eVuz|1d1K&Rn^|T!Fba!Tvzpt}B3w$MoUedhb4U@^9fIa1s^A;-I zA9P12a~{rL5mEw5r(z6os^14Aw8w~>oS^)JufNALh4*W{^DXZ;4Ruwx*UG;+c#bj_ zzEJ1i4aBr~YnJUL&6)1+O*9c{MpD7P2JI$>U;<+<@n;*QNW)MLBDoOU{L-=%XdGMd z;-YOK7m0f~n2FZ8e%5LNI(f~t?zW7z#xxBijR2`SzVL;1_79Cet7^c3UTgOL2%BLO z$Y5$grk!1S=lh0(1FyZc#o*GDgGHr|>b_xWP;SHFchsyUP43-l*fD#<6Szz+)+lX! z7p}Fbv)w_bVFVUpF}K3{B#f%2shUa`3VE-ti0u7=F4-{gW}k%~L84X(?WzKx05&jS zTLXSegSNnIV`xh{d4BN8TQN$X*4Z0cVw1tcJq_)1nWHTa-dvTmS-99~t8Kc|TN-i8nN==VZvIKV@Zb?7KWb?Fqk z?fj1}iua$jnWwBengJ+YwuQg_Gn_m)FF2`wG3w#oX-{K5KtB^HqW7vIjEWuAK#BC5 z1>KJ79TYF1#}NA=7E?MSI1!Y2q+*w|o+E2-y{#bX9Cgtz5aO$YD2pGy;Aj#4Bi^7~ zjp%N3<3yVv1(0rna6zA-wKfdq|%1tZO7J_2>C1`%_nyNbv z|I4_K&|aA^5*vM#EEO42(ZpHHMXo<9SIP^80^Wk(wF3EQeFRHO-{9VnRqDJ^^dFwN zB~Bv7WePoLw%bfH;lO+$#;eYiUtjshpY}4^S-5i_mc>oX#S@BtVQCn6sBN{X)l{Od zltNkkti|Zjlb?;se%eZGM=sj8CKU#HayFaqidVeQi%U_}piuW?rAMdH{8ke1Z%aqu z+LS9D@a1mEF1%%`zEEr7gV9x=-+SEo+vLASZ#!OI(ku3Rlzdt|Ega6s<(TTvr*~dQ z1r0+pY+W9VgCu^ewUp7AbwIR~nq9j$LS?^#L%}LT>NrJYUEbbfPLriiZ~7QfhHf6e zmVTkJi)cp$QESMiTT9z~aa`S`Qz<5{1ct(Rghz`0#J?tHwi@_e;izLhA2^qbsj0nt zBmwCAyh)G6p13G#Rs4jBMk4Ga5EtUrx$zUC68~)uLNR;2^p%FG7$Q-d*+{MVc%_D< zuQV$HEw{?vcd~=8sTzE70+YXvJL{Ng!Oe^ZylkhaW_Kr&`#Jfnfte}woFM7}@X?i@ zPfuA3b*jJRuo^g{57PKC)wU5=z#NHEdSihUxU7CiDcLNi_DotjGb6^K2^Dt~RCc~vF2l-?IH~VW%Y>EbMw7H}Qqwu)&u90x!%r2GKXOHmukXyP#XU6dD*3_<0r70yu*|$rbiO@Is?WrNl^7@b+x8|m*$J%PE zSsEh}j7P1y3Z;jlTc?D+?lg}+lMRfCI1;b6)Ce9;cs&oM*bh{@d@ zEa(L}r6eVZ3cqdh96jvPDQ-`FbREZdmxI<>slDmym`cDSVa%DmzP6^^?1xM3&}Gs( z#1)ED;b`Rw{yrPTY^9{uT{T~t;i(H|YSDmIQ{tJh~nqR52JSAwQUc)h^e>Zcbejvi57Ta_M z5Zkr**BpC3==#1j-0Rwp);SCkLUYl2eXxu_amI76$V?5tv1H2px@4b`ir$uMH9;#V z3~0OJYqK5If0`D2FUaiI@?&bm%*d>&3swx|+_ul?IXt&Vr)&wSXa}pi-Od@dI-ee@F?+rKuyeh@xzMQ(mPU^D+1#~(B~UvMyUK)QsG}{AVFxfD{VS-Uy093r_c&jZGe^2>IDRF4iG{l2v-h6|A_v#o z@8Hg|40%>dF*bB62w9R!C5k2fnJYq1T@211_M0MAurDwl2;ePMZTEau&g_c9nhj81 ze3Shary)yVNMLB+#A{QVK7S)+xP6N`R-9}Qt;M8i-%Rh!+L3@Wbbu!+d~hL;^Ik#B z3piL;n3H75F39c=1aroaR zKe1je9+NOgRZTZ>&TC8zB}tAIg_Sr{H(5iCc)%M_#YiVZ#bOGv5=M4%j5xn``p@`a zcI{-+%thxj6+c>bhIK1*WlFkNy)eYs2N!Orf!H0`=gnVPA$h!0K) zsns9(Q~8%Db}VfufKM@^j>ww{A?Vj)76k!5AZ!7`}$(1KdDg{4Kp{nI1Y=g3)yDuXM29O=qo`sCZ7&|x8 zeNt`vy6M(A{ItXl-)Q_8(Rg#J1=Y#^w(#!up)g-g{bFsq2-(=}wYpidU=&Ow^Oiio z(75}6Pjn+a#F=Y6U;#Wu7#fLPvlwRzneu*o^>|!sx6)z3>0RK|UNBAtzKb%(oD%vT zw-Q(#{1SBCtSX(}+1*#B#^HfME$gjxdi%Q*lvzP83ZI|CXIW&|jS1_><#VxnoJ6@o z_=$~Nmfu6;((%1|y_bH%q?AIe`Q<^j3wy81qpRfk?K+@{fbC`v(lDa@8-MK#Es4>S!!M119(IK%M_t}y$qBUkVH*Ru|DnV6c`hr=-4qDM#?Y1%I;ANJ~F{HdChje1( z6qGEof>GtLr>d$x<3r&ud%|N|V1n=|fAC*yDMgM6GZ{(EKupi?oF)NBiZ0EG3H(u) zO{%P=zOVw`% zkxnee;?1>7LSuPlHG8zyaKNyjCJMy|QdXn3>gbBZm%|tc;3_#oAI?zax3FsSUTy*! z|5p4c8X9V3cU_U#%l9kXqXSlvlbJXdk zV>$kWU0!}hS875jLnFzGC;o~DH{T|wV+r*&sCq$y!y3BL#OLqrg_06uphL29y^l8< z%IS!jt;l-H0#gAsUbr3-n=PnPvnvoV_*$mgQ*qw=H8m`&B#Sf2Afo{ z%>LW@R*N&8ooN2+O$btuSQ|DbQHtO+Ij)~f0!r-;((BK?CfWbIrcl7r%#fnG^BUo4 zz2>dQzyr!2A+F701qILYMNVIl4iu;f!h6A+s+aq6poBRMhFdY-A#Ee~J{ zhF0SYKdXS!Ki5%RW3xU5kK&en3{(}HvZ#kF3f_0)Tb?oowsSnC(0bQ=Ek^oJP7N_G z$(67_Jeru_Oy{*QhKwk>XlcNtq9q_vM6;mW{7qn;i|b7ly*%06tk$l;bAa4Y%}HaS zldO0waD1DXQ%CY}yN#4UVtC;f6%kd1{(TX(g{oNp4*n~s6c)~tsQ&U;CJwM!PJcn(zybt$>S5Zm#DPhhc)I)E2O-wwq_vX_`$1CcwB zw4dc%tZ5x3XXVI48-cgauUnVTiwIOe1I0b{5rW<*dIx{*!adm|el;~+eP2BIcZIfP zjj!`-0v1`RrqyLA42d}q_$*GK3F6WeV~I2zMH8Gpm;@^%lX|@iHxV-;v6p!rjtjrC z>$x6X_qePHG!FkVx^rq!y%((#*+k)a?E0T=ytU=tC@Y)mWbXNs(EAL5>pF(~!97*# zWe$)f1#Czr=$(wpB7gvmJYc7wG!7lU@)lq%(0PcJ5$sz#|Aar7*>l3FcJJ^?u46dJ z2=rXG{I5KFLeia!B$l*UxDtHxfm-9}=tx&l)G;FSQxj(dF&f%$jr$hw_1ZHL@!-|Xr1^77 zL{uw*=JAiO_m3!@}|M>SPW8v5!5{QgTjjCf( z`0n?u)et-M5@`Lwimih++jFV2RNJo``vFBA8vO>5uyelgmN?=fO~F|!TAp1Uk`x0U z;ak=F1>BWcJeCXyQ#@((45*492BtJ=sYCG){bDE+9&VL%y@D`*0J@+58ZFK}k==b>Q4E(Nvi)KAeM>1I;gnRYGW(TbH)MZb4jTkMa}{;Drj zg=bxUgS7OsDQP*_m@q&QQGp2Br4PZVK-6Ywnk~0)M~2QrVT)pcRG|zTvr`a%xA&)& zD%TS{R7R}-1-ms5!J;m}NHbIK^lPAKZ*6~;IL5neUws#W&bzfzTe#3wlTpHlG}kq@ z{pr%*l--ras53qfx?HsslFaxmfS066NjXRcqw~d>P)LdqYdJI|SNAiOa_BDcaE&xt zBsBXO5NN69iA*c`3?2piZq~ zI%r!wHkpp$t;>UT4(v)3dT1!@gBk;!oD+7hDXI~roP%f}GF5S^P;#}vK>EM^=n`m8 z8N~lC%nlK!eo4-l9hSGw>->yh7QkGU6263Cb%Wew z05sfIXS{|}avzfu-c@2}A3AO2P=ha+?h3lbEx~<}qmD6U#A_Y4@%}K|t@?}{YnS+wVqnFl!CG60HHOd8SWQaQso?mu6(^b9+%qOZp6a-G4K?jZ zxoEi7fd`u&IXG-Q5sBt3*u$;Vi%YyJ<->Hn!TYubRSgczG^7-d+M?m$k81RuRstPo zTMtccp~mwaMah2Z-A@z3Zi-()u!z?eEUfXERejkXK61MrDzesJ5^m6Ue^4&{kOI~=>Q}3VboRkTkEC$Af$zac1p46zO|~d= zzTP`zodBe&XhR9qmY;x+{}hYhBsgvRimpT_#r}YCf9kix3)){>>+5fCB{aMX5Izv4 zVpE$DT6LyFyXcO(V9PI#pkb@jsookD{ny^BhgHqpB@PBt6+IF}froRH`327ZC0l8^7%r`6lCo~ZGDnVcNSF!M+}WZ> z#<;A?b1o{g$9ksT@=y$e`HPck(Eio!RcZSVxK#WW&BQ3c2X^5E7%+Hh;A~Rfl6})WJOISQDK3O2XHTu`yZUI;byx zuFb+np>Y1OaG*x*{;N5A}0x5q(RYGjFcbI~wq$SI` zJhbhotf4xUuY3&hc9!-jZrd!$gd@weJ&U;Pzm#q;; z_5Tp{mQhjl@B8*G-Q6YKEh*jIFoQ#PcXxM5hcrWXNrQkiNT*15gEWHw?f3Vr^}J;9 zhCRXF*XKIV>?Q?99CK+GIr zXg=lUheqxenvpUUvb*%Bu`eSIH2FSDiA2mNDt_+U8#$-bcfS&=FGnWR7XfJBwNO1Y zg*=-7nrS`6_iNcGmOU8V&E+^|C%hD<0{vcXKIh+Cb; z)qx=@xI=3S^|9+ZgEO;4Q~sgZxsuNK)p<(KCy0Fr31mH$z}E1b_$BBqHCX4n^rzP> z4ekFsYe|($LVikom%ET4tp@<}B88VU2;aIA@k~@bJ1z5Qa+m7cZ_O7EBMjn*G2Yu0 zdu?p0*7sfW@{Zm2Plf&(!SKAKp0rkr0d9T^c1iZwewT4Jvm=D$4aZ6K*;# zSZVfqKQon zUgkY6jigAr^WqHjr0q*fTmyRLcx7z`4P0U%am%||ejDIwLHd$kcCi121a{zoEmYjnglFZqu@|p$$zB zSXn+c>;%tLp4yiPM_ucSX~NfQReVc<@I+hw$kHA}W?>Sz78jQPxhub_RpsdV(P~(L zr2C9j>kid>ddmWgKrjEn%vh7}LnKfTQ!p+n|FX_8D!+ymq}Pf|J}f~_mUFcxohh%s z?gj+M^JWOIUM%fAoVh-GoLvKDnxVy9rjZ$h1j|cmm7^c`<$tcbcKiq(Da6B1etY;G zzqWQsY6e39t(|s`>zD$Um}4nr9^E0&V-(l+jYL7L-iK8J~^>(+P zj3u-URcN=AEyYM{XGC7>S1O%H<$rZ*he8>a@b$6QEjx$K`gfX^uP4TMF1HdbNz{KpPFNCy7toeACg^j+kJ3^NjgX0oBA zhC_d_@c6~eaovO@+pxVS{!9O}h(wYVvFj4jLTlW3{bIS^|zAl8+%LX)PDZr!#f{#y}N_a6=~NSK>h3CJIUg* z@Y}-3ZKfIcYVN;|snCs1W)X3H{GV@NJ_W$dMg3p#*y$k3x0z8q+Qs_-KOc9+8d?&5 zUp#Ul2gOmlhz1-Fooy@z=H#!iJ0BV}Ydf0rWTrkcZHBZ)K1(kRSxsYL>lV~+%6V

cVI|3+uV{y{XnkfS*`v&}a@V2yF4&7$ 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%0DE#yh6ly zSQ}fbw~r2a3y-SEeSaUqO3e}4gt{eKa+Ovh`q-LMq5|m}-X6dA9Y1)jt0u!F^Ev~` zW7FVK&8i-l221s-K1nuwB(R!Ac%<-o81~Ni(HJ>c+iv42_(v9Boc#iDH*Y9b!3Y)! zJ(7uDEG!p#SoBeN={@0MC z52Z8s6s4Wn{R3%0>XrgeW@C)x97V3izhQw|7b0`<3Ro$|LITowg~eQ5WEyPc7wt9Z ztt+cbliDbX%|;Rm6|$v9kzNp?a~Vqn+=Fxz9B9|yxNqMmk|WMS3?B2_Z&5>9Z(hAB zC-NM}Lf8;zS@Eu7(~8;^e|WfCe;rhCJJbyDVcJI%kpO4D84NQC zZK#jd$ho9h{4ffv}#(e&K(|lk(r7jb-Kx=w^}wj+a=m8+b*ZQZ+s>iEFGR zpko8+w@-1Ju`{Ze%rpc9MSI_v{a3g9raAl#RPOQ}JD)0z3-%6BTMqmtLi&;7R<(MU0v5%A?sbv z$4Pz9@G`jOSan?&FSp-*|1BZy`)$yqz?uRv?pJPcp5)R{Kxfv__#_92?#lDJFlI}& zAU3*Lnpj|45_BTbj5t=jUcYKgu11}y2vDbA@Q&iZJ&$KFCK2}6gV?0$@bq+s;s;V)odwct21OG`o^Ew~3 zV-b4KggvSBRAymhertZd*K64__q{So`dz?b@OB=3QsaJ!C=@g$x-SqYswaHu-K0PU z{N3AIZ>O(b8ZB4e5S!(EMabQO{ujZx&iTDC(b zDXNwnTNZDJ46}vCJ^AV4#1=C4x`9tz@)Fz4>B=Nx`T3B(7<&GMMy&{(G}{IgHfCpj zCDtz#r`z8`U|lx#W{`jgvI+#d=Fb~=D{;XXw7pefu;rN`kfGTd_@#JgkBi2;@#D8x zajLR6&xiL+OIywF*RP0FEQ7SVC|F$NAt4b1_XWRj^16A$7n?Z(Wv4~|5)?xho$Y2Re0=-6U|s%tpp>Oo>S6uWs`J$Mw`d|?Bb^OA0m{!z0>aev3S^f5 zT=psdBLB!UVb=_?&cK3Lr-z;Y4rAj9V9ur{VPIW=bGIsY(J+x~{8MRj5)SEjSVzrRsT_c#W`YO!Mj(oH$N&mJ#ve^LUZH$VJXRF9?$AV>4Jotl zd`(Q}p%qIXPM}blFGDMtEkT$+N)BTZ67o+&W8emy6#Kb=zfLH2F$@yoS0qDUl8}%P zX_yq`X74+cg=NTCoCH$jTJJ^D$YQMMY`42DA*;jgm%QvfNSW$hR6bZ?DqCC7<&p(} zLapza_Z=MPl8Ehm<6(u`G{A{M^sV*Lrc^pdA0L6{edz^fsig(WSNeJ8!b_IV%>LG| zeKv;k?k_O>@8lIjhDyK$bGlZuP zi1{pJAA@^+hIu+qZnU28Tdy`#>KvQqIv}yprmGctJa~)?>shUO(FDc&$}Rm54Z1Wr zxz?(;Kp&Yz=E9Z_9ZOaYEFuNadEeahY>)xlP0{KDH;GwclF9#sG>%NGrnX|7!z}o6 zMA=1dMoSE{@Gx{IWJYX@p0S%2hgC3Ztcqb+(Q1%?K!o}3T- zH%sj4>38k`Bx0^?>V?;6qy)_EvbbWZGToe){)RliEq|;aaW6YoRYiJq%^+6v*UySn z{IGpy|bM~eP$?E1M#s_G}79^ zT8aDIex_Eq_YA%5tfaRPe7WA_hfr}bskb43O2P|Rig~IqL~1C zVo|tu%klo`N=yqU!Vl=8@2k~fy_J^x}#rGiJvpFxzjUUa}r;%YCk~`6e zeEEA%-T&=HJ_ZeqO4xo=2Bqvo@9U#0wD&7c_MvXv2o31|{}2CF=-8^R}clugkN zYz1jrejd(ZD+`nM<0SeOeIlQ%5Qk_y@mRRznM3ZrSAl_8jnt=>wsSCYi}w2W8W65({+ogBh-lWdA;*Q@7kJG0>RO?O8T@I%}Q| z4a}%>hnr)}b8jtaPvCz+2GXFlf^i570_eiKdJ7&c8J(ZLk5;tfn4uYZ(zU*4-T$4O z&85D=eh<4#j1Mk^evM@pWC#R>mEkASTd6R0XwHqMXB<4>yOZeO&W{%x!tTtQ4knro zi7C(loETzR!HxqJwECW7u3t71!OM?L{sX3{XH$q$K>WUKM;EyO12yAK6*$bYdyX$Q^x^3`FCp3;LSkP%3b*B54mD&0cNTSz;WcWWFCO)dt>=}_ zYD!Bc30ZY`trDMh?&bbA4}Wgod0f!)B)$K7HHB91V2}1<7+qZ?<#xPsJopswuGlFk za7!f?AD1EV&}QH*7BEN3ZHMQeRdRheYK)r+!!j=p@sN>$Cl~hqtf-`9bGlTEr-W9H z6h+@R#^~FdAN1oB9=M%`&_9unW9Wn1;pEx!Z>R259vD=krjF(*d@waH5(~nhfF_U3 zl9OT0!JV$G_^-u)>a_YuAM}ip2Wb&c_jkCuH1dwa4fiGFEiS)BW8vj-9f6tZndN^? z9&Tb4gq$y5%&6H*I#4vHtro3;icT1xU~h{+{7ffxTZ+r~BEk&3$-aWi4OPBtg*koD z%bbC(t(>L!?KqnJs>g4hB5o`&SPY_?WGE6J`+Hz{i?Y`H^0bwz6%2#KYBeoJtQoe* zo3QZRaU^l9yuOzm)t4=>TzAp*iTl~g9f7fyn#?wN%$l3ieuc9aISs@!ei>Jh*--Sk zPtDipc}@2<0iQ;fo|Pm8ULbB{p!FAHFIry28ME=*+g*^D)vmuvvsHZA^)Bj@gQ}|k zA{;>inImD>2$KTW=`Jl;xF&is_-Ju0NpX~QyGGdMbH3YjVCUmrNXyRmkXT7n`16Vm zluUxOdg}G&wn);%j0^OH;%|MYu=jp>zT@UiIbLFKxef)h%R-)7o*;sU%vD3*=yhUZ z?a%ztn;26QyI+K8QrENJ3R2N|;}GQ7VQ&!zzs)M~R1vSv&3`@h`%y&|`yl!}Gf_C&%Ib6&KZ()kLU$^jl4;R~PR*Q$s zagAt)YK)qk-mByahfFrOOo&QVBkX^J)2?1IxVjy=^Z%lo`{SH67U82cScg!D>|8xT zSE1jko$)aiZI*@3h3@h9=0=OYvB>MVt#715?OANk&`6As&;*aqtRG=xJ`V<;)_O{YWm5%ZqK9M{ zTM`Lp_zB|t4TH=?9;SUPooNh&)r{bwpA}1#}}A6fVEz-dWlF(%|@xwiOcW?FxMB41X&8 zqW_-$-_Q#Pxu#(Aj<8BhzeG>}UGC>KSeCJziprwI4WquqA0if_bRT`S!YyfZb(x|p zryHn8$HtJ?*FtMA)nkqC4sW+Q&-ISi-Wx~-p#T35r3K4e!Qm7 z0(s0%GOSNJXN3!OGDo-MmQ+?YE!C+;OhpAnJUQ?t`%-@;?z1MK?JyvjMnj*MfU1fb z+G&lu$glrS!3@SBvKcArm(eMDT8Ve`e8p{I9Ds$BI4#=^H^zOPNasicx|IOstORr!5t zYL@+*??IZ>1JZd|5O9za6(OV%rW*PE+bInYGyZ@R2pU#!%u+~|XqEk86c`ZQdwu6j z5Hnh;CblW%`|Vx!4&xpo&s^k9eux0ktA{ph7&S;=oXaI5?B~eMYwyL6VBT&mt2GVO zGc|GJR^Kt5#xOEDU)41xo4pAN>0g8N*Lu8vD*O2>LS*XGR5^`j|7f*;gTYVNxjnJ9 z;9y@UVa@jvri1kbW674NBwCBXs#P?ajQ~{+Szzn~R~xz0zKpXQ*={bqtxwN|L_;b= zPz@(*e@;}}_`=l-+RC|P)n)&UB`1QF(u9~6$Hl;BhsKA#A`DkaDqx{_)k3=5@!zG z%gFx_N1w=17F$))VtMYl);@L#Pt+c5LD-I^+3Tp$^m%~861!2+<)|x5rl)p3n`%Om zF^t-ewHOdqZa zdbtK70!meBF&lvR5T3yIDu#g5wUMq>DEd$|O33R1S|XQpvq{I#pIOd#-L=K{X~s~3 z=Dqflt>6&XYyRa|_4pcr zS~f%8W<<27=5c+Kdb}Ofqm=Zgx(&=+tfEhpjmEfJygGKEg@|kSSfh2Qwmnc++>{t6 zxIVtx(-nL1_b2J?m!BCLE!Tp1U*Cgrli`>oITAQ>Wi2bX*GL#J1g;-lv^(n~OX)~- zj0Wcu?78JV5{g$#J{&L6J=?aE$zf>3dhvRwisj|~`X$VZq=yh){Uh-z@zxfY$9TP; zQub^WA)u0a%%WB52Oyk%&6X^YEIOCHVrzk(Ox1*=;!W&uOI9~ZK5zt(J4crMJ}t#Iy9kZwov93+@Z5JQO~nJ@i}0{)iIZ zlvw@in<=|LpZ!|3AjPn*%WMpf)e;c}v7f`8tZ%?wS>dugIAHfKNz~gzol5BY;*?lG ztbsKsJU%I>CT2J8s2EkP(3;!p0F8MQqWHg!%OfQqWrL*W3b|YB4yw^nU-!lG7C&q$ zC>t*>@Tj*A+sQPFpnUx6pY3bd+uRzF%T6e$Pf%36Vf-Q;*B2gtX(KHbky&q zt}F&uylN#He_D>hDwgKqRn=~RtQ=t*Vr4zP?#g&Gy^3zo-{EcVaWZse%$>h;f$#LC z)*v>!^BdZ}1DrTqoQ_N8uc&%CN}==5M6lSkX%bIWm)E7k8=L5N(7BvyWaW12+7+oa zbtPk}Qlv&&d}}NSp^-Zd;1es+cYfEWlGyi0ioGrv%ixf;OX!M%sbVZA=muI*$38hW zRrE_`SVhO7Sk6^@_~R5I_DkG^&@20~NC5n6C2w0VLvKoetQIOkzAPba_Cy0<`ODHM2@RCJ9k+)=Rf(q(5C8U!O&U=;bA@|nT}>Hp zmoy*=%h37&4H^U+&Hjhnl&yP#z+2k}uOn)(63fCBdXgkunP}Hfq`6%#Z4_ zEe7M&^Eg>|?sQA=j>7kXa(P4M>&*QdoHE7GhN8cTqJIC{mY@2^66n*QSZWI36 z^@b1f)>ORSyD}_{tJd*NV~o^vlDS)=AXGph?Vg53K|QrZxFeMy=yq`R8nq9{cZ(st zDehv#VH*_I-7TCWK+CX`*u?3B7^UDf;peftU$EBB&sS_ zyiZu*XiKILmRjvY=S~X+QKzwzOgw^~lPpgX4G*Rcj6mWA2sJ}97-|qW&cj?OAbG0j z$IuD{M~ub5oFO{OV!~zw2Ao#Hgb>W`o@B8C`$~xrp!&q#FezIfFC7TYKzGI3mTb1r z6}*MtwjB+>;$|5z%@);(HBP_yS^t#p3_ntlO5#1-R#7s(S@Wx+y~!30iFv`{-<-D_ zK?+MqWIanQ-c#1rksYJbcl10=>sC9_@>#C_zqufx>`}>tR5IvEzR$f@EL>m+n@xI& z_9(l>A-h9=)GfVmQ*q?4be6h*ufd0KA$2HH5=$^_-5^*t@d7VD6^sL^Ky+*Pn?$Vj zO{BF(T17u5pzHqD#Qnnlyqbu|N_GLI&EWhzjc;JHzQONEx9UW`$ib;k-b(q3gCof2 z)iKbI23HMu0r>ii0v8717U=1rp4SB&0oJ^~JU6bDgH;YI6{uSBb&b;9D05(I$)jujX?hj`*{{~(3&>x@*}0)@+r=UQ`{f>6-$KNTdRM|Dz+i=*lD9(Jo*mvpLrv@jnZp`9P(Xo34m)&d377Y% z%u}2QnwCs5*rNc`c7NMR)g=^aFlbCjkksu*cvm_2qmG-PlJT}p>F8ZDi$FhkSywNt zbl64<<+yX`AlJVO@e!U{xSlVlC*dbInMo?cTnG$O1w*~wfa{;I_R$k-ry@Zbg!z}Y zfJ~VV&pW&hKksoYn7H{3@iE0u4(@Cudq?=hlHSO(5d|+*1l5r;Pib=*;>;~jn8_NX zIQZCvd|s4ww`QEpq@(M$4Jf*ie=%gM9xi-2dEE6aU+nK`pZoH3kYqCO&ZpeF;fFVy zsqggm)$FusCc`J+e%b6>p~;Z!3zM8-%N2_t*LyQ_Mek}yV>p7l8a}Bmn*ol7fqSOE z<#=^<s$Z^7sdk((7dNYV2lnyZa;+A-g-x_fth8TX9(YSt0)e3&1|e+KNOYkmP_Psyo@

!-vQf%v}de) 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 LNkvXXu0mjfJeQtr literal 0 HcmV?d00001 diff --git a/packages/voucher/public/index.html b/packages/voucher/public/index.html new file mode 100644 index 0000000..8905e25 --- /dev/null +++ b/packages/voucher/public/index.html @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Redeem + + + + + +

+ + + diff --git a/packages/voucher/public/logo192.png b/packages/voucher/public/logo192.png new file mode 100644 index 0000000000000000000000000000000000000000..d19d99443b6cb40bc142af1a2b728056a1216030 GIT binary patch literal 9283 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 literal 0 HcmV?d00001 diff --git a/packages/voucher/public/logo512.png b/packages/voucher/public/logo512.png new file mode 100644 index 0000000000000000000000000000000000000000..bb13cd661c7f868820367bb2917dcb6f4145c580 GIT binary patch literal 28967 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 literal 0 HcmV?d00001 diff --git a/packages/voucher/public/manifest.json b/packages/voucher/public/manifest.json new file mode 100644 index 0000000..bf30f4f --- /dev/null +++ b/packages/voucher/public/manifest.json @@ -0,0 +1,15 @@ +{ + "short_name": "Redeem", + "name": "Redeem Voucher View", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/packages/voucher/public/robots.txt b/packages/voucher/public/robots.txt new file mode 100644 index 0000000..149474c --- /dev/null +++ b/packages/voucher/public/robots.txt @@ -0,0 +1,8 @@ +User-agent: Googlebot +Allow: / + +User-agent: Bingbot +Allow: / + +User-agent: * +Disallow: / diff --git a/packages/voucher/src/app/App.tsx b/packages/voucher/src/app/App.tsx new file mode 100644 index 0000000..6b840b2 --- /dev/null +++ b/packages/voucher/src/app/App.tsx @@ -0,0 +1,146 @@ +import {css, Global} from '@emotion/react' +import {Helmet, HelmetProvider} from 'react-helmet-async' +import {Toaster} from 'react-hot-toast' +import {QueryClient, QueryClientProvider} from '@tanstack/react-query' +import { + BrowserRouter as Router, + Navigate, + Route, + Routes, +} from 'react-router-dom' +import {useTranslation} from 'react-i18next' + +import { + initMonitoringIfTokensPresent, + useMonitorBrowserId, + useMonitorLanguage, +} from 'helpers/monitoring' + +// Components +import FeatureFlagNotificationBanner from 'components/FeatureFlagNotificationBanner' + +// Pages +import GroupPage from 'pages/GroupPage' + +// Route paths +import {NO_MATCH_ROUTE, GROUP_PAGE_ROUTE} from 'constants/routes' + +// Configs +import {getIsLaunchDarklySdkClientAvailable} from 'constants/config' + +// Translations +import {initTranslations} from 'helpers/i18n' +import DetectDefaultLanguage from 'components/DetectDefaultLanguage' +import {DEFAULT_LOCALE} from 'constants/translation' + +import 'focus-visible/dist/focus-visible' + +// Theme +import {ChakraProvider} from '@chakra-ui/react' +import {theme} from 'theme' +import {initTimezone} from 'helpers/timezone' +import ScrollToTopOnPathChange from 'components/ScrollToTopOnPathChange' +import TryAgainPage from 'pages/TryAgainLaterPage' +import {useJSONFlags} from 'hooks/FeatureFlag' +import VoucherError from 'components/VoucherError' + +type KillSwitchFeatureFlagProps = { + voucherKillSwitchFeatureFlag: { + title?: string + message?: string + shouldShow: boolean + } +} + +const GlobalStyles = css` + /* + This will hide the focus indicator if the element receives focus via the mouse, + but it will still show up on keyboard focus. + */ + .js-focus-visible :focus:not([data-focus-visible-added]) { + outline: none; + box-shadow: none; + } +` + +const helmetContext = {} +const queryClient = new QueryClient() + +initTimezone() +initMonitoringIfTokensPresent() +initTranslations() + +function App(): JSX.Element { + const {i18n: i18nInstance} = useTranslation() + const language = + i18nInstance?.language?.substring(0, 2) || DEFAULT_LOCALE.code // Get base language locale + useMonitorLanguage(language) + useMonitorBrowserId() + + const isLaunchdarklySdkClientAvailable = getIsLaunchDarklySdkClientAvailable() + const voucherKillSwitchFeatureFlag = useJSONFlags( + 'voucherKillSwitchFeatureFlag', + ) + const {title, message, shouldShow} = voucherKillSwitchFeatureFlag + + return ( + + + + + + Redeem + + + + +
+ + {isLaunchdarklySdkClientAvailable && ( + + )} + + + + + {isLaunchdarklySdkClientAvailable && shouldShow ? ( + + } + /> + ) : ( + <> + + } + /> + } /> + } + /> + + )} + + +
+
+
+
+ ) +} + +export default App diff --git a/packages/voucher/src/components/Banner/Banner.tsx b/packages/voucher/src/components/Banner/Banner.tsx new file mode 100644 index 0000000..659c78f --- /dev/null +++ b/packages/voucher/src/components/Banner/Banner.tsx @@ -0,0 +1,92 @@ +import React, {useMemo} from 'react' +import { + As, + Box, + CloseButton, + Collapse, + Flex, + Icon, + StylesProvider, + useDisclosure, + useMultiStyleConfig, +} from '@chakra-ui/react' + +import {BannerVariant} from 'theme/components/Banner' + +import {BiErrorCircle, BiInfoCircle, BiX} from '../icons' + +interface BannerProps { + variant?: BannerVariant + children: React.ReactNode + /** + * Whether to allow collapsing of the banner. + * Defaults to `true` if `info` variant is used, `false` otherwise. + */ + isDismissable?: boolean + /** + * The icon to use for the banner. Defaults to the variant's icon. + */ + icon?: As + /** + * The close button to use for the banner. + * Defaults to the variant's close button. + * If `null`, the close button will not be rendered. + */ + closeButton?: React.ReactNode +} + +const Banner = ({ + variant = 'info', + children, + isDismissable: isDismissableProp, + icon: iconProp, + closeButton, +}: BannerProps): JSX.Element => { + const {isOpen, onToggle} = useDisclosure({ + defaultIsOpen: true, + }) + + const styles = useMultiStyleConfig('Banner', {variant}) + + const iconToUse = useMemo(() => { + if (iconProp) { + return iconProp + } + return variant === 'info' ? BiInfoCircle : BiErrorCircle + }, [iconProp, variant]) + + const isDismissable = useMemo(() => { + if (isDismissableProp !== undefined) { + return isDismissableProp + } + return variant === 'info' + }, [isDismissableProp, variant]) + + const closeButtonRendered = useMemo(() => { + if (!isDismissable) return null + if (closeButton !== undefined) return closeButton + return ( + + + + ) + }, [closeButton, isDismissable, onToggle, styles.close]) + + return ( + + + + + + + {children} + + {closeButtonRendered} + + + + + ) +} + +export default Banner diff --git a/packages/voucher/src/components/Banner/index.ts b/packages/voucher/src/components/Banner/index.ts new file mode 100644 index 0000000..f926fc6 --- /dev/null +++ b/packages/voucher/src/components/Banner/index.ts @@ -0,0 +1 @@ +export {default} from './Banner' diff --git a/packages/voucher/src/components/BrandmarkBackground/BrandmarkBackground.tsx b/packages/voucher/src/components/BrandmarkBackground/BrandmarkBackground.tsx new file mode 100644 index 0000000..b898e0f --- /dev/null +++ b/packages/voucher/src/components/BrandmarkBackground/BrandmarkBackground.tsx @@ -0,0 +1,46 @@ +import React from 'react' +import {Box, Image} from '@chakra-ui/react' +import {VoucherColorScheme} from 'types/voucher' +import redeemLogoBrandmark from 'images/redeem-logo-brandmark.svg' +import {colors} from 'theme/foundations/colors' + +type RedemptionPageBackgroundProps = { + colorScheme: VoucherColorScheme +} + +const RedemptionPageBackground = ({ + colorScheme, +}: RedemptionPageBackgroundProps) => { + return ( + + + + + ) +} + +export default React.memo(RedemptionPageBackground) diff --git a/packages/voucher/src/components/BrandmarkBackground/index.ts b/packages/voucher/src/components/BrandmarkBackground/index.ts new file mode 100644 index 0000000..30b2e9d --- /dev/null +++ b/packages/voucher/src/components/BrandmarkBackground/index.ts @@ -0,0 +1 @@ +export {default} from './BrandmarkBackground' diff --git a/packages/voucher/src/components/CanvasWithImage/CanvasWithImage.tsx b/packages/voucher/src/components/CanvasWithImage/CanvasWithImage.tsx new file mode 100644 index 0000000..3d730f0 --- /dev/null +++ b/packages/voucher/src/components/CanvasWithImage/CanvasWithImage.tsx @@ -0,0 +1,66 @@ +import React, {useCallback} from 'react' + +type CanvasWithImageProps = { + src: string + alt: string + id: string + cssToUse?: 'voucher-logo-redeem-voucher-overlay' | 'voucher-logo-overlay' +} + +function CanvasWithImage({ + src, + alt, + id, + cssToUse = 'voucher-logo-overlay', +}: CanvasWithImageProps) { + const canvasRef = useCallback( + (canvas: HTMLCanvasElement | null) => { + if (!canvas) { + return + } + + const ctx = canvas.getContext('2d') + if (!ctx) { + return + } + + const img = new Image() + img.src = src + img.alt = alt + canvas.style.objectFit = 'scale-down' + + img.onload = function () { + // // Taken from https://stackoverflow.com/questions/23104582/scaling-an-image-to-fit-on-canvas + const hRatio = canvas.width / img.width + const vRatio = canvas.height / img.height + const ratio = Math.min(hRatio, vRatio) + const centerShift_x = (canvas.width - img.width * ratio) / 2 + const centerShift_y = (canvas.height - img.height * ratio) / 2 + ctx.clearRect(0, 0, canvas.width, canvas.height) + + ctx.drawImage( + img, + 0, + 0, + img.width, + img.height, + centerShift_x, + centerShift_y, + img.width * ratio, + img.height * ratio, + ) + } + }, + [src, alt], + ) + + // This empty div is important such that when running the e2e helper function `replaceWholeCanvasIntoAnImageForTest`, it will not crash. + // I am not sure whats the exact reason but need to investigate. + return ( +
+ +
+ ) +} + +export default CanvasWithImage diff --git a/packages/voucher/src/components/CanvasWithImage/index.ts b/packages/voucher/src/components/CanvasWithImage/index.ts new file mode 100644 index 0000000..d038204 --- /dev/null +++ b/packages/voucher/src/components/CanvasWithImage/index.ts @@ -0,0 +1 @@ +export {default} from './CanvasWithImage' diff --git a/packages/voucher/src/components/DesktopAlertOverlay/DesktopAlertOverlay.tsx b/packages/voucher/src/components/DesktopAlertOverlay/DesktopAlertOverlay.tsx new file mode 100644 index 0000000..cf90a99 --- /dev/null +++ b/packages/voucher/src/components/DesktopAlertOverlay/DesktopAlertOverlay.tsx @@ -0,0 +1,11 @@ +import React from 'react' +import {isDesktop} from 'react-device-detect' +import {useTranslation} from 'react-i18next' +import InlineMessage from 'components/InlineMessage' + +const DesktopAlertOverlay = () => { + const {t} = useTranslation('alerts', {keyPrefix: 'desktop'}) + return {t('alert')} +} + +export default DesktopAlertOverlay diff --git a/packages/voucher/src/components/DesktopAlertOverlay/index.ts b/packages/voucher/src/components/DesktopAlertOverlay/index.ts new file mode 100644 index 0000000..55a979d --- /dev/null +++ b/packages/voucher/src/components/DesktopAlertOverlay/index.ts @@ -0,0 +1 @@ +export {default} from './DesktopAlertOverlay' diff --git a/packages/voucher/src/components/DetectDefaultLanguage.tsx b/packages/voucher/src/components/DetectDefaultLanguage.tsx new file mode 100644 index 0000000..c8e8de3 --- /dev/null +++ b/packages/voucher/src/components/DetectDefaultLanguage.tsx @@ -0,0 +1,29 @@ +import {useEffect} from 'react' +import {useLocation, useSearchParams} from 'react-router-dom' +import qs from 'qs' + +import {changeLanguage} from 'helpers/i18n' +import {DEFAULT_LOCALE, QUERY_STRING_LOCALE_KEY} from 'constants/translation' + +/** + * Detects browser locale and sets language accordingly. Must be put within Router component + */ +const DetectDefaultLanguage = () => { + const [, setSearchParams] = useSearchParams() + const location = useLocation() + // If language does not exist in query string, then insert the browser's language + // into the query string. If browser language is not avaiable, then the default (en) + // is used. + useEffect(() => { + const query = qs.parse(location.search, {ignoreQueryPrefix: true}) + if (!query[QUERY_STRING_LOCALE_KEY]) { + changeLanguage( + navigator?.language || DEFAULT_LOCALE.code, + setSearchParams, + ) + } + }, [history, location.search]) + return <> +} + +export default DetectDefaultLanguage diff --git a/packages/voucher/src/components/FeatureFlagNotificationBanner/FeatureFlagNotificationBanner.tsx b/packages/voucher/src/components/FeatureFlagNotificationBanner/FeatureFlagNotificationBanner.tsx new file mode 100644 index 0000000..65076bc --- /dev/null +++ b/packages/voucher/src/components/FeatureFlagNotificationBanner/FeatureFlagNotificationBanner.tsx @@ -0,0 +1,37 @@ +import React from 'react' + +import {BannerVariant} from 'theme/components/Banner' + +import Banner from '../Banner' +import {useJSONFlags} from 'hooks/FeatureFlag' + +// The extra nesting is because all flags are tied to the same account. So the extra object key is meant to specify which flag we are extracting +type FeatureFlagNotificationBannerProps = { + voucherNotificationBanner: { + shouldShow: boolean + message: string + variant: BannerVariant + isDismissable: boolean + } +} + +const FeatureFlagNotificationBanner = () => { + const voucherNotificationBanner = + useJSONFlags( + 'voucherNotificationBanner', + ) + const {shouldShow, message, variant, isDismissable} = + voucherNotificationBanner + + if (!shouldShow) { + return null + } + + return ( + + {message} + + ) +} + +export default FeatureFlagNotificationBanner diff --git a/packages/voucher/src/components/FeatureFlagNotificationBanner/index.ts b/packages/voucher/src/components/FeatureFlagNotificationBanner/index.ts new file mode 100644 index 0000000..4cee7c5 --- /dev/null +++ b/packages/voucher/src/components/FeatureFlagNotificationBanner/index.ts @@ -0,0 +1 @@ +export {default} from './FeatureFlagNotificationBanner' diff --git a/packages/voucher/src/components/Footer/Footer.tsx b/packages/voucher/src/components/Footer/Footer.tsx new file mode 100644 index 0000000..814e44f --- /dev/null +++ b/packages/voucher/src/components/Footer/Footer.tsx @@ -0,0 +1,204 @@ +// Constants +import {FaFacebookF, FaLinkedinIn} from 'react-icons/fa' +import { + Container, + Divider, + Flex, + HStack, + Image, + Link, + Stack, + Text, + useBreakpointValue, + VStack, +} from '@chakra-ui/react' +import * as CSS from 'csstype' + +import OgpLogoImage from 'images/ogp-logo-black.svg' +import RedeemLogoPng from 'images/redeem-full.png' +import RedeemLogoSvg from 'images/redeem-full.svg' +import {REDEEM_CONSTANTS} from 'constants/config' + +import OGPLogo from './OGPLogo' + +interface FooterProps { + desktopPosition?: CSS.Property.Position +} + +export const Footer = ({desktopPosition = 'absolute'}: FooterProps) => { + const isMobileWidth = useBreakpointValue({base: true, lg: false}) + + return isMobileWidth ? ( + + + + + + The trusted voucher system of the Singapore Government + + + + + Privacy + + + Terms of Use + + + Report Vulnerability + + + + + + + + Built by + + + Open Government Products Logo + + + + + + + + + + + + + + + + + + ©2021 Open Government Products, Government Technology Agency of + Singapore + + + + + + ) : ( + + + + + © 2021 Open Government Products, GovTech Singapore + + + + + + Privacy + + + Terms of Use + + + Report Vulnerability + + + + + ) +} diff --git a/packages/voucher/src/components/Footer/OGPLogo.tsx b/packages/voucher/src/components/Footer/OGPLogo.tsx new file mode 100644 index 0000000..cc5b662 --- /dev/null +++ b/packages/voucher/src/components/Footer/OGPLogo.tsx @@ -0,0 +1,38 @@ +function OGPLogo(): JSX.Element { + return ( + + + + + + + + + + ) +} + +export default OGPLogo diff --git a/packages/voucher/src/components/Footer/index.ts b/packages/voucher/src/components/Footer/index.ts new file mode 100644 index 0000000..bd2c119 --- /dev/null +++ b/packages/voucher/src/components/Footer/index.ts @@ -0,0 +1 @@ +export * from './Footer' diff --git a/packages/voucher/src/components/InlineMessage.tsx b/packages/voucher/src/components/InlineMessage.tsx new file mode 100644 index 0000000..144952f --- /dev/null +++ b/packages/voucher/src/components/InlineMessage.tsx @@ -0,0 +1,21 @@ +import React, {ReactNode} from 'react' +import {IoMdInformationCircle} from 'react-icons/io' +import {Text, HStack, useMultiStyleConfig, Icon} from '@chakra-ui/react' + +interface InlineMessageProps { + isHidden: boolean + children: ReactNode +} + +const InlineMessage = ({isHidden, children}: InlineMessageProps) => { + const styles = useMultiStyleConfig('InlineMessage', {}) + + return ( + + + {children} + + ) +} + +export default InlineMessage diff --git a/packages/voucher/src/components/LanguageSelector/LanguageSelector.tsx b/packages/voucher/src/components/LanguageSelector/LanguageSelector.tsx new file mode 100644 index 0000000..0bc0aa5 --- /dev/null +++ b/packages/voucher/src/components/LanguageSelector/LanguageSelector.tsx @@ -0,0 +1,99 @@ +import React from 'react' +import {useTranslation} from 'react-i18next' +import {useSearchParams} from 'react-router-dom' + +import {DEFAULT_LOCALE, SUPPORTED_LOCALES} from 'constants/translation' +import {BiChevronDown, BiChevronUp, BiGlobe} from 'react-icons/bi' +import {changeLanguage} from 'helpers/i18n' +import { + Button, + HStack, + Icon, + Menu, + MenuButton, + MenuItem, + MenuList, + Text, + useMultiStyleConfig, +} from '@chakra-ui/react' +import {DDAction} from 'constants/datadog' + +interface LanguageSelectorProps { + color?: 'dark' | 'light' | 'primary' + isInteractionDisabled?: boolean +} + +const LanguageSelector = ({ + color = 'dark', + isInteractionDisabled = false, +}: LanguageSelectorProps) => { + const {i18n} = useTranslation('header') + // Get selected locale information (label). If it is not found, then + // default locale (en) will be assumed to be selected. + const selectedLocale = + SUPPORTED_LOCALES.find( + // Get base language from locale + (locale) => locale.code === i18n?.language?.substring(0, 2), // en-US -> en + ) || DEFAULT_LOCALE + const [, setSearchParams] = useSearchParams() + + // Interaction disabled style will be light color + const styles = useMultiStyleConfig('LanguageSelector', { + variant: isInteractionDisabled ? 'light' : color, + }) + + return ( + + {({isOpen}) => ( + <> + + + + + + {selectedLocale.label} + + + + + + + {SUPPORTED_LOCALES.map((locale) => ( + changeLanguage(locale.code, setSearchParams)} + > + {locale.label} + + ))} + + + )} + + ) +} + +export default LanguageSelector diff --git a/packages/voucher/src/components/LanguageSelector/index.ts b/packages/voucher/src/components/LanguageSelector/index.ts new file mode 100644 index 0000000..1b4e895 --- /dev/null +++ b/packages/voucher/src/components/LanguageSelector/index.ts @@ -0,0 +1 @@ +export {default} from './LanguageSelector' diff --git a/packages/voucher/src/components/Modal/Modal.scss b/packages/voucher/src/components/Modal/Modal.scss new file mode 100644 index 0000000..e2ffa96 --- /dev/null +++ b/packages/voucher/src/components/Modal/Modal.scss @@ -0,0 +1,97 @@ +@import 'src/styles/colors'; + +$modal-content-relative-bottom: 60px; + +.modal { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + height: -webkit-fill-available; + background: rgba(0, 0, 0, 0.65); + z-index: 999999; + opacity: 0; + visibility: hidden; + display: flex; + justify-content: center; + align-items: center; + + &.open { + visibility: visible; + opacity: 1; + } +} + +.modal-main { + background: white; + width: 100%; + height: auto; + overflow: visible; + max-height: calc(100vh - 100px); + box-shadow: 0px 0px 20px rgba(97, 108, 137, 0.3); + border-radius: 4px; + display: flex; + margin: calc(#{$modal-content-relative-bottom} + 20px) 20px 20px 20px; + flex-direction: column; + max-width: 20rem; + + &::-webkit-scrollbar { + -webkit-appearance: none; + // scrollbar-width: thin; + // scrollbar-height: thin; + + scrollbar-color: #bbb; + width: 10px; + height: 10px; + z-index: 3; + } + + &::-webkit-scrollbar-track { + background: transparent; + border-top-right-radius: 50%; + border-bottom-right-radius: 50%; + z-index: 3; + transform: translateY(-10px); + } + + &::-webkit-scrollbar-thumb { + border-radius: 16px; + background-color: #bbb; + box-shadow: 0 0 2px rgba(255, 255, 255, 0.5); + z-index: 3; + } + + .modal-icon { + align-self: center; + + svg { + transform: translateY(-50%); + } + } + + .modal-content { + overflow-y: auto; + position: relative; + bottom: $modal-content-relative-bottom; + margin-bottom: -#{$modal-content-relative-bottom}; + padding: 0 1rem 1rem 1rem; + .modal-header { + text-align: center; + &.error { + color: $palette-danger-500; + } + } + + .modal-body { + margin-top: 1.5rem; + color: $palette-neutral-800; + } + } +} + +@media screen and (min-width: 480px) { + .modal-main { + width: 480px; + } +} diff --git a/packages/voucher/src/components/Modal/Modal.tsx b/packages/voucher/src/components/Modal/Modal.tsx new file mode 100644 index 0000000..0942562 --- /dev/null +++ b/packages/voucher/src/components/Modal/Modal.tsx @@ -0,0 +1,57 @@ +import React, {ReactNode, useEffect} from 'react' +import {ReactComponent as XCircleSolidDanger} from 'images/x-circle-solid-danger.svg' + +import useKeyPress from 'hooks/useKeyPress' + +import './Modal.scss' +import {Text} from '@chakra-ui/react' + +interface ModalProps { + isOpen: boolean + children: ReactNode + type: 'error' + // TODO: Stricter types + header?: ReactNode + onCloseClick?: () => void +} + +const Modal = ({isOpen, onCloseClick, children, type, header}: ModalProps) => { + // Trigger close when Escape is pressed + useKeyPress('Escape', onCloseClick) + + // Disable or Enable scroll on the html body that is in the background of the modal + // whenever it is opened or close. + useEffect(() => { + // Disable when opens, enables when closed + if (isOpen) { + document.body.classList.add('disable-scroll') + } else { + document.body.classList.remove('disable-scroll') + } + }, [isOpen]) + + // On unmount, enable scroll as well + useEffect(() => { + return () => document.body.classList.remove('disable-scroll') + }, []) + + return ( + <> +
+
+
+ {type === 'error' && } +
+
+ + {header} + +
{children}
+
+
+
+ + ) +} + +export default Modal diff --git a/packages/voucher/src/components/Modal/index.ts b/packages/voucher/src/components/Modal/index.ts new file mode 100644 index 0000000..c01da28 --- /dev/null +++ b/packages/voucher/src/components/Modal/index.ts @@ -0,0 +1 @@ +export {default} from './Modal' diff --git a/packages/voucher/src/components/QrCode.tsx b/packages/voucher/src/components/QrCode.tsx new file mode 100644 index 0000000..1468e5f --- /dev/null +++ b/packages/voucher/src/components/QrCode.tsx @@ -0,0 +1,52 @@ +import React, {ReactNode, useCallback} from 'react' + +import QRCode from 'qrcode' +import DOMPurify from 'dompurify' + +interface QrCodeProps { + code: string + children?: ReactNode +} + +const QrCode = ({code, children}: QrCodeProps) => { + const purifiedCode = DOMPurify.sanitize(code) + const canvasRef = useCallback( + async (node: HTMLCanvasElement) => { + if (node !== null) { + // The magic happens when we reference our qrcode-reference-container + const element = document.getElementById('qrcode-reference-container') + const referenceLen = Math.min( + element?.clientHeight ?? 0, + element?.clientWidth ?? 0, + ) + + // Generate QR code + // errorCorrectionLevel defaults to M without specifying. + // L, M, Q, H - 7%, 15%, 25%, 30% + // The downside is it reduces the symbol's capacity + await QRCode.toCanvas(node, purifiedCode, { + scale: 4, + margin: 1, + // Error correction is set to high so that they can still be scanned + // with the logo overlaid in the middle. If the qr code becomes too + // dense, voucher id generation logic can be changed to make them + // shorter. + errorCorrectionLevel: 'H', + width: referenceLen, + }) + } + }, + [purifiedCode], + ) + + return ( + <> +
+ +
+ {children} + + ) +} + +export default QrCode diff --git a/packages/voucher/src/components/ScrollToTopOnPathChange/ScrollToTopOnPathChange.tsx b/packages/voucher/src/components/ScrollToTopOnPathChange/ScrollToTopOnPathChange.tsx new file mode 100644 index 0000000..e7404a9 --- /dev/null +++ b/packages/voucher/src/components/ScrollToTopOnPathChange/ScrollToTopOnPathChange.tsx @@ -0,0 +1,16 @@ +import {useEffect} from 'react' +import {useLocation} from 'react-router-dom' + +type ScrollToTopOnPathChangeProps = Record + +const ScrollToTopOnPathChange: React.FC = () => { + const {pathname} = useLocation() + + useEffect(() => { + window.scrollTo(0, 0) + }, [pathname]) + + return null +} + +export default ScrollToTopOnPathChange diff --git a/packages/voucher/src/components/ScrollToTopOnPathChange/index.ts b/packages/voucher/src/components/ScrollToTopOnPathChange/index.ts new file mode 100644 index 0000000..174012f --- /dev/null +++ b/packages/voucher/src/components/ScrollToTopOnPathChange/index.ts @@ -0,0 +1 @@ +export {default} from './ScrollToTopOnPathChange' diff --git a/packages/voucher/src/components/Toast/Toast.scss b/packages/voucher/src/components/Toast/Toast.scss new file mode 100644 index 0000000..3475a68 --- /dev/null +++ b/packages/voucher/src/components/Toast/Toast.scss @@ -0,0 +1,49 @@ +@import 'src/styles/colors.scss'; + +.toast { + box-sizing: border-box; + border-radius: 4px; + display: flex; + flex-direction: row; + align-items: flex-start; + padding: 16px; + transform: scale(0); + transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1); + + &.success { + background: $palette-success-100; + border: 1px solid #{$palette-success-500}; + button { + color: $palette-success-500; + } + } + + &.warning { + background: $palette-warning-100; + border: 1px solid #{$palette-warning-500}; + + button { + color: $palette-neutral-900; + } + } + + &.visible { + transform: scale(1); + } + + svg { + flex-shrink: 0; + } + + .toast-text { + color: $palette-neutral-900; + display: flex; + flex-direction: column; + align-items: flex-start; + margin-left: 8px; + + span { + color: currentColor; + } + } +} diff --git a/packages/voucher/src/components/Toast/Toast.tsx b/packages/voucher/src/components/Toast/Toast.tsx new file mode 100644 index 0000000..199a87f --- /dev/null +++ b/packages/voucher/src/components/Toast/Toast.tsx @@ -0,0 +1,33 @@ +import React, {ReactNode} from 'react' +import './Toast.scss' +import {ReactComponent as BxsCheckCircleSuccess} from 'images/bxs-check-circle-success.svg' +import {ReactComponent as BxErrorCircle} from 'images/bx-error-circle.svg' +import {IconContext} from 'react-icons/lib' +import {BiX} from 'react-icons/bi' + +export interface ToastProps { + header: ReactNode + type: 'success' | 'warning' + visible: boolean + onClose: () => void + message?: string +} + +const Toast = ({header, message, type, onClose, visible}: ToastProps) => { + return ( +
+ {type === 'success' ? : } +
+ {header} + {message && {message}} +
+ +
+ ) +} + +export default Toast diff --git a/packages/voucher/src/components/Toast/index.ts b/packages/voucher/src/components/Toast/index.ts new file mode 100644 index 0000000..9f77f72 --- /dev/null +++ b/packages/voucher/src/components/Toast/index.ts @@ -0,0 +1 @@ +export {default, type ToastProps} from './Toast' diff --git a/packages/voucher/src/components/ViewTermsAndConditionsText/ViewTermsAndConditionsText.tsx b/packages/voucher/src/components/ViewTermsAndConditionsText/ViewTermsAndConditionsText.tsx new file mode 100644 index 0000000..5b026f8 --- /dev/null +++ b/packages/voucher/src/components/ViewTermsAndConditionsText/ViewTermsAndConditionsText.tsx @@ -0,0 +1,34 @@ +import {Trans, useTranslation} from 'react-i18next' + +import {Link, Text} from '@chakra-ui/react' +import {customMonitorClick} from 'helpers/monitoring' +import {DDAction} from 'constants/datadog' + +interface ContactFooterProps { + campaignTncUrl: string +} + +const ViewTermsAndConditionsText = ({campaignTncUrl}: ContactFooterProps) => { + const {t} = useTranslation('main', {keyPrefix: 'footer'}) + + return ( + + + View + { + customMonitorClick(DDAction.VIEW_TERMS_AND_CONDITIONS_BUTTON) + }} + > + terms and conditions + + + + ) +} + +export default ViewTermsAndConditionsText diff --git a/packages/voucher/src/components/ViewTermsAndConditionsText/index.ts b/packages/voucher/src/components/ViewTermsAndConditionsText/index.ts new file mode 100644 index 0000000..7a9d78f --- /dev/null +++ b/packages/voucher/src/components/ViewTermsAndConditionsText/index.ts @@ -0,0 +1 @@ +export {default} from './ViewTermsAndConditionsText' diff --git a/packages/voucher/src/components/VoucherError/ErrorTemplate.tsx b/packages/voucher/src/components/VoucherError/ErrorTemplate.tsx new file mode 100644 index 0000000..85c5d0e --- /dev/null +++ b/packages/voucher/src/components/VoucherError/ErrorTemplate.tsx @@ -0,0 +1,74 @@ +import React, {ReactNode} from 'react' +import {Center, HStack, Image, Link, Text, VStack} from '@chakra-ui/react' + +// Components +import redeemLogo from 'images/redeem-logo.svg' +import errorPageGraphic from 'images/error-page-graphic.svg' +import LanguageSelector from 'components/LanguageSelector' +import {Trans, useTranslation} from 'react-i18next' +import Header from '../basic/Header' +import {REDEEM_CONSTANTS} from 'constants/config' + +interface ErrorTemplateProps { + errorObj: { + title: string + content: ReactNode + } +} + +// Presentational component for error states +const ErrorTemplate = ({errorObj}: ErrorTemplateProps) => { + const {t} = useTranslation('errors', {keyPrefix: 'common'}) + return ( + <> +
+
+ + + + + + + + + {errorObj.title} + + + {errorObj.content} + + + + For more information, please write to + + {REDEEM_CONSTANTS.supportEmail} + + + + + + error page graphic + +
+ + ) +} + +export default ErrorTemplate diff --git a/packages/voucher/src/components/VoucherError/VoucherError.tsx b/packages/voucher/src/components/VoucherError/VoucherError.tsx new file mode 100644 index 0000000..6fcc38b --- /dev/null +++ b/packages/voucher/src/components/VoucherError/VoucherError.tsx @@ -0,0 +1,26 @@ +// Libraries +import React from 'react' + +// Helpers +import {is404Error} from 'helpers/utils' +import useErrorStates from 'hooks/useErrorStates' + +// Components +import ErrorTemplate from './ErrorTemplate' + +// TODO(ts): Rethink error type here +interface VoucherErrorProps { + error: unknown +} + +const VoucherError = ({error}: VoucherErrorProps) => { + const errorStates = useErrorStates() + + return is404Error(error) ? ( + + ) : ( + + ) +} + +export default VoucherError diff --git a/packages/voucher/src/components/VoucherError/index.ts b/packages/voucher/src/components/VoucherError/index.ts new file mode 100644 index 0000000..7d9868e --- /dev/null +++ b/packages/voucher/src/components/VoucherError/index.ts @@ -0,0 +1 @@ +export {default} from './VoucherError' diff --git a/packages/voucher/src/components/basic/Header.tsx b/packages/voucher/src/components/basic/Header.tsx new file mode 100644 index 0000000..4e553f4 --- /dev/null +++ b/packages/voucher/src/components/basic/Header.tsx @@ -0,0 +1,22 @@ +import React from 'react' +import {Helmet} from 'react-helmet-async' + +interface HeaderProps { + campaignDescription: string + campaignTitle: string +} + +const Header = ({campaignDescription, campaignTitle}: HeaderProps) => { + return ( + + {`Redeem - ${campaignTitle}`} + + + + + + + ) +} + +export default Header diff --git a/packages/voucher/src/components/icons/BiErrorCircle.tsx b/packages/voucher/src/components/icons/BiErrorCircle.tsx new file mode 100644 index 0000000..762696e --- /dev/null +++ b/packages/voucher/src/components/icons/BiErrorCircle.tsx @@ -0,0 +1,18 @@ +// Retrieved from https://reactsvgicons.com/boxicons +import React from 'react' + +export const BiErrorCircle = ( + props: React.SVGProps, +): JSX.Element => { + return ( + + + + ) +} diff --git a/packages/voucher/src/components/icons/BiInfoCircle.tsx b/packages/voucher/src/components/icons/BiInfoCircle.tsx new file mode 100644 index 0000000..69489f7 --- /dev/null +++ b/packages/voucher/src/components/icons/BiInfoCircle.tsx @@ -0,0 +1,21 @@ +import React, {forwardRef} from 'react' + +export const BiInfoCircle = forwardRef< + SVGSVGElement, + React.SVGProps +>((props, ref) => { + return ( + + + + ) +}) + +BiInfoCircle.displayName = 'BiInfoCircle' diff --git a/packages/voucher/src/components/icons/BiX.tsx b/packages/voucher/src/components/icons/BiX.tsx new file mode 100644 index 0000000..f71c66d --- /dev/null +++ b/packages/voucher/src/components/icons/BiX.tsx @@ -0,0 +1,18 @@ +import React from 'react' +import {chakra} from '@chakra-ui/react' + +export const BiX = chakra( + (props: React.SVGProps): JSX.Element => { + return ( + + + + ) + }, +) diff --git a/packages/voucher/src/components/icons/index.ts b/packages/voucher/src/components/icons/index.ts new file mode 100644 index 0000000..72cd777 --- /dev/null +++ b/packages/voucher/src/components/icons/index.ts @@ -0,0 +1,3 @@ +export {BiErrorCircle} from './BiErrorCircle' +export {BiInfoCircle} from './BiInfoCircle' +export {BiX} from './BiX' diff --git a/packages/voucher/src/constants/config.ts b/packages/voucher/src/constants/config.ts new file mode 100644 index 0000000..3ae51c7 --- /dev/null +++ b/packages/voucher/src/constants/config.ts @@ -0,0 +1,23 @@ +import _ from 'lodash' + +export function getVoucherBaseUrl() { + return process.env.REACT_APP_API_BASE_URL +} + +export function getLaunchDarklySdkClientId() { + return process.env.REACT_APP_LAUNCHDARKLY_SDK_CLIENT ?? '' +} + +export function getIsLaunchDarklySdkClientAvailable() { + const launchDarklySdkClient = getLaunchDarklySdkClientId() + return !_.isEmpty(launchDarklySdkClient) && launchDarklySdkClient !== 'null' +} + +export const REDEEM_CONSTANTS = { + landingPage: process.env.REACT_APP_LANDING_PAGE ?? '', + supportEmail: process.env.REACT_APP_SUPPORT_EMAIL ?? '', + termsOfUse: process.env.REACT_APP_TERMS_OF_USE ?? '', + privacy: process.env.REACT_APP_PRIVACY ?? '', + reportVulnerability: process.env.REACT_APP_REPORT_VULNERABILITY ?? '', + feedbackPage: process.env.REACT_APP_FEEDBACK_PAGE ?? '', +} diff --git a/packages/voucher/src/constants/datadog.ts b/packages/voucher/src/constants/datadog.ts new file mode 100644 index 0000000..d3da7da --- /dev/null +++ b/packages/voucher/src/constants/datadog.ts @@ -0,0 +1,10 @@ +export enum DDAction { + VIEW_TERMS_AND_CONDITIONS_BUTTON = 'view terms and conditions here', + GENERAL_INFO_BUTTON = 'Go to FAQ how to button', + CHANGE_LANGUAGE_BUTTON = 'Change Language button', + TRANSACTION_HISTORY_BUTTON = 'Transaction history button', + VOUCHER_TYPES_WHERE_TO_USE_BUTTON = 'Voucher types where to use button', + SHARE_VOUCHER_BUTTON = 'Share voucher button', + WHERE_TO_USE_BUTTON = 'Where to use button', + INFO_AND_HELP_BUTTON = 'Info and help button', +} diff --git a/packages/voucher/src/constants/intervals.ts b/packages/voucher/src/constants/intervals.ts new file mode 100644 index 0000000..9799a84 --- /dev/null +++ b/packages/voucher/src/constants/intervals.ts @@ -0,0 +1,7 @@ +// This controls the polling rate of fetching vouchers + +// If running tests on local test env or GitHub CI, use shorter refetch interval to +// prevent tests from taking longer to run +export const REFETCH_GROUP_INTERVAL = + process.env.NODE_ENV === 'test' || process.env.CI ? 2000 : 20000 +export const REFETCH_GROUP_ON_REDEMPTION_PAGE_INTERVAL = 2000 diff --git a/packages/voucher/src/constants/limits.ts b/packages/voucher/src/constants/limits.ts new file mode 100644 index 0000000..198469d --- /dev/null +++ b/packages/voucher/src/constants/limits.ts @@ -0,0 +1,2 @@ +// This file specifies any limit related variables +export const SELECTED_VOUCHERS_LIMIT = 15 diff --git a/packages/voucher/src/constants/requests.ts b/packages/voucher/src/constants/requests.ts new file mode 100644 index 0000000..5ee297a --- /dev/null +++ b/packages/voucher/src/constants/requests.ts @@ -0,0 +1,5 @@ +// Constants for query states +export const LOADING = 'loading' +export const PENDING = 'pending' +export const SUCCESS = 'success' +export const ERROR = 'error' diff --git a/packages/voucher/src/constants/routes.ts b/packages/voucher/src/constants/routes.ts new file mode 100644 index 0000000..9381821 --- /dev/null +++ b/packages/voucher/src/constants/routes.ts @@ -0,0 +1,4 @@ +const ROOT_ROUTE = '/' +export const NO_MATCH_ROUTE = '/404' +export const GROUP_PAGE_ROUTE = `${ROOT_ROUTE}:groupId/*` +export const REDEMPTION_PAGE_ROUTE_RELATIVE = 'show' diff --git a/packages/voucher/src/constants/sizes.ts b/packages/voucher/src/constants/sizes.ts new file mode 100644 index 0000000..d7583cd --- /dev/null +++ b/packages/voucher/src/constants/sizes.ts @@ -0,0 +1,3 @@ +export const SHORT_DEVICE_HEIGHT = 600 + +// TODO: Add max width = 512px here diff --git a/packages/voucher/src/constants/spacing.ts b/packages/voucher/src/constants/spacing.ts new file mode 100644 index 0000000..40564c5 --- /dev/null +++ b/packages/voucher/src/constants/spacing.ts @@ -0,0 +1 @@ +export const VOUCHER_SIDE_MARGIN = '4px' diff --git a/packages/voucher/src/constants/translation.ts b/packages/voucher/src/constants/translation.ts new file mode 100644 index 0000000..7de44c1 --- /dev/null +++ b/packages/voucher/src/constants/translation.ts @@ -0,0 +1,20 @@ +export const QUERY_STRING_LOCALE_KEY = 'lang' +export const DEFAULT_LOCALE = { + label: 'English', + code: 'en', +} +export const SUPPORTED_LOCALES = [ + DEFAULT_LOCALE, + { + label: '中文', + code: 'zh', + }, + { + label: 'Melayu', + code: 'ms', + }, + { + label: 'தமிழ்', + code: 'ta', + }, +] diff --git a/packages/voucher/src/constants/voucherType.ts b/packages/voucher/src/constants/voucherType.ts new file mode 100644 index 0000000..143b094 --- /dev/null +++ b/packages/voucher/src/constants/voucherType.ts @@ -0,0 +1,25 @@ +import vouchersLogo from 'images/vouchers.svg' +import supermarketVouchersLogo from 'images/supermarket-vouchers.svg' + +export type VoucherTypeConfigObject = { + id: string + src: string + text: string +} + +type VoucherTypeConfig = { + [key: string]: VoucherTypeConfigObject +} + +export const VOUCHER_TYPE_CONFIG: VoucherTypeConfig = { + heartland: { + id: 'vouchers-button', + src: vouchersLogo, + text: 'Vouchers', + }, + supermarket: { + id: 'supermarket-vouchers-button', + src: supermarketVouchersLogo, + text: 'Supermarket Vouchers', + }, +} diff --git a/packages/voucher/src/helpers/contactNumber.ts b/packages/voucher/src/helpers/contactNumber.ts new file mode 100644 index 0000000..dd2dd85 --- /dev/null +++ b/packages/voucher/src/helpers/contactNumber.ts @@ -0,0 +1,3 @@ +export function formatContactNumberForDisplay(number: string): string { + return `${number.slice(2, 6)} ${number.slice(6)}` +} diff --git a/packages/voucher/src/helpers/date.ts b/packages/voucher/src/helpers/date.ts new file mode 100644 index 0000000..82766db --- /dev/null +++ b/packages/voucher/src/helpers/date.ts @@ -0,0 +1,12 @@ +import moment from 'moment-timezone' + +moment.tz.setDefault('Asia/Singapore') + +export function formatDateString(dateString: null): null +export function formatDateString(dateString: string): string +export function formatDateString(dateString: string | null): string | null { + if (dateString === null) { + return null + } + return moment(dateString).format('DD MMM YYYY') +} diff --git a/packages/voucher/src/helpers/hooks.ts b/packages/voucher/src/helpers/hooks.ts new file mode 100644 index 0000000..9be7bbf --- /dev/null +++ b/packages/voucher/src/helpers/hooks.ts @@ -0,0 +1,31 @@ +import {SHORT_DEVICE_HEIGHT} from 'constants/sizes' +import {useLayoutEffect, useState} from 'react' +import {useWindowSize} from 'usehooks-ts' + +const useInitialWindowHeight = () => { + const {height} = useWindowSize() + const [initialHeight, setInitialHeight] = useState(null) + // Ensure screen does not unnecessarily render before computation + useLayoutEffect(() => { + // height is 0 on first init and updates to real value after + if (initialHeight || !height) { + return + } + setInitialHeight(height) + }, [height]) + + return initialHeight +} + +// Only checks the initial window size, this ensures that the +// elements don't change height due to changes in +// viewport height (e.g Navbar hide/unhide, pull to refresh) +export const useIsShortDeviceInitial = () => { + const initialHeight = useInitialWindowHeight() + + const isShortDevice = initialHeight + ? initialHeight <= SHORT_DEVICE_HEIGHT + : false // Height not yet loaded + + return isShortDevice +} diff --git a/packages/voucher/src/helpers/i18n.ts b/packages/voucher/src/helpers/i18n.ts new file mode 100644 index 0000000..af60178 --- /dev/null +++ b/packages/voucher/src/helpers/i18n.ts @@ -0,0 +1,66 @@ +import {QUERY_STRING_LOCALE_KEY, SUPPORTED_LOCALES} from 'constants/translation' +import i18n from 'i18next' +import {initReactI18next} from 'react-i18next' +import LanguageDetector from 'i18next-browser-languagedetector' + +import { + translationsEN, + translationsMS, + translationsTA, + translationsZH, +} from 'locales' +import {NavigateOptions} from 'react-router-dom' + +// TODO: Add typescript support for i18n locales +const locales = { + en: {...translationsEN}, + zh: {...translationsZH}, + ta: {...translationsTA}, + ms: {...translationsMS}, +} + +declare module 'react-i18next' { + interface CustomTypeOptions { + defaultNS: 'common' + // take type reference from en locale + resources: typeof locales.en + } +} + +/** + * Language translation init + */ +export function initTranslations(): void { + i18n + .use(initReactI18next) + .use(LanguageDetector) + .init({ + detection: { + // Read manually configured locale in query string + order: ['querystring'], + lookupQuerystring: QUERY_STRING_LOCALE_KEY, + caches: [], // Disable caching of language in localStorage so it always reads from querystring + }, + resources: locales, + supportedLngs: SUPPORTED_LOCALES.map((locale) => locale.code), + nonExplicitSupportedLngs: true, // Support all locales with supported prefixes + fallbackLng: 'en', + returnEmptyString: false, + }) +} + +export function changeLanguage( + localeCode: string, + setSearchParams: ( + params: Record, + opts: NavigateOptions, + ) => void, +) { + i18n.changeLanguage(localeCode) + setSearchParams( + { + [QUERY_STRING_LOCALE_KEY]: localeCode, + }, + {replace: true}, + ) +} diff --git a/packages/voucher/src/helpers/monitoring.ts b/packages/voucher/src/helpers/monitoring.ts new file mode 100644 index 0000000..780f3e9 --- /dev/null +++ b/packages/voucher/src/helpers/monitoring.ts @@ -0,0 +1,104 @@ +import {datadogRum} from '@datadog/browser-rum' +import {datadogLogs} from '@datadog/browser-logs' +import {useEffect} from 'react' +import type {JsonObject} from 'type-fest' +import {useBrowserId} from './user' + +import packageJson from '../../package.json' + +const {name: service, version} = packageJson + +// TODO: Increase this back to 10 if we want to monitor more sessions +const DEFAULT_RUM_SAMPLING_RATE = 1 + +export function initMonitoringIfTokensPresent() { + if ( + !process.env.REACT_APP_DATADOG_APPLICATION_ID || + !process.env.REACT_APP_DATADOG_CLIENT_TOKEN + ) { + return + } + + // Shared Datadog config between RUM and Browser Logs + // Must be initialised here after process.env check because + // env vars might be undefined. + const datadogConfig = { + clientToken: process.env.REACT_APP_DATADOG_CLIENT_TOKEN, + site: 'datadoghq.com', + service, + env: process.env.REACT_APP_DD_ENV || process.env.NODE_ENV, + // Specify a version number to identify the deployed version of your application in Datadog + version, + } + + datadogRum.init({ + ...datadogConfig, + applicationId: process.env.REACT_APP_DATADOG_APPLICATION_ID, + // Sample rate in % (i.e 100 refers to all sessions) + sampleRate: + Number(process.env.REACT_APP_DATADOG_RUM_SAMPLE_RATE) || + DEFAULT_RUM_SAMPLING_RATE, + trackInteractions: true, + // Allows integration with DataDog Traces + allowedTracingOrigins: [/https:\/\/.*(\.)?redeem\.gov\.sg/], + }) + + datadogLogs.init({ + ...datadogConfig, + // Sample rate in % (i.e 100 refers to all sessions) + sampleRate: 100, + forwardErrorsToLogs: true, + beforeSend: (log) => { + // Don't log XHR aborted requests + if (log.http?.status_code === 0) { + return false + } + }, + }) + + datadogRum.startSessionReplayRecording() +} +// TODO - Seperate out custom monitoring functions into different folder +function ddAddCustomAction({ + actionName, + context, +}: { + actionName: string + context?: JsonObject +}) { + datadogRum.addAction(actionName, context) +} + +export function customMonitorClick(targetName: string) { + ddAddCustomAction({ + actionName: targetName, + context: { + target: { + name: targetName, + }, + }, + }) +} + +export function logLimitReached(numVouchers: number) { + ddAddCustomAction({ + actionName: 'voucher limit reached', + context: { + value: numVouchers, + }, + }) +} + +export function useMonitorLanguage(language: string) { + useEffect(() => { + // Override previously set language as it can be changed by the user + datadogRum.removeRumGlobalContext('language') + datadogRum.addRumGlobalContext('language', language) + }, [language]) +} + +export function useMonitorBrowserId() { + const browserId = useBrowserId() + // Browser ID does not change over a session + useEffect(() => datadogRum.addRumGlobalContext('browser_id', browserId)) +} diff --git a/packages/voucher/src/helpers/navigate.ts b/packages/voucher/src/helpers/navigate.ts new file mode 100644 index 0000000..b91df4f --- /dev/null +++ b/packages/voucher/src/helpers/navigate.ts @@ -0,0 +1,11 @@ +import {useCallback} from 'react' +import {useNavigate, useSearchParams} from 'react-router-dom' + +export const useNavigateWithCurrentSearchParams = () => { + const navigate = useNavigate() + const [searchParams] = useSearchParams() + return useCallback( + (pathname: string) => navigate({pathname, search: searchParams.toString()}), + [navigate, searchParams], + ) +} diff --git a/packages/voucher/src/helpers/timezone.ts b/packages/voucher/src/helpers/timezone.ts new file mode 100644 index 0000000..b252f69 --- /dev/null +++ b/packages/voucher/src/helpers/timezone.ts @@ -0,0 +1,5 @@ +import moment from 'moment-timezone' + +export const initTimezone = () => { + moment.tz.setDefault('Asia/Singapore') +} diff --git a/packages/voucher/src/helpers/user.ts b/packages/voucher/src/helpers/user.ts new file mode 100644 index 0000000..10b95f4 --- /dev/null +++ b/packages/voucher/src/helpers/user.ts @@ -0,0 +1,8 @@ +import {useLocalStorage} from '@rehooks/local-storage' +import {v4 as uuid} from 'uuid' + +export const useBrowserId = () => { + const [browserId] = useLocalStorage('redeem', uuid()) + + return browserId +} diff --git a/packages/voucher/src/helpers/utils.ts b/packages/voucher/src/helpers/utils.ts new file mode 100644 index 0000000..58baddb --- /dev/null +++ b/packages/voucher/src/helpers/utils.ts @@ -0,0 +1,37 @@ +import _ from 'lodash' + +interface FormatAddressParams { + postalCode?: string | null + block?: string | null + unit?: string | null + floor?: string | null + street?: string | null +} + +export function is404Error(error: unknown) { + const errorCode = _.get(error, 'response.status') + return errorCode && errorCode === 404 +} + +export function formatAddress({ + block, + street, + postalCode, + floor, + unit, +}: FormatAddressParams) { + if (!postalCode) { + return '' + } + const address = [block ? `${block} ${street}` : street] + if (floor && unit) { + address.push(`#${floor}-${unit}`) + } + + address.push(`SINGAPORE ${postalCode}`) + return address.join(', ') +} + +export function openInNewTab(url: string) { + window.open(url, '_blank', 'noopener,noreferrer') +} diff --git a/packages/voucher/src/helpers/vouchers.ts b/packages/voucher/src/helpers/vouchers.ts new file mode 100644 index 0000000..fbd57c6 --- /dev/null +++ b/packages/voucher/src/helpers/vouchers.ts @@ -0,0 +1,124 @@ +import { + VoucherTypeConfigObject, + VOUCHER_TYPE_CONFIG, +} from 'constants/voucherType' +import {capitalCase} from 'capital-case' +import vouchersLogo from 'images/vouchers.svg' +import _ from 'lodash' +import moment from 'moment-timezone' +import {Voucher, VoucherColorScheme, VouchersState} from 'types/voucher' + +export const getVouchersTotalValue = (vouchers: Voucher[]): number => { + return _(vouchers).sumBy((voucher) => voucher.voucherValue) +} + +export const getVouchersAmountLeft = (vouchers: Voucher[]): number => { + return getVouchersTotalValue( + vouchers.filter((voucher) => voucher.state === 'unused'), + ) +} + +export const getHasVoidedVoucher = (vouchers: Voucher[]): boolean => { + return _.some(vouchers, (voucher) => voucher.state === 'voided') +} + +export const getLastRedeemedTimestamp = ( + vouchers: Voucher[], +): moment.Moment | undefined => { + const timestamps = _(vouchers) + .map((voucher) => voucher.lastRedeemedTimestamp) + .compact() + .map((vouchers) => moment(vouchers)) + .value() + const ascTimestamps = timestamps.sort((a, b) => a.diff(b)) + + return _.head(ascTimestamps) +} + +export const getTransactionId = (vouchers: Voucher[]): string | undefined => { + const transactionId = _(vouchers) + .map((voucher) => voucher.transactionId) + .compact() + .uniq() + .value() + + if (transactionId.length > 1) { + return 'Multiple Transaction Ids' + } + + return _.head(transactionId) +} + +export const getRedeemedMerchantName = ( + vouchers: Voucher[], +): string | undefined => { + const merchantNames = _(vouchers) + .map((voucher) => voucher.merchantName) + .compact() + .uniq() + .value() + + if (merchantNames.length > 1) { + return 'Multiple Merchants' + } + + return _.head(merchantNames) +} + +export const getVouchersState = (vouchers: Voucher[]): VouchersState => { + const states = _(vouchers) + .map((voucher) => voucher.state) + .uniq() + .value() + + if (states.length !== 1) { + // Invalid represents multiple different states or no state + return 'invalid' + } + + return states[0] +} + +export const getTextColorForColorScheme = ( + colorScheme?: VoucherColorScheme, +): string => { + switch (colorScheme) { + case 'yellow': + return 'primary.900' + default: + return 'white' + } +} + +export const getColorSchemeForVoucherType = ( + voucherType: string | undefined, +): VoucherColorScheme => { + if (_.isUndefined(voucherType)) { + return 'primary' + } + + switch (voucherType) { + case 'heartland': + return 'teal' + case 'supermarket': + return 'yellow' + default: + return 'primary' + } +} + +export const getConfigForVoucherType = ( + voucherType: string, +): VoucherTypeConfigObject => { + const existingConfig = VOUCHER_TYPE_CONFIG[voucherType] + if (!existingConfig) { + // Type is unhandled, use default values + return { + id: 'default-voucher-type-button', + src: vouchersLogo, + text: capitalCase(voucherType), + } + } + + return existingConfig +} diff --git a/packages/voucher/src/hooks/FeatureFlag.ts b/packages/voucher/src/hooks/FeatureFlag.ts new file mode 100644 index 0000000..b1f66dc --- /dev/null +++ b/packages/voucher/src/hooks/FeatureFlag.ts @@ -0,0 +1,14 @@ +import {useFlags} from 'launchdarkly-react-client-sdk' + +/** + * This hook corresponds directly to launchdarkly json flags on a 1 to 1 basis. Since useFlags can generally access all flags in an environment, + * we have created a wrapper for each type of flag to prevent accidental access of non-existent flags. This approach ensures that accessing flags + * that do not exist will not result in an error. For instance, if a non-existent JSON flag is accessed and then destructed, it will result in the + * destruction of an undefined value, which could crash the app. + */ +export function useJSONFlags>>( + key: keyof T, +) { + const flags = useFlags() + return flags[key] ?? {} +} diff --git a/packages/voucher/src/hooks/useClipboard.tsx b/packages/voucher/src/hooks/useClipboard.tsx new file mode 100644 index 0000000..a94741b --- /dev/null +++ b/packages/voucher/src/hooks/useClipboard.tsx @@ -0,0 +1,58 @@ +import {useCallback} from 'react' +import {useTranslation} from 'react-i18next' +import toast, {ToastOptions} from 'react-hot-toast' +import Toast, {ToastProps} from 'components/Toast' + +// Rough implementation of useClipboard, can use onSuccess, onSuccess to dynamically show toast in the future. +export function useClipboard({ + textToCopy, + onError, + onSuccess, +}: { + textToCopy: string + onError?: () => void + onSuccess?: () => void +}) { + const navigator = window.navigator + const hasNavigatorShare = !!(navigator && navigator.share) + + const {t} = useTranslation('toasts', {keyPrefix: 'copy_success'}) + const renderCopySuccessToast = useCallback( + ({id, visible}: Pick) => ( + { + toast.dismiss(id) + }} + /> + ), + [], + ) + + if (hasNavigatorShare) { + const useNavigatorShare = useCallback( + () => navigator.share({url: textToCopy}), + [textToCopy], + ) + return useNavigatorShare + } else { + const handleClick = useCallback(() => { + const navigator = window.navigator + if (!navigator?.clipboard) { + return + } + + navigator.clipboard.writeText(textToCopy).then( + () => { + onSuccess?.() + toast.custom(renderCopySuccessToast) + }, + () => void onError?.(), + ) + }, [textToCopy]) + return handleClick + } +} diff --git a/packages/voucher/src/hooks/useErrorStates.tsx b/packages/voucher/src/hooks/useErrorStates.tsx new file mode 100644 index 0000000..c39533e --- /dev/null +++ b/packages/voucher/src/hooks/useErrorStates.tsx @@ -0,0 +1,34 @@ +import React from 'react' +import {Trans, useTranslation} from 'react-i18next' + +const useErrorStates = () => { + const {t} = useTranslation('errors') + return { + NotFoundError: { + title: t('voucher_not_found.title'), + content: ( + + Please double check the URL or click on the link in the SMS again. If + the problem persists, please call PA's hotline at{' '} + 6225 5322 or reach out to + your{' '} + + nearest Community Centre/ Club (CC) + + . + + ), + }, + ServiceUnavailable: { + title: t('service_unavailable.title'), + content: ( + + Please make sure your device is connected to the internet and try + again. + + ), + }, + } +} + +export default useErrorStates diff --git a/packages/voucher/src/hooks/useFetchTransactionHistoryWithGroupId.ts b/packages/voucher/src/hooks/useFetchTransactionHistoryWithGroupId.ts new file mode 100644 index 0000000..54c4aeb --- /dev/null +++ b/packages/voucher/src/hooks/useFetchTransactionHistoryWithGroupId.ts @@ -0,0 +1,66 @@ +import {useState, useCallback, useEffect} from 'react' +import {useQuery} from '@tanstack/react-query' +import _ from 'lodash' + +import {fetchTransactionHistoryByGroupId} from 'services/RedeemApi' + +import {is404Error} from 'helpers/utils' +import {GroupedVoucherEvent} from 'types/voucher' + +const RETRIES_MAX = 3 + +const useFetchTransactionHistoryWithGroupId = ({ + groupId, + refetchInterval, + enabled = true, +}: { + groupId: string + refetchInterval: number + enabled?: boolean +}): { + groupedVoucherEvents?: GroupedVoucherEvent[] + fetchGroupByIdStatus: 'pending' | 'idle' | 'error' | 'loading' | 'success' + isFetchingGroupById: boolean + fetchGroupByIdError: unknown +} => { + const [isRefetchEnabled, setIsRefetchEnabled] = useState(true) + const disableRefetch = useCallback(() => setIsRefetchEnabled(false), []) + const { + data: response, + status, + isFetching, + error, + } = useQuery({ + queryKey: ['groupedVoucherEvents', groupId], + queryFn: () => fetchTransactionHistoryByGroupId(groupId), + + // Retry logic on failure + retry: (failureCount, responseError) => { + // Will retry when not 404 + // 404 means voucher not found + return !is404Error(responseError) && failureCount < RETRIES_MAX + }, + // This means that the hook does not automatically run + refetchInterval: isRefetchEnabled ? refetchInterval : false, + refetchIntervalInBackground: false, + refetchOnWindowFocus: isRefetchEnabled, + enabled, + }) + + useEffect(() => { + if (error) { + disableRefetch() + } + }, [error]) + + const groupedVoucherEvents = _.get(response, 'data', []) + + return { + groupedVoucherEvents, + fetchGroupByIdStatus: status, + isFetchingGroupById: isFetching, + fetchGroupByIdError: error, + } +} + +export default useFetchTransactionHistoryWithGroupId diff --git a/packages/voucher/src/hooks/useGroupWithRefetchInterval.ts b/packages/voucher/src/hooks/useGroupWithRefetchInterval.ts new file mode 100644 index 0000000..4aa5826 --- /dev/null +++ b/packages/voucher/src/hooks/useGroupWithRefetchInterval.ts @@ -0,0 +1,66 @@ +import {useState, useCallback, useEffect} from 'react' +import {useQuery} from '@tanstack/react-query' +import _ from 'lodash' + +import {fetchGroupById} from 'services/RedeemApi' + +import {is404Error} from 'helpers/utils' +import {GroupedVoucher, Voucher} from 'types/voucher' +import {Campaign} from 'types/campaign' + +const RETRIES_MAX = 3 + +const useGroupWithRefetchInterval = ( + groupId: string, + refetchInterval: number, +): { + voucherGroup: Voucher[] + groupData: GroupedVoucher + campaign: Campaign + fetchGroupByIdStatus: 'pending' | 'idle' | 'error' | 'loading' | 'success' + isFetchingGroupById: boolean + fetchGroupByIdError: unknown +} => { + const [isRefetchEnabled, setIsRefetchEnabled] = useState(true) + const disableRefetch = useCallback(() => setIsRefetchEnabled(false), []) + const { + data: response, + status, + isFetching, + error, + } = useQuery({ + queryKey: ['groups', groupId], + queryFn: () => fetchGroupById(groupId), + // Retry logic on failure + retry: (failureCount, responseError) => { + // Will retry when not 404 + // 404 means voucher not found + return !is404Error(responseError) && failureCount < RETRIES_MAX + }, + // This means that the hook does not automatically run + refetchInterval: isRefetchEnabled ? refetchInterval : false, + refetchIntervalInBackground: false, + refetchOnWindowFocus: isRefetchEnabled, + }) + + useEffect(() => { + if (error) { + disableRefetch() + } + }, [error]) + + const voucherGroup = _.get(response, 'data.vouchers', []) + const groupData = _.get(response, 'data') as unknown as GroupedVoucher + const campaign = _.get(response, 'campaign') as unknown as Campaign + + return { + voucherGroup, + groupData, + campaign, + fetchGroupByIdStatus: status, + isFetchingGroupById: isFetching, + fetchGroupByIdError: error, + } +} + +export default useGroupWithRefetchInterval diff --git a/packages/voucher/src/hooks/useKeyPress.ts b/packages/voucher/src/hooks/useKeyPress.ts new file mode 100644 index 0000000..9bf1c24 --- /dev/null +++ b/packages/voucher/src/hooks/useKeyPress.ts @@ -0,0 +1,14 @@ +import {useEffect} from 'react' + +// TODO(chakra): remove hook with chakra refactor +const useKeyPress = (key: string, callback?: () => void) => { + useEffect(() => { + function onKeyup(e: KeyboardEvent) { + if (e.key === key && callback) callback() + } + window.addEventListener('keyup', onKeyup) + return () => window.removeEventListener('keyup', onKeyup) + }, [key, callback]) +} + +export default useKeyPress diff --git a/packages/voucher/src/hooks/useNavigatorOffline.ts b/packages/voucher/src/hooks/useNavigatorOffline.ts new file mode 100644 index 0000000..b7b7194 --- /dev/null +++ b/packages/voucher/src/hooks/useNavigatorOffline.ts @@ -0,0 +1,30 @@ +import {useEffect, useState} from 'react' + +// TODO: Remove hook in place of react query's onlineManager +// Hook to check if `window.navigator.isOnline` is true +const useNavigatorOnline = () => { + function getOnlineStatus() { + return typeof window.navigator !== 'undefined' + ? window.navigator.onLine + : true + } + + const [status, setStatus] = useState(getOnlineStatus()) + + const setOnline = () => setStatus(true) + const setOffline = () => setStatus(false) + + useEffect(() => { + window.addEventListener('online', setOnline) + window.addEventListener('offline', setOffline) + + return () => { + window.removeEventListener('online', setOnline) + window.removeEventListener('offline', setOffline) + } + }, []) + + return status +} + +export default useNavigatorOnline diff --git a/packages/voucher/src/images/bx-error-circle.svg b/packages/voucher/src/images/bx-error-circle.svg new file mode 100644 index 0000000..4652563 --- /dev/null +++ b/packages/voucher/src/images/bx-error-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/packages/voucher/src/images/bxs-check-circle-black.svg b/packages/voucher/src/images/bxs-check-circle-black.svg new file mode 100644 index 0000000..926a161 --- /dev/null +++ b/packages/voucher/src/images/bxs-check-circle-black.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/voucher/src/images/bxs-check-circle-danger.svg b/packages/voucher/src/images/bxs-check-circle-danger.svg new file mode 100644 index 0000000..ce32985 --- /dev/null +++ b/packages/voucher/src/images/bxs-check-circle-danger.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/voucher/src/images/bxs-check-circle-disabled.svg b/packages/voucher/src/images/bxs-check-circle-disabled.svg new file mode 100644 index 0000000..8613a70 --- /dev/null +++ b/packages/voucher/src/images/bxs-check-circle-disabled.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/voucher/src/images/bxs-check-circle-info.svg b/packages/voucher/src/images/bxs-check-circle-info.svg new file mode 100644 index 0000000..27ce869 --- /dev/null +++ b/packages/voucher/src/images/bxs-check-circle-info.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/voucher/src/images/bxs-check-circle-success.svg b/packages/voucher/src/images/bxs-check-circle-success.svg new file mode 100644 index 0000000..23d973d --- /dev/null +++ b/packages/voucher/src/images/bxs-check-circle-success.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/voucher/src/images/bxs-check-circle.svg b/packages/voucher/src/images/bxs-check-circle.svg new file mode 100644 index 0000000..c031db5 --- /dev/null +++ b/packages/voucher/src/images/bxs-check-circle.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/voucher/src/images/bxs-info-circle.svg b/packages/voucher/src/images/bxs-info-circle.svg new file mode 100644 index 0000000..e69de29 diff --git a/packages/voucher/src/images/chevron-left-circle.svg b/packages/voucher/src/images/chevron-left-circle.svg new file mode 100644 index 0000000..4a55c56 --- /dev/null +++ b/packages/voucher/src/images/chevron-left-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/packages/voucher/src/images/chevron-right-circle.svg b/packages/voucher/src/images/chevron-right-circle.svg new file mode 100644 index 0000000..c9c771a --- /dev/null +++ b/packages/voucher/src/images/chevron-right-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/packages/voucher/src/images/cross.svg b/packages/voucher/src/images/cross.svg new file mode 100644 index 0000000..b6e32cd --- /dev/null +++ b/packages/voucher/src/images/cross.svg @@ -0,0 +1,19 @@ + + + + + + + + + + diff --git a/packages/voucher/src/images/empty-transaction-history.svg b/packages/voucher/src/images/empty-transaction-history.svg new file mode 100644 index 0000000..e73d51e --- /dev/null +++ b/packages/voucher/src/images/empty-transaction-history.svg @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/voucher/src/images/error-circle-solid.svg b/packages/voucher/src/images/error-circle-solid.svg new file mode 100644 index 0000000..f78c446 --- /dev/null +++ b/packages/voucher/src/images/error-circle-solid.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/voucher/src/images/error-page-graphic.svg b/packages/voucher/src/images/error-page-graphic.svg new file mode 100644 index 0000000..827d6b6 --- /dev/null +++ b/packages/voucher/src/images/error-page-graphic.svg @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/voucher/src/images/fb-logo.svg b/packages/voucher/src/images/fb-logo.svg new file mode 100644 index 0000000..958f2da --- /dev/null +++ b/packages/voucher/src/images/fb-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/voucher/src/images/image-warn.png b/packages/voucher/src/images/image-warn.png new file mode 100644 index 0000000000000000000000000000000000000000..1ec0c45a24c60ca91ff1349e109635f3583ed9f1 GIT binary patch literal 1609 zcmV-P2DbT$P)bfIx| zpnZU;et@ZpjIxT2v5JkdmzlbknY)*ox|f=}qo>29ro*JB#H6Rgu(Qjtv&*rw%)Y?&aq0@$vTZ^7iub_x}F>{{R2~|NlQEA}jy^1#U@1 zK~#9!)tqf((>4@^4=lw7&orGeOX))AWKHQr1OESiZXZe`IeyW7bFAHujT0Um-6NeN z#c1v7P~YSL^0Iy~{L~g!A9Vb(g0HM{$su+C0RUgpLUaZCmAQlvA9D;<_AMDix598; zxkM0Mj>Ii|EIk8-*_yMf8GG_g=d_z1A#{q5jr7V(eKisunDk0E_wr6Ga!1w(WG3GaDt4uR`!Zqc);!z-BwS{ z7anj0M|qq;;1P(3cV^p;{BQzxg5yA%!r8(DJHa6$vcn1R1m}iy6+T#c1h9H#T5yO* zBDfovFcci>sSRd00Ykx|A~J;s9Knf9&g8Q%yl?`HUWu)6=*M$d;RG0h6N?{KWI17l z6H!D){E*Wx

Xq1c!;p2`4}noK0(p$ngjuPtHeEL`FCfLHv{B2J(sXCW>$ZhVete zk~?xZ0ixhI);~%?BzpuHx&a;{Ih=rD{J=z{h7(hW_slgs6Orl>U>HAKGk1W9;RFoh zhl;yNbs&WkFpMAAh_tC1dfieWl7t6_@dF<*@CbW8q9A?{q_7l^fT$bT&Y9OxgaIh(}@G z*~k!M9s!#8!3HrFPC)Ah3=o6U)lW1;@o_#e;`CGveTq7O$UTkYcTE1FAj&r*JtFgs z)2FMUi62JqKlh!1@cb1;WW^75h*KT`n)tyEaq4t6j08uE7);eq(}#$ga^ZdvvL&gxLlZyP)|f|tCVnu!jU&PXtsCer9}z z{EgQBWjKA14&-5v5Fi%X(+~IBo&Vv})vyyBr~h&JU^oFy{4noOP6u(L7oO@2(HTt624ithc%XFyLpMM(JN4BWn)qRC zl2t82dL99q_+jMJgQqj7gy+{(4Nd&e|CZ{qTyK?6vp5$X*a(hkorM!&zoS ze-_%ly5R(D1jn|z;RFoMLeJ?Dnzn@>oLMr2fk!CY7S2j=OluzuK5P@biJ|apTU=W` zuw^FUxoPpb5WQ;Cs@3Vs#mewmR+e>rx^>CPcF)xRFA#IeA>svF`pUNpj!6+ZuidEA zoBldJpl;FFKIYG;o^l^cz^}uLbiV2zMX<|+z*`on+{f=_C^QJ-C}fTJM*cLbAK%00 zin_K%*P^4WmabxT7Q7%_oF!M8`(>{V$s!(3KKg5-gqt8RxlIx9?Y0v;?b92N?+)h? zXqDJ4{Nvcqx)XwY^X}tea8sjoyQ*BVKI^v`>izGZx--asPF5Gkk5xr&00000NkvXX Hu0mjf+PnrF literal 0 HcmV?d00001 diff --git a/packages/voucher/src/images/image-warn.svg b/packages/voucher/src/images/image-warn.svg new file mode 100644 index 0000000..f0b560c --- /dev/null +++ b/packages/voucher/src/images/image-warn.svg @@ -0,0 +1,4 @@ + + + + diff --git a/packages/voucher/src/images/left-hand.svg b/packages/voucher/src/images/left-hand.svg new file mode 100644 index 0000000..9a64e7e --- /dev/null +++ b/packages/voucher/src/images/left-hand.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/packages/voucher/src/images/linkedin-logo.svg b/packages/voucher/src/images/linkedin-logo.svg new file mode 100644 index 0000000..544d4e5 --- /dev/null +++ b/packages/voucher/src/images/linkedin-logo.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/packages/voucher/src/images/merchant-list-btn-background.svg b/packages/voucher/src/images/merchant-list-btn-background.svg new file mode 100644 index 0000000..511bbb9 --- /dev/null +++ b/packages/voucher/src/images/merchant-list-btn-background.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/voucher/src/images/ogp-logo-black.svg b/packages/voucher/src/images/ogp-logo-black.svg new file mode 100644 index 0000000..595fe16 --- /dev/null +++ b/packages/voucher/src/images/ogp-logo-black.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/voucher/src/images/ogp-logo-mark-white.svg b/packages/voucher/src/images/ogp-logo-mark-white.svg new file mode 100644 index 0000000..588a922 --- /dev/null +++ b/packages/voucher/src/images/ogp-logo-mark-white.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/packages/voucher/src/images/ogp-logo.svg b/packages/voucher/src/images/ogp-logo.svg new file mode 100644 index 0000000..36daa0d --- /dev/null +++ b/packages/voucher/src/images/ogp-logo.svg @@ -0,0 +1,128 @@ + + + + +Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/voucher/src/images/question-mark.svg b/packages/voucher/src/images/question-mark.svg new file mode 100644 index 0000000..3c2ed2f --- /dev/null +++ b/packages/voucher/src/images/question-mark.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/voucher/src/images/redeem-full.png b/packages/voucher/src/images/redeem-full.png new file mode 100644 index 0000000000000000000000000000000000000000..22195d3de26f6d189847364f44919914ac1df835 GIT binary patch literal 4905 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 bv<|-lRvKa3zMJcq00000NkvXXu0mjfiuY0= literal 0 HcmV?d00001 diff --git a/packages/voucher/src/images/redeem-full.svg b/packages/voucher/src/images/redeem-full.svg new file mode 100644 index 0000000..1638c0d --- /dev/null +++ b/packages/voucher/src/images/redeem-full.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/packages/voucher/src/images/redeem-logo-brandmark.svg b/packages/voucher/src/images/redeem-logo-brandmark.svg new file mode 100644 index 0000000..3936514 --- /dev/null +++ b/packages/voucher/src/images/redeem-logo-brandmark.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/packages/voucher/src/images/redeem-logo-light.svg b/packages/voucher/src/images/redeem-logo-light.svg new file mode 100644 index 0000000..27412e6 --- /dev/null +++ b/packages/voucher/src/images/redeem-logo-light.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/packages/voucher/src/images/redeem-logo.svg b/packages/voucher/src/images/redeem-logo.svg new file mode 100644 index 0000000..5f67213 --- /dev/null +++ b/packages/voucher/src/images/redeem-logo.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/packages/voucher/src/images/right-hand.svg b/packages/voucher/src/images/right-hand.svg new file mode 100644 index 0000000..1e168c4 --- /dev/null +++ b/packages/voucher/src/images/right-hand.svg @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/voucher/src/images/supermarket-vouchers.svg b/packages/voucher/src/images/supermarket-vouchers.svg new file mode 100644 index 0000000..ebca25b --- /dev/null +++ b/packages/voucher/src/images/supermarket-vouchers.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/packages/voucher/src/images/voucher-info-btn-background.svg b/packages/voucher/src/images/voucher-info-btn-background.svg new file mode 100644 index 0000000..d75f1b7 --- /dev/null +++ b/packages/voucher/src/images/voucher-info-btn-background.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/packages/voucher/src/images/voucher-redemption-graphic.svg b/packages/voucher/src/images/voucher-redemption-graphic.svg new file mode 100644 index 0000000..03458a7 --- /dev/null +++ b/packages/voucher/src/images/voucher-redemption-graphic.svg @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/voucher/src/images/vouchers.svg b/packages/voucher/src/images/vouchers.svg new file mode 100644 index 0000000..e0be2c6 --- /dev/null +++ b/packages/voucher/src/images/vouchers.svg @@ -0,0 +1,4 @@ + + + + diff --git a/packages/voucher/src/images/warning-icon.svg b/packages/voucher/src/images/warning-icon.svg new file mode 100644 index 0000000..6d68afd --- /dev/null +++ b/packages/voucher/src/images/warning-icon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/packages/voucher/src/images/x-circle-solid-danger.svg b/packages/voucher/src/images/x-circle-solid-danger.svg new file mode 100644 index 0000000..9b65af9 --- /dev/null +++ b/packages/voucher/src/images/x-circle-solid-danger.svg @@ -0,0 +1,4 @@ + + + + diff --git a/packages/voucher/src/index.scss b/packages/voucher/src/index.scss new file mode 100644 index 0000000..7249167 --- /dev/null +++ b/packages/voucher/src/index.scss @@ -0,0 +1 @@ +@import 'src/styles/styles'; diff --git a/packages/voucher/src/index.tsx b/packages/voucher/src/index.tsx new file mode 100644 index 0000000..97c37c1 --- /dev/null +++ b/packages/voucher/src/index.tsx @@ -0,0 +1,67 @@ +import 'react-app-polyfill/ie11' +import 'react-app-polyfill/stable' + +import React from 'react' +import {createRoot} from 'react-dom/client' +import App from './app/App' + +import {asyncWithLDProvider} from 'launchdarkly-react-client-sdk' + +import { + getLaunchDarklySdkClientId, + getIsLaunchDarklySdkClientAvailable, +} from 'constants/config' + +import './styles/styles.scss' + +const isLaunchdarklySdkClientAvailable = getIsLaunchDarklySdkClientAvailable() +const launchDarklySdkClientId = getLaunchDarklySdkClientId() + +// eslint-disable-next-line @typescript-eslint/no-non-null-assertion +const root = createRoot(document.getElementById('root')!) + +// If no env variable, initialize the component as it is +if (!isLaunchdarklySdkClientAvailable) { + root.render( + + + , + ) +} else { + // The reason why there is an extra semi colon for IIFE is because of the default rule of Automatic SemiColon Insertion https://github.com/prettier/prettier/issues/2800 + // eslint-disable-next-line + ;(async () => { + /** + * The difference between withLDProvider and asyncWithLDProvider is that withLDProvider initializes launchdarkly-js-client-sdk at componentDidMount. + * This means your flags and the ldClient are only available after your app has mounted. This can result in a flicker due to flag changes at startup time. + * asyncWithLDProvider initializes launchdarkly-js-client-sdk at the entry point of your app prior to render. This means that your flags and the ldClient + * are ready at the beginning of your app. This ensures your app does not flicker due to flag changes at startup time. + */ + const LDProvider = await asyncWithLDProvider({ + clientSideID: launchDarklySdkClientId, + reactOptions: { + useCamelCaseFlagKeys: true, + }, + options: { + bootstrap: 'localStorage', + }, + context: { + kind: 'voucher', + key: 'voucher', + name: 'voucher', + }, + }) + + root.render( + + + + + , + ) + })() +} + +// If you want your app to work offline and load faster, you can change +// unregister() to register() below. Note this comes with some pitfalls. +// Learn more about service workers: https://bit.ly/CRA-PWA diff --git a/packages/voucher/src/locales/en/alertsEN.json b/packages/voucher/src/locales/en/alertsEN.json new file mode 100644 index 0000000..7689319 --- /dev/null +++ b/packages/voucher/src/locales/en/alertsEN.json @@ -0,0 +1,8 @@ +{ + "desktop": { + "alert": "To redeem your vouchers, use your mobile phone to access the voucher link and present the QR code to merchants." + }, + "voided": { + "header": "Your vouchers have been void. To find out why, contact the organiser <2>here." + } +} diff --git a/packages/voucher/src/locales/en/campaignErrorsEN.json b/packages/voucher/src/locales/en/campaignErrorsEN.json new file mode 100644 index 0000000..068ed32 --- /dev/null +++ b/packages/voucher/src/locales/en/campaignErrorsEN.json @@ -0,0 +1,12 @@ +{ + "expired": { + "body": "cannot be used as they expired on {{expiryDate}}. For more help, please <1>contact the organiser.", + "header": "Vouchers have expired", + "other_vouchers": "See other available vouchers" + }, + "inactive": { + "body": "The voucher(s) cannot be used as campaign is not active. For more help, please <1>contact the organiser.", + "header": "Vouchers not active", + "other_vouchers": "See other available vouchers" + } +} diff --git a/packages/voucher/src/locales/en/commonEN.json b/packages/voucher/src/locales/en/commonEN.json new file mode 100644 index 0000000..0dbda1f --- /dev/null +++ b/packages/voucher/src/locales/en/commonEN.json @@ -0,0 +1,12 @@ +{ + "buttons": { + "cancel": "Cancel", + "close": "Close", + "next": "Next" + }, + "campaignEnded": { + "info": "The voucher(s) cannot be claimed as they expired on {{ expiryDate }}.", + "title": "Sorry, the {{ campaignName }} campaign has expired", + "goCampaignListingPage": "See other vouchers available" + } +} diff --git a/packages/voucher/src/locales/en/drawerHeaderEN.json b/packages/voucher/src/locales/en/drawerHeaderEN.json new file mode 100644 index 0000000..6c54b9e --- /dev/null +++ b/packages/voucher/src/locales/en/drawerHeaderEN.json @@ -0,0 +1,3 @@ +{ + "close_button": "Close" +} diff --git a/packages/voucher/src/locales/en/errorsEN.json b/packages/voucher/src/locales/en/errorsEN.json new file mode 100644 index 0000000..87b5d9b --- /dev/null +++ b/packages/voucher/src/locales/en/errorsEN.json @@ -0,0 +1,13 @@ +{ + "common": { + "contact": "For more information, please write to <1>{{ feedbackEmail }}" + }, + "service_unavailable": { + "body": "Please make sure your device is connected to the internet and try again.", + "title": "No network connection" + }, + "voucher_not_found": { + "body": "Please double check the URL or click on the link in the SMS again.", + "title": "The voucher cannot be found." + } +} diff --git a/packages/voucher/src/locales/en/headerEN.json b/packages/voucher/src/locales/en/headerEN.json new file mode 100644 index 0000000..d9b6c9d --- /dev/null +++ b/packages/voucher/src/locales/en/headerEN.json @@ -0,0 +1,6 @@ +{ + "info_and_help": "Info & help", + "share": "Share vouchers", + "use_by": "Use by {{expiryDate}}", + "where_to_use": "Where to use" +} diff --git a/packages/voucher/src/locales/en/helpEN.json b/packages/voucher/src/locales/en/helpEN.json new file mode 100644 index 0000000..f9e11b5 --- /dev/null +++ b/packages/voucher/src/locales/en/helpEN.json @@ -0,0 +1,27 @@ +{ + "campaign_listing": { + "desc": "See other available vouchers", + "title": "Want more vouchers?" + }, + "contact": { + "call": "Call <1>{{ organiserContactNumber }}", + "link": "Submit a help request <1>here", + "title": "For more help, contact:" + }, + "more_info": { + "additional_info_button": { + "desc": "More about your vouchers", + "title": "Additional information" + }, + "merchant_list_button": { + "desc": "See full merchant list", + "title": "Where to use vouchers" + }, + "title": "More info" + }, + "tips": { + "access": "To access your vouchers, tap the voucher link sent to you by SMS. You don't need to log in with Singpass again.", + "share": "To share your vouchers, copy your voucher link and send it to family members or trusted kin.", + "title": "Voucher Tips" + } +} diff --git a/packages/voucher/src/locales/en/index.ts b/packages/voucher/src/locales/en/index.ts new file mode 100644 index 0000000..947b8c3 --- /dev/null +++ b/packages/voucher/src/locales/en/index.ts @@ -0,0 +1 @@ +export * from './translationsEN' diff --git a/packages/voucher/src/locales/en/infoAndHelpEN.json b/packages/voucher/src/locales/en/infoAndHelpEN.json new file mode 100644 index 0000000..aa6bc8c --- /dev/null +++ b/packages/voucher/src/locales/en/infoAndHelpEN.json @@ -0,0 +1,23 @@ +{ + "contact": { + "call": "Call <1>{{ organiserContactNumber }}", + "link": "Submit a help request <1>here", + "title": "For more help, contact:" + }, + "info_and_help": { + "close_button": "Close", + "general_info_button": { + "desc": "Learn more about your vouchers", + "title": "General information" + }, + "give_feedback_button": { + "desc": "Tell us how we can improve", + "title": "Feedback" + }, + "share_vouchers_button": { + "desc": "Tap here to copy your voucher link and send it to family members or trusted kin", + "title": "Share your vouchers" + }, + "title": "Info & help" + } +} diff --git a/packages/voucher/src/locales/en/mainEN.json b/packages/voucher/src/locales/en/mainEN.json new file mode 100644 index 0000000..5263095 --- /dev/null +++ b/packages/voucher/src/locales/en/mainEN.json @@ -0,0 +1,9 @@ +{ + "contact_footer": "For assistance, please contact us at {{feedbackEmail}}.", + "redeem_button": "Show voucher", + "redeemed_stamp_label": "Redeemed", + "voided_stamp_label": "Void", + "footer": { + "view_terms_and_conditions": "View <1>terms and conditions" + } +} diff --git a/packages/voucher/src/locales/en/redemptionEN.json b/packages/voucher/src/locales/en/redemptionEN.json new file mode 100644 index 0000000..77f2ca1 --- /dev/null +++ b/packages/voucher/src/locales/en/redemptionEN.json @@ -0,0 +1,19 @@ +{ + "back": "Back", + "back_to_home": "Back to Home", + "close": "Close", + "footer": { + "terms_and_conditions": "Terms and conditions", + "general_info": "General info" + }, + "instructions": "Show to shop", + "modals": { + "already_redeemed": { + "action": "Select other voucher(s)", + "body": "The voucher(s) selected were already redeemed. \r\n\r\n\r\nPlease select other voucher(s).", + "title": "Already redeemed" + } + }, + "redeemed_stamp_label": "Redeemed", + "use_by": "Use by {{expiryDate}}" +} diff --git a/packages/voucher/src/locales/en/subheaderEN.json b/packages/voucher/src/locales/en/subheaderEN.json new file mode 100644 index 0000000..27119d6 --- /dev/null +++ b/packages/voucher/src/locales/en/subheaderEN.json @@ -0,0 +1,5 @@ +{ + "balance": "Balance", + "help_drawer_button": "More info", + "tap_to_use": "Tap to use" +} diff --git a/packages/voucher/src/locales/en/toastsEN.json b/packages/voucher/src/locales/en/toastsEN.json new file mode 100644 index 0000000..dab2d97 --- /dev/null +++ b/packages/voucher/src/locales/en/toastsEN.json @@ -0,0 +1,9 @@ +{ + "copy_success": { + "header": "Voucher link copied!", + "message": "To share your vouchers, send this link to family members or trusted kin." + }, + "max_vouchers": { + "header": "You can select only up to {{voucher_limit}} vouchers at a time. If you need to use more vouchers for this purchase, use these first, then select more." + } +} diff --git a/packages/voucher/src/locales/en/transactionHistoryEN.json b/packages/voucher/src/locales/en/transactionHistoryEN.json new file mode 100644 index 0000000..ce1a633 --- /dev/null +++ b/packages/voucher/src/locales/en/transactionHistoryEN.json @@ -0,0 +1,10 @@ +{ + "title": "History", + "content": { + "total_spent": "Total spent" + }, + "empty": { + "info": "You have not spent any vouchers yet. Once you do, they will appear here.", + "back_to_home": "Back to home" + } +} diff --git a/packages/voucher/src/locales/en/translationsEN.ts b/packages/voucher/src/locales/en/translationsEN.ts new file mode 100644 index 0000000..20233e9 --- /dev/null +++ b/packages/voucher/src/locales/en/translationsEN.ts @@ -0,0 +1,31 @@ +import alerts from './alertsEN.json' +import campaignErrors from './campaignErrorsEN.json' +import common from './commonEN.json' +import drawerHeader from './drawerHeaderEN.json' +import errors from './errorsEN.json' +import header from './headerEN.json' +import help from './helpEN.json' +import infoAndHelp from './infoAndHelpEN.json' +import main from './mainEN.json' +import redemption from './redemptionEN.json' +import subheader from './subheaderEN.json' +import toasts from './toastsEN.json' +import transactionHistory from './transactionHistoryEN.json' +import voucherTypeSelectVouchers from './voucherTypesSelectVouchersEN.json' + +export const translationsEN = { + alerts, + campaignErrors, + common, + drawerHeader, + errors, + header, + help, + infoAndHelp, + main, + redemption, + subheader, + toasts, + transactionHistory, + voucherTypeSelectVouchers, +} diff --git a/packages/voucher/src/locales/en/voucherTypesSelectVouchersEN.json b/packages/voucher/src/locales/en/voucherTypesSelectVouchersEN.json new file mode 100644 index 0000000..f31905f --- /dev/null +++ b/packages/voucher/src/locales/en/voucherTypesSelectVouchersEN.json @@ -0,0 +1,4 @@ +{ + "back": "Back", + "where_to_use": "Where to use?" +} diff --git a/packages/voucher/src/locales/index.ts b/packages/voucher/src/locales/index.ts new file mode 100644 index 0000000..e41b704 --- /dev/null +++ b/packages/voucher/src/locales/index.ts @@ -0,0 +1 @@ +export * from './locales' diff --git a/packages/voucher/src/locales/locales.ts b/packages/voucher/src/locales/locales.ts new file mode 100644 index 0000000..8eacb00 --- /dev/null +++ b/packages/voucher/src/locales/locales.ts @@ -0,0 +1,4 @@ +export {translationsEN} from './en' +export {translationsZH} from './zh' +export {translationsMS} from './ms' +export {translationsTA} from './ta' diff --git a/packages/voucher/src/locales/ms/alertsMS.json b/packages/voucher/src/locales/ms/alertsMS.json new file mode 100644 index 0000000..6165f5f --- /dev/null +++ b/packages/voucher/src/locales/ms/alertsMS.json @@ -0,0 +1,8 @@ +{ + "desktop": { + "alert": "Untuk menebus baucar anda, gunakan telefon bimbit anda untuk mengakses pautan baucar dan tunjukkan kod QR kepada peniaga." + }, + "voided": { + "header": "Baucar anda telah terbatal. Untuk mengetahui sebabnya, hubungi penganjur <2>di sini." + } +} diff --git a/packages/voucher/src/locales/ms/campaignErrorsMS.json b/packages/voucher/src/locales/ms/campaignErrorsMS.json new file mode 100644 index 0000000..b1730a0 --- /dev/null +++ b/packages/voucher/src/locales/ms/campaignErrorsMS.json @@ -0,0 +1,12 @@ +{ + "expired": { + "body": "tidak boleh digunakan kerana ia telah tamat tempoh pada {{expiryDate}}. Untuk bantuan lanjut, sila <1>hubungi penganjur.", + "header": "Baucar telah tamat tempoh", + "other_vouchers": "Lihat baucar-baucar lain yang tersedia" + }, + "inactive": { + "body": "Baucar(-baucar) tidak boleh digunakan kerana kempen tidak aktif. Untuk bantuan lanjut, sila <1>hubungi penganjur.", + "header": "Baucar Tidak Aktif", + "other_vouchers": "Lihat baucar-baucar lain yang tersedia" + } +} diff --git a/packages/voucher/src/locales/ms/commonMS.json b/packages/voucher/src/locales/ms/commonMS.json new file mode 100644 index 0000000..e33b560 --- /dev/null +++ b/packages/voucher/src/locales/ms/commonMS.json @@ -0,0 +1,12 @@ +{ + "buttons": { + "cancel": "Batal", + "close": "Tutup", + "next": "Seterusnya" + }, + "campaignEnded": { + "info": "Baucar-baucar tidak boleh digunakan kerana ia telah tamat tempoh pada {{ expiryDate }}.", + "title": "Maaf, {{ campaignName }} sudah tamat tempoh", + "goCampaignListingPage": "Lihat baucar-baucar lain yang tersedia" + } +} diff --git a/packages/voucher/src/locales/ms/drawerHeaderMS.json b/packages/voucher/src/locales/ms/drawerHeaderMS.json new file mode 100644 index 0000000..237f608 --- /dev/null +++ b/packages/voucher/src/locales/ms/drawerHeaderMS.json @@ -0,0 +1,3 @@ +{ + "close_button": "Tutup" +} diff --git a/packages/voucher/src/locales/ms/errorsMS.json b/packages/voucher/src/locales/ms/errorsMS.json new file mode 100644 index 0000000..5645786 --- /dev/null +++ b/packages/voucher/src/locales/ms/errorsMS.json @@ -0,0 +1,13 @@ +{ + "common": { + "contact": "Untuk maklumat lanjut, sila tulis kepada <1>{{ feedbackEmail }}" + }, + "service_unavailable": { + "body": "Sila pastikan peranti elektronik anda disambungkan ke internet dan cuba lagi.", + "title": "Tiada sambungan internet" + }, + "voucher_not_found": { + "body": "Sila periksa semula URL atau klik pada pautan dalam SMS sekali lagi.", + "title": "Baucar tidak dapat ditemui. " + } +} diff --git a/packages/voucher/src/locales/ms/headerMS.json b/packages/voucher/src/locales/ms/headerMS.json new file mode 100644 index 0000000..3514eb6 --- /dev/null +++ b/packages/voucher/src/locales/ms/headerMS.json @@ -0,0 +1,6 @@ +{ + "share": "Kongsi baucar", + "where_to_use": "Boleh gunakan di mana", + "info_and_help": "Maklumat & Bantuan", + "use_by": "Gunakan hingga {{expiryDate}}" +} diff --git a/packages/voucher/src/locales/ms/helpMS.json b/packages/voucher/src/locales/ms/helpMS.json new file mode 100644 index 0000000..276e055 --- /dev/null +++ b/packages/voucher/src/locales/ms/helpMS.json @@ -0,0 +1,27 @@ +{ + "campaign_listing": { + "desc": "Lihat baucar-baucar lain yang tersedia", + "title": "Mahu lebih banyak baucar?" + }, + "contact": { + "call": "Telefon <1>{{ organiserContactNumber }}", + "link": "Hantar permohonan untuk bantuan <1>di sini", + "title": "Untuk bantuan lanjut, hubungi:" + }, + "more_info": { + "additional_info_button": { + "desc": "Maklumat lanjut tentang baucar anda", + "title": "Maklumat tambahan" + }, + "merchant_list_button": { + "desc": "Lihat senarai penuh peniaga", + "title": "Di mana boleh gunakan baucar" + }, + "title": "Maklumat lanjut" + }, + "tips": { + "access": "Untuk mengakses baucar anda, ketik pautan baucar yang dihantar kepada anda melalui SMS. Anda tidak perlu log masuk dengan Singpass lagi.", + "share": "Untuk kongsi baucar anda, salin pautan baucar anda dan hantar kepada anggota keluarga atau saudara-mara yang dipercayai.", + "title": "Tip-tip baucar" + } +} diff --git a/packages/voucher/src/locales/ms/index.ts b/packages/voucher/src/locales/ms/index.ts new file mode 100644 index 0000000..fc9f3d9 --- /dev/null +++ b/packages/voucher/src/locales/ms/index.ts @@ -0,0 +1 @@ +export * from './translationsMS' diff --git a/packages/voucher/src/locales/ms/infoAndHelpMS.json b/packages/voucher/src/locales/ms/infoAndHelpMS.json new file mode 100644 index 0000000..6f5e470 --- /dev/null +++ b/packages/voucher/src/locales/ms/infoAndHelpMS.json @@ -0,0 +1,23 @@ +{ + "info_and_help": { + "title": "Maklumat & Bantuan", + "close_button": "Tutup", + "general_info_button": { + "desc": "Ketahui lebih lanjut tentang baucar anda", + "title": "Maklumat umum" + }, + "share_vouchers_button": { + "desc": "Klik di sini untuk menyalin pautan baucar anda dan mengirimkannya kepada ahli keluarga atau saudara-mara terdekat", + "title": "Kongsi baucar anda" + }, + "give_feedback_button": { + "desc": "Beritahu kami bagaimana kami boleh bertambah baik", + "title": "Maklum balas" + } + }, + "contact": { + "call": "Telefon <1>{{ organiserContactNumber }}", + "link": "Hantar permohonan untuk bantuan di <1>sini", + "title": "Untuk bantuan lanjut, hubungi:" + } +} diff --git a/packages/voucher/src/locales/ms/mainMS.json b/packages/voucher/src/locales/ms/mainMS.json new file mode 100644 index 0000000..c218f79 --- /dev/null +++ b/packages/voucher/src/locales/ms/mainMS.json @@ -0,0 +1,8 @@ +{ + "contact_footer": "Untuk mendapatkan bantuan, sila hubungi kami di {{feedbackEmail}}.", + "redeem_button": "Tunjukkan baucar", + "redeemed_stamp_label": "Ditebus", + "footer": { + "view_terms_and_conditions": "Lihat <1>terma dan Syarat" + } +} diff --git a/packages/voucher/src/locales/ms/redemptionMS.json b/packages/voucher/src/locales/ms/redemptionMS.json new file mode 100644 index 0000000..2a72779 --- /dev/null +++ b/packages/voucher/src/locales/ms/redemptionMS.json @@ -0,0 +1,19 @@ +{ + "back": "Kembali", + "back_to_home": "Kembali ke Laman Utama", + "close": "Tutup", + "footer": { + "terms_and_conditions": "Terma dan Syarat", + "general_info": "Maklumat umum" + }, + "instructions": "Tunjukkan ke penjaja atau pedagang", + "modals": { + "already_redeemed": { + "action": "Pilih baucar(-baucar) lain.", + "body": "Baucar(-baucar) yang dipilih sudah pun ditebus.\r\n\r\n\r\nSila pilih baucar(-baucar) lain.", + "title": "Telah ditebus" + } + }, + "redeemed_stamp_label": "Ditebus", + "use_by": "Gunakan hingga {{expiryDate}}" +} diff --git a/packages/voucher/src/locales/ms/subheaderMS.json b/packages/voucher/src/locales/ms/subheaderMS.json new file mode 100644 index 0000000..750fd2d --- /dev/null +++ b/packages/voucher/src/locales/ms/subheaderMS.json @@ -0,0 +1,5 @@ +{ + "balance": "Baki", + "help_drawer_button": "Maklumat lanjut", + "tap_to_use": "Klik untuk gunakan" +} diff --git a/packages/voucher/src/locales/ms/toastsMS.json b/packages/voucher/src/locales/ms/toastsMS.json new file mode 100644 index 0000000..c64d27e --- /dev/null +++ b/packages/voucher/src/locales/ms/toastsMS.json @@ -0,0 +1,9 @@ +{ + "copy_success": { + "header": "Pautan baucar disalin!", + "message": "Untuk kongsi baucar anda, hantar pautan ini kepada anggota keluarga atau saudara- mara yang dipercayai." + }, + "max_vouchers": { + "header": "Anda boleh memilih sehingga {{voucher_limit}} baucar pada satu masa. Jika anda perlu menggunakan lebih banyak baucar untuk pembelian ini, gunakan ini dahulu, kemudian pilih lagi." + } +} diff --git a/packages/voucher/src/locales/ms/transactionHistoryMS.json b/packages/voucher/src/locales/ms/transactionHistoryMS.json new file mode 100644 index 0000000..4810be5 --- /dev/null +++ b/packages/voucher/src/locales/ms/transactionHistoryMS.json @@ -0,0 +1,10 @@ +{ + "title": "Sejarah", + "content": { + "total_spent": "Jumlah perbelanjaan" + }, + "empty": { + "info": "Anda belum membelanjakan sebarang baucar. Sebaik sahaja anda menggunakannya, ia akan muncul di sini.", + "back_to_home": "Kembali ke Laman Utama" + } +} diff --git a/packages/voucher/src/locales/ms/translationsMS.ts b/packages/voucher/src/locales/ms/translationsMS.ts new file mode 100644 index 0000000..84c6835 --- /dev/null +++ b/packages/voucher/src/locales/ms/translationsMS.ts @@ -0,0 +1,31 @@ +import alerts from './alertsMS.json' +import campaignErrors from './campaignErrorsMS.json' +import common from './commonMS.json' +import drawerHeader from './drawerHeaderMS.json' +import errors from './errorsMS.json' +import header from './headerMS.json' +import help from './helpMS.json' +import infoAndHelp from './infoAndHelpMS.json' +import main from './mainMS.json' +import redemption from './redemptionMS.json' +import subheader from './subheaderMS.json' +import toasts from './toastsMS.json' +import transactionHistory from './transactionHistoryMS.json' +import voucherTypeSelectVouchers from './voucherTypesSelectVouchersMS.json' + +export const translationsMS = { + alerts, + campaignErrors, + common, + drawerHeader, + errors, + header, + help, + infoAndHelp, + main, + redemption, + subheader, + toasts, + transactionHistory, + voucherTypeSelectVouchers, +} diff --git a/packages/voucher/src/locales/ms/voucherTypesSelectVouchersMS.json b/packages/voucher/src/locales/ms/voucherTypesSelectVouchersMS.json new file mode 100644 index 0000000..a0d7085 --- /dev/null +++ b/packages/voucher/src/locales/ms/voucherTypesSelectVouchersMS.json @@ -0,0 +1,4 @@ +{ + "back": "Kembali", + "where_to_use": "Boleh gunakan di mana?" +} diff --git a/packages/voucher/src/locales/ta/alertsTA.json b/packages/voucher/src/locales/ta/alertsTA.json new file mode 100644 index 0000000..42eaf6b --- /dev/null +++ b/packages/voucher/src/locales/ta/alertsTA.json @@ -0,0 +1,8 @@ +{ + "desktop": { + "alert": "உங்கள் பற்றுச்சீட்டுகளை மீட்பதற்கு, உங்கள் மொபைல் ஃபோனைப் பயன்படுத்தி பற்றுச்சீட்டு இணைப்பை அணுகி, மேலும் வர்த்தகர்களுக்கு QR குறியீட்டைக் காட்டுங்கள்." + }, + "voided": { + "header": "உங்கள் பற்றுச்சீட்டு(கள்) செல்லாது. ஏன் என்பதை அறிய, அரசாங்கத் திட்ட ஏற்பாட்டாளரை <2>இங்கே தொடர்பு கொள்ளவும்." + } +} diff --git a/packages/voucher/src/locales/ta/campaignErrorsTA.json b/packages/voucher/src/locales/ta/campaignErrorsTA.json new file mode 100644 index 0000000..24dd197 --- /dev/null +++ b/packages/voucher/src/locales/ta/campaignErrorsTA.json @@ -0,0 +1,12 @@ +{ + "expired": { + "body": "பற்றுச்சீட்டு(கள்) {{expiryDate}} அன்று காலாவதியாகிவிட்டதால் பயன்படுத்த முடியாது. மேற்கொண்டு உதவி பெற, தயவுசெய்து <1>ஏற்பாட்டாளருடன் தொடர்பு கொள்ளுங்கள்", + "header": "பற்றுச்சீட்டுகள் காலாவதியாகிவிட்டன", + "other_vouchers": "கிடைக்கக்கூடிய மற்ற பற்றுச்சீட்டுகளைப் பார்க்கவும்" + }, + "inactive": { + "body": "இந்தத் திட்டம் செயலில் இல்லாததால் பற்றுச்சீட்டுகளைப் பயன்படுத்த முடியாது. மேற்கொண்டு உதவி பெற, தயவுசெய்து <1>ஏற்பாட்டாளருடன் தொடர்பு கொள்ளுங்கள்.", + "header": "பற்றுச்சீட்டுகள் செயலில் இல்லை", + "other_vouchers": "கிடைக்கக்கூடிய மற்ற பற்றுச்சீட்டுகளைப் பார்க்கவும்" + } +} diff --git a/packages/voucher/src/locales/ta/commonTA.json b/packages/voucher/src/locales/ta/commonTA.json new file mode 100644 index 0000000..5256623 --- /dev/null +++ b/packages/voucher/src/locales/ta/commonTA.json @@ -0,0 +1,12 @@ +{ + "buttons": { + "cancel": "ரத்து செய்", + "close": "மூடு", + "next": "அடுத்து" + }, + "campaignEnded": { + "info": "பற்றுச்சீட்டு(கள்) {{ expiryDate }} அன்று காலாவதியாகிவிட்டதால் பயன்படுத்த முடியாது.", + "title": "மன்னிக்கவும், {{ campaignName }} பற்றுச்சீட்டுகள் காலாவதியாகிவிட்டன", + "goCampaignListingPage": "கிடைக்கக்கூடிய மற்ற பற்றுச்சீட்டுகளைப் பார்க்கவும்" + } +} diff --git a/packages/voucher/src/locales/ta/drawerHeaderTA.json b/packages/voucher/src/locales/ta/drawerHeaderTA.json new file mode 100644 index 0000000..70b97eb --- /dev/null +++ b/packages/voucher/src/locales/ta/drawerHeaderTA.json @@ -0,0 +1,3 @@ +{ + "close_button": "மூடு" +} diff --git a/packages/voucher/src/locales/ta/errorsTA.json b/packages/voucher/src/locales/ta/errorsTA.json new file mode 100644 index 0000000..2e9a263 --- /dev/null +++ b/packages/voucher/src/locales/ta/errorsTA.json @@ -0,0 +1,13 @@ +{ + "common": { + "contact": "மேல்விவரம் அறிய, தயவுசெய்து <1>{{ feedbackEmail }} முகவரிக்கு மின்னஞ்சல் எழுதி அனுப்பவும்" + }, + "service_unavailable": { + "body": "தயவுசெய்து உங்கள் சாதனத்திற்கு இணைய இணைப்பு உள்ளதை உறுதி செய்து மீண்டும் முயற்சிக்கவும்.", + "title": "இணைய இணைப்பு இல்லை" + }, + "voucher_not_found": { + "body": "இணையப்பக்க முகவரியை மறுபடியும் சரிபார்க்கவும் அல்லது குறுந்தகவலில் உள்ள இணைப்பை மீண்டும் அழுத்தவும்.", + "title": "பற்றுச்சீட்டு கிடைக்கவில்லை." + } +} diff --git a/packages/voucher/src/locales/ta/headerTA.json b/packages/voucher/src/locales/ta/headerTA.json new file mode 100644 index 0000000..5684282 --- /dev/null +++ b/packages/voucher/src/locales/ta/headerTA.json @@ -0,0 +1,6 @@ +{ + "share": "பற்றுச்சீட்டுகளை பகிருங்கள்", + "where_to_use": "எங்கே பயன்படுத்துவது", + "info_and_help": "தகவலும் உதவியும்", + "use_by": "{{expiryDate}} தேதிக்குள் பயன்படுத்துங்கள்" +} diff --git a/packages/voucher/src/locales/ta/helpTA.json b/packages/voucher/src/locales/ta/helpTA.json new file mode 100644 index 0000000..da2506e --- /dev/null +++ b/packages/voucher/src/locales/ta/helpTA.json @@ -0,0 +1,27 @@ +{ + "campaign_listing": { + "desc": "கிடைக்கக்கூடிய மற்ற பற்றுச்சீட்டுகளைப் பார்க்கவும்", + "title": "கூடுதல் பற்றுச்சீட்டுகள் வேண்டுமா?" + }, + "contact": { + "call": "<1>{{ organiserContactNumber }} அழைக்கவும்", + "link": "உதவிக்கான கோரிக்கையை <1>இங்கே சமர்ப்பிக்கவும்", + "title": "மேற்கொண்டு உதவி பெற, தொடர்பு கொள்ளவும்:" + }, + "more_info": { + "additional_info_button": { + "desc": "உங்களுக்கான பற்றுச்சீட்டுகளைப் பற்றிய மேல்விவரம்", + "title": "கூடுதல் தகவல்" + }, + "merchant_list_button": { + "desc": "முழுமையான வணிகர் பட்டியலைப் பார்க்கவும்", + "title": "பற்றுச்சீட்டுகளை எங்கே பயன்படுத்துவது" + }, + "title": "கூடுதல் தகவல்" + }, + "tips": { + "access": "உங்களுக்கான பற்றுச்சீட்டுகளை அணுக, குறுந்தகவலில் அனுப்பி வைக்கப்பட்ட பற்றுச்சீட்டு இணைப்பின்மீது தட்டவும். நீங்கள் மறுபடியும் சிங்பாஸ் பயன்படுத்தி உட்பதிவு செய்ய வேண்டியதில்லை.", + "share": "உங்களுக்கான பற்றுச்சீட்டுகளைப் பகிர்ந்துகொள்ள, பற்றுச்சீட்டின் இணைப்பை நகலெடுத்து, குடும்பத்தாருக்கு அல்லது நம்பிக்கைக்குரிய உறவினர்களுக்கு அனுப்பவும்", + "title": "பற்றுச்சீட்டுக் குறிப்புகள்" + } +} diff --git a/packages/voucher/src/locales/ta/index.ts b/packages/voucher/src/locales/ta/index.ts new file mode 100644 index 0000000..45b1c70 --- /dev/null +++ b/packages/voucher/src/locales/ta/index.ts @@ -0,0 +1 @@ +export * from './translationsTA' diff --git a/packages/voucher/src/locales/ta/infoAndHelpTA.json b/packages/voucher/src/locales/ta/infoAndHelpTA.json new file mode 100644 index 0000000..0e1ac97 --- /dev/null +++ b/packages/voucher/src/locales/ta/infoAndHelpTA.json @@ -0,0 +1,23 @@ +{ + "info_and_help": { + "title": "தகவலும் உதவியும்", + "close_button": "மூடு", + "general_info_button": { + "desc": "உங்கள் பற்றுச்சீட்டுகளைப் பற்றி மேலும் தெரிந்து கொள்ளுங்கள்", + "title": "பொதுவான தகவல்" + }, + "share_vouchers_button": { + "desc": "உங்கள் பற்றுச்சீட்டின் இணைப்பை நகலெடுத்து, குடும்பத்தாருக்கு அல்லது நம்பிக்கைக்குரிய உறவினருக்கு அனுப்பி வைக்க இங்கே தட்டுங்கள்", + "title": "உங்கள் பற்றுச்சீட்டுகளைப் பகிர்ந்து கொள்ளுங்கள்" + }, + "give_feedback_button": { + "desc": "நாங்கள் எவ்வாறு மேம்படுத்த முடியும் என்று சொல்லுங்கள்", + "title": "கருத்து" + } + }, + "contact": { + "call": "<1>{{ organiserContactNumber }} அழைக்கவும்", + "link": "உதவிக்கான கோரிக்கையை <1>இங்கே சமர்ப்பிக்கவும்", + "title": "மேற்கொண்டு உதவி பெற, தொடர்பு கொள்ளவும்:" + } +} diff --git a/packages/voucher/src/locales/ta/mainTA.json b/packages/voucher/src/locales/ta/mainTA.json new file mode 100644 index 0000000..d1d1646 --- /dev/null +++ b/packages/voucher/src/locales/ta/mainTA.json @@ -0,0 +1,8 @@ +{ + "contact_footer": "உதவிக்கு, {{feedbackEmail}} மின்னஞ்சல் முகவரியில் தொடர்பு கொள்ளவும்.", + "redeem_button": "பற்றுச்சீட்டைக் காட்டுங்கள்", + "redeemed_stamp_label": "மீட்கப்பட்டவை", + "footer": { + "view_terms_and_conditions": "<1>விதிமுறைகள் மற்றும் நிபந்தனைகளை காண்க" + } +} diff --git a/packages/voucher/src/locales/ta/redemptionTA.json b/packages/voucher/src/locales/ta/redemptionTA.json new file mode 100644 index 0000000..51f7980 --- /dev/null +++ b/packages/voucher/src/locales/ta/redemptionTA.json @@ -0,0 +1,19 @@ +{ + "back": "பின்செல்க", + "back_to_home": "முகப்பு பக்கத்திற்குத் திரும்பிச்செல்", + "close": "மூடு", + "footer": { + "terms_and_conditions": "விதிமுறைகள் மற்றும் நிபந்தனைகள்", + "general_info": "பொதுவான தகவல்" + }, + "instructions": "வாங்குவதற்குக் காட்டுங்கள்", + "modals": { + "already_redeemed": { + "action": "வேறு பற்றுச்சீட்டை தேர்ந்தெடுக்கவும்", + "body": "தேர்ந்தெடுக்கப்பட்ட பற்றுச்சீட்டு(கள்) ஏற்கனவே மீட்கப்பட்டுவிட்டது.\r\n\r\n\r\nதயவுசெய்து வேறு பற்றுச்சீட்டை (பற்றுச்சீட்டுகளை) தேர்ந்தெடுக்கவும்.", + "title": "ஏற்கனவே மீட்கப்பட்டுவிட்டது" + } + }, + "redeemed_stamp_label": "மீட்கப்பட்டவை", + "use_by": "{{expiryDate}} தேதிக்குள் பயன்படுத்துங்கள்" +} diff --git a/packages/voucher/src/locales/ta/subheaderTA.json b/packages/voucher/src/locales/ta/subheaderTA.json new file mode 100644 index 0000000..b70e294 --- /dev/null +++ b/packages/voucher/src/locales/ta/subheaderTA.json @@ -0,0 +1,5 @@ +{ + "balance": "இருப்புத்தொகை", + "help_drawer_button": "மேல்விவரம்", + "tap_to_use": "பயன்படுத்த தட்டுங்கள்" +} diff --git a/packages/voucher/src/locales/ta/toastsTA.json b/packages/voucher/src/locales/ta/toastsTA.json new file mode 100644 index 0000000..6461f92 --- /dev/null +++ b/packages/voucher/src/locales/ta/toastsTA.json @@ -0,0 +1,9 @@ +{ + "copy_success": { + "header": "பற்றுச்சீட்டு இணைப்பு நகலெடுக்கப்பட்டது!", + "message": "உங்களுக்கான பற்றுச்சீட்டுகளைப் பகிர்ந்துகொள்ள, குடும்பத்தாருக்கு அல்லது நம்பிக்கைக்குரிய உறவினர்களுக்கு இந்த இணைப்பை அனுப்பவும்." + }, + "max_vouchers": { + "header": "ஒரே நேரத்தில் {{voucher_limit}} பற்றுச்சீட்டுகள் வரை தேர்ந்தெடுக்கலாம். இந்த வாங்குதலுக்காக நீங்கள் அதிக பற்றுச்சீட்டுகளைச் செலவிட வேண்டும் என்றால், முதலில் இவற்றைப் பயன்படுத்தவும், பிறகு மேலும் தேர்ந்தெடுக்கவும்." + } +} diff --git a/packages/voucher/src/locales/ta/transactionHistoryTA.json b/packages/voucher/src/locales/ta/transactionHistoryTA.json new file mode 100644 index 0000000..44a77c6 --- /dev/null +++ b/packages/voucher/src/locales/ta/transactionHistoryTA.json @@ -0,0 +1,10 @@ +{ + "title": "பரிவர்த்தனை வரலாறு", + "content": { + "total_spent": "செலவு செய்த மொத்த தொகை" + }, + "empty": { + "info": "நீங்கள் பற்றுச்சீட்டு எதனையும் இன்னும் செலவிடவில்லை. நீங்கள் செலவிட்ட பிறகு, அவை இங்கே தோன்றும்.", + "back_to_home": "முகப்பு பக்கத்திற்குத் திரும்பிச்செல்" + } +} diff --git a/packages/voucher/src/locales/ta/translationsTA.ts b/packages/voucher/src/locales/ta/translationsTA.ts new file mode 100644 index 0000000..7772655 --- /dev/null +++ b/packages/voucher/src/locales/ta/translationsTA.ts @@ -0,0 +1,31 @@ +import alerts from './alertsTA.json' +import campaignErrors from './campaignErrorsTA.json' +import common from './commonTA.json' +import drawerHeader from './drawerHeaderTA.json' +import errors from './errorsTA.json' +import header from './headerTA.json' +import help from './helpTA.json' +import infoAndHelp from './infoAndHelpTA.json' +import main from './mainTA.json' +import redemption from './redemptionTA.json' +import subheader from './subheaderTA.json' +import toasts from './toastsTA.json' +import transactionHistory from './transactionHistoryTA.json' +import voucherTypeSelectVouchers from './voucherTypesSelectVouchersTA.json' + +export const translationsTA = { + alerts, + campaignErrors, + common, + drawerHeader, + errors, + header, + help, + infoAndHelp, + main, + redemption, + subheader, + toasts, + transactionHistory, + voucherTypeSelectVouchers, +} diff --git a/packages/voucher/src/locales/ta/voucherTypesSelectVouchersTA.json b/packages/voucher/src/locales/ta/voucherTypesSelectVouchersTA.json new file mode 100644 index 0000000..7771d97 --- /dev/null +++ b/packages/voucher/src/locales/ta/voucherTypesSelectVouchersTA.json @@ -0,0 +1,4 @@ +{ + "back": "பின்செல்", + "where_to_use": "எங்கே பயன்படுத்துவது?" +} diff --git a/packages/voucher/src/locales/zh/alertsZH.json b/packages/voucher/src/locales/zh/alertsZH.json new file mode 100644 index 0000000..8d75834 --- /dev/null +++ b/packages/voucher/src/locales/zh/alertsZH.json @@ -0,0 +1,8 @@ +{ + "desktop": { + "alert": "要使用您的购物券,请您在手机上点击购物券链接,然后向商家出示QR码。" + }, + "voided": { + "header": "您的购物劵已作废。若需更多详情,请<2>在此联系主办机构。" + } +} diff --git a/packages/voucher/src/locales/zh/campaignErrorsZH.json b/packages/voucher/src/locales/zh/campaignErrorsZH.json new file mode 100644 index 0000000..8cb9926 --- /dev/null +++ b/packages/voucher/src/locales/zh/campaignErrorsZH.json @@ -0,0 +1,12 @@ +{ + "expired": { + "body": "已在{{expiryDate}}过期, 无法使用。若需协助,请联系<1>主办机构。", + "header": "购物券已经过期", + "other_vouchers": "查看其他可使用的购物券" + }, + "inactive": { + "body": "这购物劵不能在这段期间使用。请向相关政府机构咨询购物劵的使用期。若需协助,请联系<1>主办机构。", + "header": "购物劵无效", + "other_vouchers": "查看其他可使用的购物券" + } +} diff --git a/packages/voucher/src/locales/zh/commonZH.json b/packages/voucher/src/locales/zh/commonZH.json new file mode 100644 index 0000000..b169c3d --- /dev/null +++ b/packages/voucher/src/locales/zh/commonZH.json @@ -0,0 +1,12 @@ +{ + "buttons": { + "cancel": "取消", + "close": "关闭", + "next": "下一步" + }, + "campaignEnded": { + "info": "购物券无法使用, 因为已经在 {{ expiryDate }} 过期。", + "title": "{{ campaignName }} 购物券已经过期", + "goCampaignListingPage": "查看其他可领取的购物券" + } +} diff --git a/packages/voucher/src/locales/zh/drawerHeaderZH.json b/packages/voucher/src/locales/zh/drawerHeaderZH.json new file mode 100644 index 0000000..d42f4ac --- /dev/null +++ b/packages/voucher/src/locales/zh/drawerHeaderZH.json @@ -0,0 +1,3 @@ +{ + "close_button": "关闭" +} diff --git a/packages/voucher/src/locales/zh/errorsZH.json b/packages/voucher/src/locales/zh/errorsZH.json new file mode 100644 index 0000000..a23a211 --- /dev/null +++ b/packages/voucher/src/locales/zh/errorsZH.json @@ -0,0 +1,13 @@ +{ + "common": { + "contact": "欲了解更多详情,请电邮 <1>{{ feedbackEmail }}" + }, + "service_unavailable": { + "body": "请确保您已连接网络并重试。", + "title": "无网络连接" + }, + "voucher_not_found": { + "body": "请仔细检查网址或再次点击手机简讯中的链接。", + "title": "此购物券不存在。" + } +} diff --git a/packages/voucher/src/locales/zh/headerZH.json b/packages/voucher/src/locales/zh/headerZH.json new file mode 100644 index 0000000..9eeef1d --- /dev/null +++ b/packages/voucher/src/locales/zh/headerZH.json @@ -0,0 +1,6 @@ +{ + "share": "分享购物券", + "where_to_use": "哪里使用购物券", + "info_and_help": "更多详情", + "use_by": "请在{{expiryDate}}之前使用" +} diff --git a/packages/voucher/src/locales/zh/helpZH.json b/packages/voucher/src/locales/zh/helpZH.json new file mode 100644 index 0000000..9fe762a --- /dev/null +++ b/packages/voucher/src/locales/zh/helpZH.json @@ -0,0 +1,27 @@ +{ + "campaign_listing": { + "desc": "查看其他可使用的购物券", + "title": "想要获得更多购物券?" + }, + "contact": { + "call": "拨打 <1>{{ organiserContactNumber }}", + "link": "<1>点击此处提交援助请求", + "title": "如需更多帮助,请联系:" + }, + "more_info": { + "additional_info_button": { + "desc": "更多关于您的购物券的信息", + "title": "其他信息" + }, + "merchant_list_button": { + "desc": "查看完整的商户名单", + "title": "哪里可以使用购物券" + }, + "title": "更多信息" + }, + "tips": { + "access": "要使用您的购物券,请点击通过手机短信发送给您的购物券链接。您无需再次使用Singpass登录。", + "share": "要分享您的购物券,请复制您的购物券链接,并将链接发送给家庭成员或您信赖的亲人。", + "title": "使用购物券贴士" + } +} diff --git a/packages/voucher/src/locales/zh/index.ts b/packages/voucher/src/locales/zh/index.ts new file mode 100644 index 0000000..0eb2cb9 --- /dev/null +++ b/packages/voucher/src/locales/zh/index.ts @@ -0,0 +1 @@ +export * from './translationsZH' diff --git a/packages/voucher/src/locales/zh/infoAndHelpZH.json b/packages/voucher/src/locales/zh/infoAndHelpZH.json new file mode 100644 index 0000000..4c106e9 --- /dev/null +++ b/packages/voucher/src/locales/zh/infoAndHelpZH.json @@ -0,0 +1,23 @@ +{ + "info_and_help": { + "title": "更多详情", + "close_button": "关闭", + "general_info_button": { + "desc": "查看更多有关购物券的详情", + "title": "一般信息" + }, + "share_vouchers_button": { + "desc": "点击此处以复制购物券链接,并将链接发送给家人或亲友", + "title": "分享购物券" + }, + "give_feedback_button": { + "desc": "请让我们知道如何作出改善", + "title": "提供反馈" + } + }, + "contact": { + "call": "拨打 <1>{{ organiserContactNumber }}", + "link": "<1>点击此处提交援助请求", + "title": "如需更多帮助,请联系:" + } +} diff --git a/packages/voucher/src/locales/zh/mainZH.json b/packages/voucher/src/locales/zh/mainZH.json new file mode 100644 index 0000000..f2b9a42 --- /dev/null +++ b/packages/voucher/src/locales/zh/mainZH.json @@ -0,0 +1,8 @@ +{ + "contact_footer": "若您需要协助,请电邮 {{feedbackEmail}} 与我们联系。", + "redeem_button": "出示购物券", + "redeemed_stamp_label": "已使用", + "footer": { + "view_terms_and_conditions": "查看<1>条款和条件" + } +} diff --git a/packages/voucher/src/locales/zh/redemptionZH.json b/packages/voucher/src/locales/zh/redemptionZH.json new file mode 100644 index 0000000..e7d17a4 --- /dev/null +++ b/packages/voucher/src/locales/zh/redemptionZH.json @@ -0,0 +1,19 @@ +{ + "back": "返回", + "back_to_home": "返回主页", + "close": "关闭", + "footer": { + "terms_and_conditions": "条款与条件", + "general_info": "一般信息" + }, + "instructions": "向商店出示", + "modals": { + "already_redeemed": { + "action": "选择其他购物券", + "body": "您选择的购物券已经使用过了。\r\n\r\n\r\n请选择其他购物券。", + "title": "已使用" + } + }, + "redeemed_stamp_label": "已使用", + "use_by": "请在{{expiryDate}}之前使用" +} diff --git a/packages/voucher/src/locales/zh/subheaderZH.json b/packages/voucher/src/locales/zh/subheaderZH.json new file mode 100644 index 0000000..9f1cc49 --- /dev/null +++ b/packages/voucher/src/locales/zh/subheaderZH.json @@ -0,0 +1,5 @@ +{ + "balance": "余额", + "help_drawer_button": "更多详情", + "tap_to_use": "点击使用" +} diff --git a/packages/voucher/src/locales/zh/toastsZH.json b/packages/voucher/src/locales/zh/toastsZH.json new file mode 100644 index 0000000..8ea77b8 --- /dev/null +++ b/packages/voucher/src/locales/zh/toastsZH.json @@ -0,0 +1,9 @@ +{ + "copy_success": { + "header": "已复制购物券链接!", + "message": "要分享您的购物券,请将此链接发送给您的家庭成员或您信赖的亲人。" + }, + "max_vouchers": { + "header": "您每一次只能选择最多{{voucher_limit}}个购物卷。若此交易需要用更多,请先使用这组,再继续选用。" + } +} diff --git a/packages/voucher/src/locales/zh/transactionHistoryZH.json b/packages/voucher/src/locales/zh/transactionHistoryZH.json new file mode 100644 index 0000000..f44bd9d --- /dev/null +++ b/packages/voucher/src/locales/zh/transactionHistoryZH.json @@ -0,0 +1,10 @@ +{ + "title": "交易记录", + "content": { + "total_spent": "花费总额" + }, + "empty": { + "info": "您还未使用任何购物券。一旦您开始使用购物券,这里将显示交易记录。", + "back_to_home": "返回主页" + } +} diff --git a/packages/voucher/src/locales/zh/translationsZH.ts b/packages/voucher/src/locales/zh/translationsZH.ts new file mode 100644 index 0000000..1502a77 --- /dev/null +++ b/packages/voucher/src/locales/zh/translationsZH.ts @@ -0,0 +1,31 @@ +import alerts from './alertsZH.json' +import campaignErrors from './campaignErrorsZH.json' +import common from './commonZH.json' +import drawerHeader from './drawerHeaderZH.json' +import errors from './errorsZH.json' +import header from './headerZH.json' +import help from './helpZH.json' +import infoAndHelp from './infoAndHelpZH.json' +import main from './mainZH.json' +import redemption from './redemptionZH.json' +import subheader from './subheaderZH.json' +import toasts from './toastsZH.json' +import transactionHistory from './transactionHistoryZH.json' +import voucherTypeSelectVouchers from './voucherTypesSelectVouchersZH.json' + +export const translationsZH = { + alerts, + campaignErrors, + common, + drawerHeader, + errors, + header, + help, + infoAndHelp, + main, + redemption, + subheader, + toasts, + transactionHistory, + voucherTypeSelectVouchers, +} diff --git a/packages/voucher/src/locales/zh/voucherTypesSelectVouchersZH.json b/packages/voucher/src/locales/zh/voucherTypesSelectVouchersZH.json new file mode 100644 index 0000000..0b7a03d --- /dev/null +++ b/packages/voucher/src/locales/zh/voucherTypesSelectVouchersZH.json @@ -0,0 +1,4 @@ +{ + "back": "返回", + "where_to_use": "到哪使用?" +} diff --git a/packages/voucher/src/pages/GroupPage/GroupPage.tsx b/packages/voucher/src/pages/GroupPage/GroupPage.tsx new file mode 100644 index 0000000..ce21b51 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/GroupPage.tsx @@ -0,0 +1,106 @@ +// Libraries +import _ from 'lodash' +import {Navigate, useLocation, useParams} from 'react-router-dom' + +// Hooks +import useGroupWithRefetchInterval from 'hooks/useGroupWithRefetchInterval' + +import {ERROR, LOADING, PENDING, SUCCESS} from 'constants/requests' + +// General Components +import VoucherError from 'components/VoucherError' + +import { + REFETCH_GROUP_INTERVAL, + REFETCH_GROUP_ON_REDEMPTION_PAGE_INTERVAL, +} from 'constants/intervals' +import {NO_MATCH_ROUTE, REDEMPTION_PAGE_ROUTE_RELATIVE} from 'constants/routes' +import GroupPageDefault from './components/GroupPageDefault' +import GroupPageWithVoucherTypes from './components/GroupPageWithVoucherTypes' +import {useSortedVouchersGroupedByType} from './hooks' +import {Voucher} from 'types/voucher' + +function getVoucherTypes(vouchers: Voucher[]): string[] { + const voucherTypes = vouchers.map((voucher) => voucher.type) + if (_.some(voucherTypes, voucherTypes === null)) { + return [] + } + return _.uniq(voucherTypes as string[]) +} + +const GroupPage = () => { + const {groupId} = useParams<{groupId: string}>() + if (!groupId) { + // Should never reach here due to enforcement on top level router. But + // redirect if a bug ever causes it to reach here without an id. + return + } + const {pathname} = useLocation() + const isOnRedemptionPage = pathname.endsWith( + `/${REDEMPTION_PAGE_ROUTE_RELATIVE}`, + ) + const { + voucherGroup, + groupData, + campaign, + fetchGroupByIdStatus, + fetchGroupByIdError, + } = useGroupWithRefetchInterval( + groupId, + isOnRedemptionPage + ? REFETCH_GROUP_ON_REDEMPTION_PAGE_INTERVAL + : REFETCH_GROUP_INTERVAL, + ) + const sortedVouchersGroupedByType = + useSortedVouchersGroupedByType(voucherGroup) + const sortedVouchersWithNoType = sortedVouchersGroupedByType['null'] || [] + // If there are no vouchers or only null as voucher type, then use default (i.e no types) + // variant of the GroupPage. + const isUseMultipleVoucherTypesPage = + _.size(sortedVouchersGroupedByType) > 1 || !sortedVouchersWithNoType.length + // Rationale of not using sortedVouchersGroupedByType to get the keys is because the value "lags" behind as it maintains the previous sorted order + // Thus, when voucherGroup has value, sortedVouchersGroupedByType might not have a value yet because the previous sort order is still null. + const voucherTypes = getVoucherTypes(voucherGroup) + + return ( + <> + {fetchGroupByIdStatus === ERROR && ( + + )} + {/* If voucher sorting is not yet done, continue showing loading spinner */} + {/* The state should not be LOADING if vouchers are already sorted, but */} + {/* leaving both conditions here for clarity. */} + {(fetchGroupByIdStatus === LOADING || + fetchGroupByIdStatus === PENDING || + !sortedVouchersGroupedByType) && ( +

+

loading...

+
+
+ )} + {fetchGroupByIdStatus === SUCCESS && ( + <> + {isUseMultipleVoucherTypesPage && ( + + )} + {!isUseMultipleVoucherTypesPage && ( + + )} + + )} + + ) +} + +export default GroupPage diff --git a/packages/voucher/src/pages/GroupPage/components/BackButton/BackButton.tsx b/packages/voucher/src/pages/GroupPage/components/BackButton/BackButton.tsx new file mode 100644 index 0000000..1513b1f --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/BackButton/BackButton.tsx @@ -0,0 +1,44 @@ +import React from 'react' +import {Icon, Button, Text, HStack} from '@chakra-ui/react' +import {BiChevronLeft} from 'react-icons/bi' + +type BackButtonProps = { + color: string + activeHoverColor: string + id: string + onBackClick: () => void + text: string +} + +const BackButton = ({ + color, + activeHoverColor, + id, + onBackClick, + text, +}: BackButtonProps) => { + return ( + + ) +} + +export default BackButton diff --git a/packages/voucher/src/pages/GroupPage/components/BackButton/index.ts b/packages/voucher/src/pages/GroupPage/components/BackButton/index.ts new file mode 100644 index 0000000..293bea0 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/BackButton/index.ts @@ -0,0 +1 @@ +export {default} from './BackButton' diff --git a/packages/voucher/src/pages/GroupPage/components/DrawerHeaderWithCloseButton/DrawerHeaderWithCloseButton.tsx b/packages/voucher/src/pages/GroupPage/components/DrawerHeaderWithCloseButton/DrawerHeaderWithCloseButton.tsx new file mode 100644 index 0000000..2c681c2 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/DrawerHeaderWithCloseButton/DrawerHeaderWithCloseButton.tsx @@ -0,0 +1,54 @@ +import {Button, HStack, Icon, Text, DrawerHeader} from '@chakra-ui/react' +import {useTranslation} from 'react-i18next' +import {BiX} from 'react-icons/bi' + +type DrawerHeaderWithCloseButtonProps = { + backgroundColor: string + closeActiveColor?: string + closeButtonId: string + onCloseClick?: () => void + title: string +} + +const DrawerHeaderWithCloseButton = ({ + backgroundColor, + closeActiveColor, + closeButtonId, + onCloseClick, + title, +}: DrawerHeaderWithCloseButtonProps) => { + const {t} = useTranslation('drawerHeader') + return ( + + + + {title} + + {onCloseClick && ( + + )} + + + ) +} + +export default DrawerHeaderWithCloseButton diff --git a/packages/voucher/src/pages/GroupPage/components/DrawerHeaderWithCloseButton/index.js b/packages/voucher/src/pages/GroupPage/components/DrawerHeaderWithCloseButton/index.js new file mode 100644 index 0000000..a3a0b1d --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/DrawerHeaderWithCloseButton/index.js @@ -0,0 +1 @@ +export {default} from './DrawerHeaderWithCloseButton' diff --git a/packages/voucher/src/pages/GroupPage/components/GroupPageBottomOverlay/GroupPageBottomOverlay.tsx b/packages/voucher/src/pages/GroupPage/components/GroupPageBottomOverlay/GroupPageBottomOverlay.tsx new file mode 100644 index 0000000..9e9cfb6 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/GroupPageBottomOverlay/GroupPageBottomOverlay.tsx @@ -0,0 +1,74 @@ +import {HStack, Button, Text, Icon} from '@chakra-ui/react' +import {BiRightArrowAlt} from 'react-icons/bi' +import {useTranslation} from 'react-i18next' +import {useIsShortDeviceInitial} from 'helpers/hooks' + +type GroupPageBottomOverlayProps = { + selectedVouchersTotalValue: number + onClickNext: () => void + showButton?: boolean +} + +const GroupPageBottomOverlay = ({ + selectedVouchersTotalValue, + onClickNext, + showButton, +}: GroupPageBottomOverlayProps) => { + const {t} = useTranslation('main') + + // If height is smaller than a certain number, + // we render the button with smaller paddings. + const isShortDevice = useIsShortDeviceInitial() + + return ( + <> + {showButton && ( + + + + )} + + ) +} + +export default GroupPageBottomOverlay diff --git a/packages/voucher/src/pages/GroupPage/components/GroupPageBottomOverlay/index.ts b/packages/voucher/src/pages/GroupPage/components/GroupPageBottomOverlay/index.ts new file mode 100644 index 0000000..24f9250 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/GroupPageBottomOverlay/index.ts @@ -0,0 +1 @@ +export {default} from './GroupPageBottomOverlay' diff --git a/packages/voucher/src/pages/GroupPage/components/GroupPageCampaignError/GroupPageCampaignError.tsx b/packages/voucher/src/pages/GroupPage/components/GroupPageCampaignError/GroupPageCampaignError.tsx new file mode 100644 index 0000000..783f441 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/GroupPageCampaignError/GroupPageCampaignError.tsx @@ -0,0 +1,53 @@ +import React, {useState} from 'react' + +import {VStack, Flex} from '@chakra-ui/react' +import {Campaign} from 'types/campaign' +import GroupPageCampaignErrorComponent from './components/GroupPageCampaignErrorComponent' +import GroupPageCampaignErrorOrganiserSection from './components/GroupPageErrorCampaignOrganiserSection' + +type GroupPageCampaignErrorProps = { + campaign: Campaign +} + +function GroupPageCampaignError({campaign}: GroupPageCampaignErrorProps) { + const [isOrganiserContactSectionOpen, setIsOrganiserContactSectionOpen] = + useState(false) + + return ( + + + {isOrganiserContactSectionOpen ? ( + + ) : ( + + )} + + + ) +} + +export default GroupPageCampaignError diff --git a/packages/voucher/src/pages/GroupPage/components/GroupPageCampaignError/components/GroupPageCampaignErrorComponent.tsx b/packages/voucher/src/pages/GroupPage/components/GroupPageCampaignError/components/GroupPageCampaignErrorComponent.tsx new file mode 100644 index 0000000..bc5a608 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/GroupPageCampaignError/components/GroupPageCampaignErrorComponent.tsx @@ -0,0 +1,97 @@ +import React from 'react' +import WarningIcon from 'images/warning-icon.svg' + +import {useTranslation, Trans} from 'react-i18next' +import {VStack, Image, Text} from '@chakra-ui/react' +import {customMonitorClick} from 'helpers/monitoring' +import {formatDateString} from 'helpers/date' +import {Campaign, CampaignValidity} from 'types/campaign' + +type ValidityTranslationKey = 'inactive' | 'expired' + +function getValidityTranslationKey( + campaignValidity: CampaignValidity, +): ValidityTranslationKey { + switch (campaignValidity) { + case 'campaign_not_started': + return 'inactive' + case 'campaign_ended': + return 'expired' + // Should not ever reach here. + default: + return 'inactive' + } +} + +type GroupPageCampaignErrorComponentProps = { + campaign: Campaign + setIsOrganiserContactSectionOpen: (newVal: boolean) => void +} + +function GroupPageCampaignErrorComponent({ + campaign, + setIsOrganiserContactSectionOpen, +}: GroupPageCampaignErrorComponentProps) { + const validityTranslationKey = getValidityTranslationKey(campaign.validity) + const expiryDate = formatDateString(campaign.validityEnd) + const {t} = useTranslation('campaignErrors', { + keyPrefix: validityTranslationKey, + }) + + const campaignName = campaign.name + + return ( + <> + + + Warning Icon + + {t('header')} + + + + {campaign.validity === 'campaign_ended' ? ( + + {campaignName}{' '} + + ) : null} + + {campaign.validity === 'campaign_ended' ? ( + <> + cannot be used as they expired on + {{expiryDate}}. For more help, please + + ) : ( + <> + The voucher(s) cannot be used as campaign is not active. For + more help, please + + )} + { + customMonitorClick('Call organiser contact number button') + setIsOrganiserContactSectionOpen(true) + }} + > + contact the organiser + + . + + + + + ) +} + +export default GroupPageCampaignErrorComponent diff --git a/packages/voucher/src/pages/GroupPage/components/GroupPageCampaignError/components/GroupPageErrorCampaignOrganiserSection.tsx b/packages/voucher/src/pages/GroupPage/components/GroupPageCampaignError/components/GroupPageErrorCampaignOrganiserSection.tsx new file mode 100644 index 0000000..fb1cbfa --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/GroupPageCampaignError/components/GroupPageErrorCampaignOrganiserSection.tsx @@ -0,0 +1,47 @@ +import React from 'react' + +import {Button} from '@chakra-ui/react' +import OrganiserContactSection from '../../OrganiserContactSection' + +type GroupPageErrorCampaignOrganiserDrawerProps = { + campaignOrganiserName?: string | null + campaignOrganiserLocation?: string | null + campaignOrganiserContactNumber?: string | null + campaignOrganiserFeedbackUrl?: string | null + setIsOrganiserContactSectionOpen: (newVal: boolean) => void +} + +function GroupPageErrorCampaignOrganiserSection({ + campaignOrganiserName, + campaignOrganiserLocation, + campaignOrganiserContactNumber, + campaignOrganiserFeedbackUrl, + setIsOrganiserContactSectionOpen, +}: GroupPageErrorCampaignOrganiserDrawerProps) { + return ( + <> + + + + ) +} + +export default GroupPageErrorCampaignOrganiserSection diff --git a/packages/voucher/src/pages/GroupPage/components/GroupPageCampaignError/index.ts b/packages/voucher/src/pages/GroupPage/components/GroupPageCampaignError/index.ts new file mode 100644 index 0000000..cc9552d --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/GroupPageCampaignError/index.ts @@ -0,0 +1 @@ +export {default} from './GroupPageCampaignError' diff --git a/packages/voucher/src/pages/GroupPage/components/GroupPageDefault/GroupPageDefault.tsx b/packages/voucher/src/pages/GroupPage/components/GroupPageDefault/GroupPageDefault.tsx new file mode 100644 index 0000000..3692b64 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/GroupPageDefault/GroupPageDefault.tsx @@ -0,0 +1,73 @@ +import React, {useCallback} from 'react' +import {AxiosError} from 'axios' +import {formatAddress} from 'helpers/utils' +import {useSelectableVouchers} from 'pages/GroupPage/hooks' +import {Voucher, GroupedVoucher} from 'types/voucher' +import {Route, Routes, useNavigate} from 'react-router-dom' +import RedemptionPage from '../RedemptionPage' +import DefaultSelectVouchersPage from './components/DefaultSelectVouchersPage' +import {Campaign} from 'types/campaign' +import {REDEMPTION_PAGE_ROUTE_RELATIVE} from 'constants/routes' + +type GroupPageDefaultProps = { + vouchersToRender: Voucher[] + groupData: GroupedVoucher + campaign: Campaign + errorStatus: unknown +} + +const GroupPageDefault = ({ + vouchersToRender, + groupData, + campaign, + errorStatus, +}: GroupPageDefaultProps) => { + const navigate = useNavigate() + const navigateFromRedemptionToVouchers = useCallback( + () => navigate(-1), + [navigate], + ) + const { + selectedVouchers, + toggleSelectVoucher: onClickVoucher, + isLimitReached, + unselectVouchersById, + } = useSelectableVouchers({ + vouchers: vouchersToRender, + }) + const address = formatAddress(groupData) + + return ( + + + } + /> + + } + /> + + ) +} + +export default React.memo(GroupPageDefault) diff --git a/packages/voucher/src/pages/GroupPage/components/GroupPageDefault/components/DefaultSelectVouchersPage/DefaultSelectVouchersPage.tsx b/packages/voucher/src/pages/GroupPage/components/GroupPageDefault/components/DefaultSelectVouchersPage/DefaultSelectVouchersPage.tsx new file mode 100644 index 0000000..d77e152 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/GroupPageDefault/components/DefaultSelectVouchersPage/DefaultSelectVouchersPage.tsx @@ -0,0 +1,135 @@ +import React, {useCallback} from 'react' +import {Flex, useDisclosure} from '@chakra-ui/react' +import { + useGetIsVoucherSelected, + useUnselectUsedVouchers, +} from 'pages/GroupPage/hooks' +import {useClipboard} from 'hooks/useClipboard' +import {Campaign} from 'types/campaign' +import {Voucher} from 'types/voucher' +import GroupPageBottomOverlay from '../../../GroupPageBottomOverlay' +import GroupPageHeader from '../../../GroupPageHeader' +import GroupPageMain from '../../../GroupPageMain' +import InfoAndHelpDrawer from '../../../InfoAndHelpDrawer' +import {getHasVoidedVoucher, getVouchersAmountLeft} from 'helpers/vouchers' +import {useNavigateWithCurrentSearchParams} from 'helpers/navigate' +import TransactionHistoryDrawer from 'pages/GroupPage/components/TransactionHistoryDrawer' +import GroupPageCampaignError from 'pages/GroupPage/components/GroupPageCampaignError' + +type DefaultSelectVouchersPageProps = { + selectedVouchers: Voucher[] + vouchersToRender: Voucher[] + onClickVoucher: (voucher: Voucher) => void + isLimitReached: boolean + address: string + groupId: string + campaign: Campaign + unselectVouchersById: (voucherIds: string[]) => void +} + +const DefaultSelectVouchersPage = ({ + vouchersToRender, + selectedVouchers, + onClickVoucher, + isLimitReached, + address, + groupId, + campaign, + unselectVouchersById, +}: DefaultSelectVouchersPageProps) => { + const navigateWithCurrentSearchParams = useNavigateWithCurrentSearchParams() + const { + onClose: closeInfoAndHelpDrawer, + onOpen: openInfoAndHelpDrawer, + isOpen: isInfoAndHelpDrawerOpen, + } = useDisclosure({defaultIsOpen: false}) + const { + onClose: closeTransactionHistoryDrawer, + onOpen: openTransactionHistoryDrawer, + isOpen: isTransactionHistoryDrawerOpen, + } = useDisclosure({defaultIsOpen: false}) + useUnselectUsedVouchers({selectedVouchers, unselectVouchersById}) + + const amountLeft = getVouchersAmountLeft(vouchersToRender) + const hasVoidedVoucher = getHasVoidedVoucher(vouchersToRender) + const selectedVouchersTotalValue = getVouchersAmountLeft(selectedVouchers) + + const getIsVoucherSelected = useGetIsVoucherSelected(selectedVouchers) + const onClickCopy = useClipboard({textToCopy: window.location.href}) + const onClickShowQr = useCallback( + () => navigateWithCurrentSearchParams('show'), + [navigateWithCurrentSearchParams], + ) + + const isCampaignValid = campaign.validity === 'campaign_valid' + const isInteractionDisabled = !isCampaignValid + + return ( + <> + + + {/* Only if campaign is within the valid period then we will render normally. + Otherwise, assume it is an error and throw to GroupPageCampaignError to handle. */} + {isCampaignValid ? ( + <> + + + + ) : ( + + )} + + + + + ) +} + +export default React.memo(DefaultSelectVouchersPage) diff --git a/packages/voucher/src/pages/GroupPage/components/GroupPageDefault/components/DefaultSelectVouchersPage/index.ts b/packages/voucher/src/pages/GroupPage/components/GroupPageDefault/components/DefaultSelectVouchersPage/index.ts new file mode 100644 index 0000000..019f54d --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/GroupPageDefault/components/DefaultSelectVouchersPage/index.ts @@ -0,0 +1 @@ +export {default} from './DefaultSelectVouchersPage' diff --git a/packages/voucher/src/pages/GroupPage/components/GroupPageDefault/index.ts b/packages/voucher/src/pages/GroupPage/components/GroupPageDefault/index.ts new file mode 100644 index 0000000..5712a7c --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/GroupPageDefault/index.ts @@ -0,0 +1 @@ +export {default} from './GroupPageDefault' diff --git a/packages/voucher/src/pages/GroupPage/components/GroupPageHeader/GroupPageHeader.tsx b/packages/voucher/src/pages/GroupPage/components/GroupPageHeader/GroupPageHeader.tsx new file mode 100644 index 0000000..fc8ae71 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/GroupPageHeader/GroupPageHeader.tsx @@ -0,0 +1,199 @@ +import React from 'react' +import {useTranslation} from 'react-i18next' +import redeemLogoLight from 'images/redeem-logo-light.svg' +import redeemLogoDark from 'images/redeem-logo.svg' + +import {BiHelpCircle, BiMap, BiShare} from 'react-icons/bi' +import DesktopAlertOverlay from 'components/DesktopAlertOverlay' +import VoidInlineMessage from './components/VoidInlineMessage' +import { + HStack, + Image, + VStack, + Icon, + useMultiStyleConfig, + Center, +} from '@chakra-ui/react' +import LanguageSelector from 'components/LanguageSelector' +import GroupPageHeaderButton from './components/GroupPageHeaderButton' +import {REDEEM_CONSTANTS} from 'constants/config' +import {isDesktop} from 'react-device-detect' +import {openInNewTab} from 'helpers/utils' +import GroupPageHeaderInfo from './components/GroupPageHeaderInfo' +import {formatDateString} from 'helpers/date' +import {DDAction} from 'constants/datadog' + +type GroupPageHeaderProps = { + logoBackgroundColor?: string | null + logoSrc?: string | null + address: string + buttonActiveBackgroundColor?: string + buttonBackgroundColor?: string + onClickCopy: () => void + onClickHelp: () => void + isInteractionDisabled: boolean + hasVoidedVoucher: boolean + colorScheme: string + campaignName?: string | null + campaignExpiresAt?: string | null + campaignOrganiserFeedbackUrl: string | null + campaignMerchantListUrl?: string | null +} + +function GroupPageHeader({ + logoBackgroundColor, + logoSrc, + address, + buttonActiveBackgroundColor, + buttonBackgroundColor, + onClickCopy, + onClickHelp, + isInteractionDisabled, + hasVoidedVoucher, + colorScheme, + campaignName, + campaignExpiresAt, + campaignOrganiserFeedbackUrl, + campaignMerchantListUrl, +}: GroupPageHeaderProps) { + const {t} = useTranslation('header') + const redeemLogo = isInteractionDisabled ? redeemLogoDark : redeemLogoLight + const topLeftLogo = logoSrc + + const formattedCampaignExpiresAt = t('use_by', { + expiryDate: formatDateString(campaignExpiresAt || ''), + }) + + const groupedPageHeaderVariant = isInteractionDisabled + ? 'interactionDisabled' + : 'baseStyle' + + const styles = useMultiStyleConfig('GroupPageHeader', { + variant: groupedPageHeaderVariant, + }) + + const imageStyle = styles.logoImage + + return ( + + + {logoBackgroundColor ? ( +
+ Campaign Logo +
+ ) : ( + Campaign Logo + )} + + +
+ + + {!campaignMerchantListUrl && ( + } + id='share-voucher-button' + onClickAction={onClickCopy} + text={t('share')} + /> + )} + {campaignMerchantListUrl && ( + } + id='where-to-use-button' + isInteractionDisabled={isInteractionDisabled} + // TODO: Replace REDEEM_BASE_URL with something else if campaign + // has no campaignMerchantListUrl. + onClickAction={() => + openInNewTab( + campaignMerchantListUrl || REDEEM_CONSTANTS.landingPage, + ) + } + text={t('where_to_use')} + /> + )} + } + id='open-help-drawer-button' + isInteractionDisabled={isInteractionDisabled} + onClickAction={onClickHelp} + text={t('info_and_help')} + /> + + + {hasVoidedVoucher && ( + + )} +
+ ) +} + +export default React.memo(GroupPageHeader) diff --git a/packages/voucher/src/pages/GroupPage/components/GroupPageHeader/components/GroupPageHeaderButton/GroupPageHeaderButton.tsx b/packages/voucher/src/pages/GroupPage/components/GroupPageHeader/components/GroupPageHeaderButton/GroupPageHeaderButton.tsx new file mode 100644 index 0000000..5fc798e --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/GroupPageHeader/components/GroupPageHeaderButton/GroupPageHeaderButton.tsx @@ -0,0 +1,50 @@ +import React from 'react' +import {Button, HStack, Text, Box} from '@chakra-ui/react' +import {textStyles} from 'theme/textStyles' +type GroupPageHeaderButtonProps = { + backgroundColor: string + buttonActiveBackgroundColor: string + datadogActionName: string + icon: React.ReactElement + id: string + isInteractionDisabled: boolean + onClickAction: () => void + text: string +} + +function GroupPageHeaderButton({ + buttonActiveBackgroundColor, + backgroundColor, + datadogActionName, + icon, + id, + isInteractionDisabled, + onClickAction, + text, +}: GroupPageHeaderButtonProps) { + return ( + + ) +} + +export default GroupPageHeaderButton diff --git a/packages/voucher/src/pages/GroupPage/components/GroupPageHeader/components/GroupPageHeaderButton/index.ts b/packages/voucher/src/pages/GroupPage/components/GroupPageHeader/components/GroupPageHeaderButton/index.ts new file mode 100644 index 0000000..0d308e9 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/GroupPageHeader/components/GroupPageHeaderButton/index.ts @@ -0,0 +1 @@ +export {default} from './GroupPageHeaderButton' diff --git a/packages/voucher/src/pages/GroupPage/components/GroupPageHeader/components/GroupPageHeaderInfo/GroupPageHeaderInfo.tsx b/packages/voucher/src/pages/GroupPage/components/GroupPageHeader/components/GroupPageHeaderInfo/GroupPageHeaderInfo.tsx new file mode 100644 index 0000000..5df4e23 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/GroupPageHeader/components/GroupPageHeaderInfo/GroupPageHeaderInfo.tsx @@ -0,0 +1,40 @@ +import React from 'react' +import {VStack, Text, HStack, Icon, CSSObject} from '@chakra-ui/react' +import {BiTimeFive, BiBuildingHouse} from 'react-icons/bi' + +type GroupPageHeaderInfoProps = { + campaignName?: string | null + formattedCampaignExpiresAt: string + address: string | null + contentContainerStyle: CSSObject +} + +function GroupPageHeaderInfo({ + campaignName, + formattedCampaignExpiresAt, + address, + contentContainerStyle, +}: GroupPageHeaderInfoProps) { + return ( + + {campaignName} + + + {formattedCampaignExpiresAt} + + {address ? ( + + + {address} + + ) : null} + + ) +} + +export default GroupPageHeaderInfo diff --git a/packages/voucher/src/pages/GroupPage/components/GroupPageHeader/components/GroupPageHeaderInfo/index.ts b/packages/voucher/src/pages/GroupPage/components/GroupPageHeader/components/GroupPageHeaderInfo/index.ts new file mode 100644 index 0000000..7ef6674 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/GroupPageHeader/components/GroupPageHeaderInfo/index.ts @@ -0,0 +1 @@ +export {default} from './GroupPageHeaderInfo' diff --git a/packages/voucher/src/pages/GroupPage/components/GroupPageHeader/components/VoidInlineMessage.tsx b/packages/voucher/src/pages/GroupPage/components/GroupPageHeader/components/VoidInlineMessage.tsx new file mode 100644 index 0000000..34e0fd6 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/GroupPageHeader/components/VoidInlineMessage.tsx @@ -0,0 +1,39 @@ +import React from 'react' +import {useTranslation, Trans} from 'react-i18next' +import InlineMessage from 'components/InlineMessage' +import {Box, Link} from '@chakra-ui/react' + +// TODO: Fix message for cases where organiser has no feedback URL. +const TO_FIX_FALLBACK_VOID_SUPPORT_URL = '/' + +interface VoidInlineMessageProps { + campaignOrganiserFeedbackUrl: string | null +} + +const VoidInlineMessage = ({ + campaignOrganiserFeedbackUrl, +}: VoidInlineMessageProps) => { + const {t} = useTranslation('alerts', {keyPrefix: 'voided'}) + return ( + /* TODO: Once InlineMessage is confirmed not to be used for anything else + modify InlineMessage styling directly instead of having a parent container with paddingTop */ + + + + Your vouchers have been void. To find out why, contact the organiser{' '} + + here + + . + + + + ) +} + +export default VoidInlineMessage diff --git a/packages/voucher/src/pages/GroupPage/components/GroupPageHeader/index.js b/packages/voucher/src/pages/GroupPage/components/GroupPageHeader/index.js new file mode 100644 index 0000000..b481dd0 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/GroupPageHeader/index.js @@ -0,0 +1 @@ +export {default} from './GroupPageHeader' diff --git a/packages/voucher/src/pages/GroupPage/components/GroupPageMain/GroupPageMain.tsx b/packages/voucher/src/pages/GroupPage/components/GroupPageMain/GroupPageMain.tsx new file mode 100644 index 0000000..43c5c94 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/GroupPageMain/GroupPageMain.tsx @@ -0,0 +1,112 @@ +import React, {useMemo} from 'react' +import _ from 'lodash' +import type {Voucher, VoucherColorScheme} from 'types/voucher' +import VoucherListing from './components/VoucherListing' +import {Center, Flex, HStack, Text, VStack} from '@chakra-ui/react' +import {useTranslation} from 'react-i18next' +import {VOUCHER_SIDE_MARGIN} from 'constants/spacing' +import ViewTermsAndConditionsText from 'components/ViewTermsAndConditionsText' +import TransactionHistoryDrawerButton from '../TransactionHistoryDrawerButton' + +type GroupPageMainProps = { + vouchersToRender: Voucher[] + getIsVoucherSelected: (voucher: Voucher) => boolean + onClickVoucher: (voucher: Voucher) => void + onClickHistory?: () => void + colorScheme?: VoucherColorScheme + isLimitReached: boolean + isScrollable: boolean + amountLeft: number + campaignAdvisoryUrl?: string | null + campaignTncUrl?: string | null +} + +type VoucherWithOnClickHandler = Voucher & { + onClickHandler: () => void +} + +// TODO: Refactor isScrollable away from DefaultSelectVouchersPage +// and VoucherTypeSelectVouchersPage +function GroupPageMain({ + vouchersToRender, + getIsVoucherSelected, + onClickVoucher, + onClickHistory, + colorScheme, + isLimitReached, + isScrollable, + amountLeft, + campaignTncUrl, +}: GroupPageMainProps) { + const {t} = useTranslation('subheader') + const vouchersWithClickHandler = useMemo(() => { + return vouchersToRender.map((voucher) => ({ + ...voucher, + onClickHandler: () => onClickVoucher(voucher), + })) + }, [vouchersToRender, onClickVoucher]) + return ( + + + + + {t('balance')} + + $ + {amountLeft} + + + {!!onClickHistory && ( + + )} + + {/* TODO: Refactor to something less hacky. i.e no relative positioning */} + + {_.map(vouchersWithClickHandler, (voucher) => ( + + ))} + + {!!campaignTncUrl && ( +
+ +
+ )} +
+
+ ) +} + +export default React.memo(GroupPageMain) diff --git a/packages/voucher/src/pages/GroupPage/components/GroupPageMain/components/VoucherListing/VoucherListing.tsx b/packages/voucher/src/pages/GroupPage/components/GroupPageMain/components/VoucherListing/VoucherListing.tsx new file mode 100644 index 0000000..a7c50cd --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/GroupPageMain/components/VoucherListing/VoucherListing.tsx @@ -0,0 +1,190 @@ +import React from 'react' +import {Voucher, VoucherColorScheme} from 'types/voucher' +import {Box, Button, Flex, HStack, Text} from '@chakra-ui/react' +import RedeemedStampSmall from './components/RedeemedStampSmall' +import VoidStamp from './components/VoidStamp' +import { + useVoucherListingBackgroundColor, + useVoucherListingBorder, + useVoucherListingHeight, + useVoucherListingValueColor, +} from './hooks' +import VoucherListingCheckBox from './components/VoucherListingCheckBox' +import {VOUCHER_SIDE_MARGIN} from 'constants/spacing' + +const VOUCHER_BORDER_RADIUS = '4px' + +type VoucherProps = { + voucher: Voucher + onClick: () => void + colorScheme?: VoucherColorScheme + isSelected: boolean + isLimitReached: boolean +} + +const VoucherListing = ({ + voucher, + onClick, + colorScheme, + isSelected, + isLimitReached, +}: VoucherProps) => { + // TODO: Consider use of useMultiStyleConfig + const voucherValueColor = useVoucherListingValueColor({ + voucher, + isSelected, + isLimitReached, + colorScheme, + }) + + const backgroundColor = useVoucherListingBackgroundColor({ + voucher, + isSelected, + isLimitReached, + colorScheme, + }) + + const border = useVoucherListingBorder() + + // As border is implemented as drop-shadow, it is not included in height calculations. To compensate for it, we must subtract the + // border width from the button height in order to keep the height consistent across different states. + const height = { + base: useVoucherListingHeight({ + finalHeight: '4rem', + borderWidth: border?.borderWidth, + }), + sm: useVoucherListingHeight({ + finalHeight: '4.5rem', + borderWidth: border?.borderWidth, + }), + } + + return ( + + ) +} + +export default React.memo(VoucherListing) diff --git a/packages/voucher/src/pages/GroupPage/components/GroupPageMain/components/VoucherListing/components/RedeemedStampSmall/RedeemedStampSmall.tsx b/packages/voucher/src/pages/GroupPage/components/GroupPageMain/components/VoucherListing/components/RedeemedStampSmall/RedeemedStampSmall.tsx new file mode 100644 index 0000000..75b6696 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/GroupPageMain/components/VoucherListing/components/RedeemedStampSmall/RedeemedStampSmall.tsx @@ -0,0 +1,60 @@ +import {Flex, Text} from '@chakra-ui/react' +import {useTranslation} from 'react-i18next' + +// TODO: Consider use of useMultiStyleConfig +const RedeemedStampSmall = () => { + const {t} = useTranslation('main') + return ( + + + + {t('redeemed_stamp_label')} + + + + ) +} + +export default RedeemedStampSmall diff --git a/packages/voucher/src/pages/GroupPage/components/GroupPageMain/components/VoucherListing/components/RedeemedStampSmall/index.ts b/packages/voucher/src/pages/GroupPage/components/GroupPageMain/components/VoucherListing/components/RedeemedStampSmall/index.ts new file mode 100644 index 0000000..250a9d9 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/GroupPageMain/components/VoucherListing/components/RedeemedStampSmall/index.ts @@ -0,0 +1 @@ +export {default} from './RedeemedStampSmall' diff --git a/packages/voucher/src/pages/GroupPage/components/GroupPageMain/components/VoucherListing/components/VoidStamp/VoidStamp.tsx b/packages/voucher/src/pages/GroupPage/components/GroupPageMain/components/VoucherListing/components/VoidStamp/VoidStamp.tsx new file mode 100644 index 0000000..0f99547 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/GroupPageMain/components/VoucherListing/components/VoidStamp/VoidStamp.tsx @@ -0,0 +1,28 @@ +import {Flex, Text} from '@chakra-ui/react' +import {useTranslation} from 'react-i18next' + +const VoidStamp = () => { + const {t} = useTranslation('main') + return ( + + + {t('voided_stamp_label')} + + + ) +} + +export default VoidStamp diff --git a/packages/voucher/src/pages/GroupPage/components/GroupPageMain/components/VoucherListing/components/VoidStamp/index.ts b/packages/voucher/src/pages/GroupPage/components/GroupPageMain/components/VoucherListing/components/VoidStamp/index.ts new file mode 100644 index 0000000..6a20b01 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/GroupPageMain/components/VoucherListing/components/VoidStamp/index.ts @@ -0,0 +1 @@ +export {default} from './VoidStamp' diff --git a/packages/voucher/src/pages/GroupPage/components/GroupPageMain/components/VoucherListing/components/VoucherListingCheckBox/VoucherListingCheckBox.tsx b/packages/voucher/src/pages/GroupPage/components/GroupPageMain/components/VoucherListing/components/VoucherListingCheckBox/VoucherListingCheckBox.tsx new file mode 100644 index 0000000..1a62ee2 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/GroupPageMain/components/VoucherListing/components/VoucherListingCheckBox/VoucherListingCheckBox.tsx @@ -0,0 +1,64 @@ +import _ from 'lodash' +import {Voucher} from 'types/voucher' +import {ReactComponent as BxsCheckCircle} from 'images/bxs-check-circle.svg' +import {ReactComponent as BxsCheckCircleBlack} from 'images/bxs-check-circle-black.svg' +import {ReactComponent as BxsCheckCircleDisabled} from 'images/bxs-check-circle-disabled.svg' +import {Icon} from '@chakra-ui/react' +import {BiCircle} from 'react-icons/bi' + +const YELLOW = 'yellow' + +type VoucherListingCheckBoxProps = { + voucherState: Voucher['state'] + isSelected: boolean + isLimitReached: boolean + colorScheme?: string +} + +const VoucherListingCheckBox = ({ + voucherState, + isSelected, + isLimitReached, + colorScheme, +}: VoucherListingCheckBoxProps) => { + if (voucherState === 'redeemed') { + return ( + + ) + } + if (voucherState === 'voided') { + return ( + + ) + } + if (isSelected) { + return _.isEqual(colorScheme, YELLOW) ? ( + + ) : ( + + ) + } + if (isLimitReached) { + return ( + + ) + } + + return ( + + ) +} + +export default VoucherListingCheckBox diff --git a/packages/voucher/src/pages/GroupPage/components/GroupPageMain/components/VoucherListing/components/VoucherListingCheckBox/index.ts b/packages/voucher/src/pages/GroupPage/components/GroupPageMain/components/VoucherListing/components/VoucherListingCheckBox/index.ts new file mode 100644 index 0000000..3e32778 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/GroupPageMain/components/VoucherListing/components/VoucherListingCheckBox/index.ts @@ -0,0 +1 @@ +export {default} from './VoucherListingCheckBox' diff --git a/packages/voucher/src/pages/GroupPage/components/GroupPageMain/components/VoucherListing/hooks.ts b/packages/voucher/src/pages/GroupPage/components/GroupPageMain/components/VoucherListing/hooks.ts new file mode 100644 index 0000000..b4c9bcb --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/GroupPageMain/components/VoucherListing/hooks.ts @@ -0,0 +1,78 @@ +import {getTextColorForColorScheme} from 'helpers/vouchers' +import _ from 'lodash' +import {colors, ThemeColorScheme} from 'theme/foundations/colors' +import {Voucher, VoucherColorScheme} from 'types/voucher' + +type UseVoucherListingValueColorProps = { + voucher: Voucher + isSelected: boolean + isLimitReached: boolean + colorScheme?: VoucherColorScheme +} + +export const useVoucherListingValueColor = ({ + voucher, + isSelected, + isLimitReached, + colorScheme, +}: UseVoucherListingValueColorProps) => { + if (isSelected) { + return getTextColorForColorScheme(colorScheme) + } + if (voucher.state === 'voided') { + return 'neutral.300' + } + if (voucher.state === 'redeemed' || isLimitReached) { + return 'neutral.400' + } + return 'primary.700' +} + +type UseVoucherListingBackgroundColorProps = { + voucher: Voucher + isSelected: boolean + isLimitReached: boolean + colorScheme?: string +} + +export const useVoucherListingBackgroundColor = ({ + voucher, + isSelected, + isLimitReached, + colorScheme, +}: UseVoucherListingBackgroundColorProps) => { + // Has to be color hex insteado of token as it is used in string + // interpolation + if (isSelected) { + // eslint-disable-next-line prefer-destructuring + return !_.isUndefined(colorScheme) + ? colors[colorScheme as ThemeColorScheme][500] + : colors.primary[500] + } + if (voucher.state === 'voided') { + // eslint-disable-next-line prefer-destructuring + return colors.neutral[200] + } + if (voucher.state === 'redeemed' || (!isSelected && isLimitReached)) { + // eslint-disable-next-line prefer-destructuring + return colors.neutral[300] + } + return 'neutral.100' +} + +export const useVoucherListingBorder = (): { + borderWidth: string + borderColor: string +} => { + return {borderColor: colors.neutral[300], borderWidth: '1px'} +} + +export const useVoucherListingHeight = ({ + finalHeight, + borderWidth, +}: { + finalHeight: string + borderWidth?: string +}): string => { + return `calc(${finalHeight} - 2 * ${borderWidth || '0px'})` +} diff --git a/packages/voucher/src/pages/GroupPage/components/GroupPageMain/components/VoucherListing/index.ts b/packages/voucher/src/pages/GroupPage/components/GroupPageMain/components/VoucherListing/index.ts new file mode 100644 index 0000000..55f8201 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/GroupPageMain/components/VoucherListing/index.ts @@ -0,0 +1 @@ +export {default} from './VoucherListing' diff --git a/packages/voucher/src/pages/GroupPage/components/GroupPageMain/index.ts b/packages/voucher/src/pages/GroupPage/components/GroupPageMain/index.ts new file mode 100644 index 0000000..1a486bc --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/GroupPageMain/index.ts @@ -0,0 +1 @@ +export {default} from './GroupPageMain' diff --git a/packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/GroupPageWithVoucherTypes.tsx b/packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/GroupPageWithVoucherTypes.tsx new file mode 100644 index 0000000..4a0d2f0 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/GroupPageWithVoucherTypes.tsx @@ -0,0 +1,65 @@ +import _ from 'lodash' +import React from 'react' +import {formatAddress} from 'helpers/utils' +import {useClipboard} from 'hooks/useClipboard' +import {Route, Routes} from 'react-router-dom' +import {Campaign} from 'types/campaign' +import {Voucher, GroupedVoucher} from 'types/voucher' +import SelectVoucherTypePage from './components/SelectVoucherTypePage' +import VoucherTypeVouchers from './components/VoucherTypeVouchers' + +type GroupPageWithVoucherTypesProps = { + sortedVouchersGroupedByType: Record + groupData: GroupedVoucher + campaign: Campaign + errorStatus: unknown + voucherTypes: string[] +} + +const GroupPageWithVoucherTypes = ({ + sortedVouchersGroupedByType, + groupData, + campaign, + errorStatus, + voucherTypes, +}: GroupPageWithVoucherTypesProps) => { + const onClickCopy = useClipboard({textToCopy: window.location.href}) + + const address = formatAddress(groupData) + + const hasVoidedVoucher = !!_(sortedVouchersGroupedByType) + .values() + .flatten() + .find((voucher) => voucher.state === 'voided') + + return ( + + + } + /> + + } + /> + + ) +} + +export default React.memo(GroupPageWithVoucherTypes) diff --git a/packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/components/SelectVoucherTypePage/SelectVoucherTypePage.tsx b/packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/components/SelectVoucherTypePage/SelectVoucherTypePage.tsx new file mode 100644 index 0000000..1db34e1 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/components/SelectVoucherTypePage/SelectVoucherTypePage.tsx @@ -0,0 +1,94 @@ +import React from 'react' +import {VStack, useDisclosure} from '@chakra-ui/react' +import GroupPageHeader from 'pages/GroupPage/components/GroupPageHeader' +import GroupPageCampaignError from 'pages/GroupPage/components/GroupPageCampaignError' +import {Campaign} from 'types/campaign' +import {GroupedVoucher, Voucher} from 'types/voucher' +import InfoAndHelpDrawer from 'pages/GroupPage/components/InfoAndHelpDrawer' +import TransactionHistoryDrawer from 'pages/GroupPage/components/TransactionHistoryDrawer' +import SelectVoucherTypeMain from './components/SelectVoucherTypeMain' + +type SelectVoucherTypePageProps = { + campaign: Campaign + address: string + groupData: GroupedVoucher + onClickCopy: () => void + hasVoidedVoucher: boolean + vouchersGroupedByType: Record +} + +const SelectVoucherTypePage = ({ + campaign, + address, + groupData, + onClickCopy, + hasVoidedVoucher, + vouchersGroupedByType, +}: SelectVoucherTypePageProps) => { + const { + onClose: closeTransactionHistoryDrawer, + onOpen: openTransactionHistoryDrawer, + isOpen: isTransactionHistoryDrawerOpen, + } = useDisclosure({defaultIsOpen: false}) + const { + onClose: closeInfoAndHelpDrawer, + onOpen: openInfoAndHelpDrawer, + isOpen: isInfoAndHelpDrawerOpen, + } = useDisclosure({defaultIsOpen: false}) + + const isCampaignValid = campaign.validity === 'campaign_valid' + const isInteractionDisabled = !isCampaignValid + + return ( + + + {/* Only if campaign is within the valid period then we will render normally. + Otherwise, assume it is an error and throw to GroupPageCampaignError to handle. */} + {isCampaignValid ? ( + + ) : ( + + )} + + + + ) +} + +export default React.memo(SelectVoucherTypePage) diff --git a/packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/components/SelectVoucherTypePage/components/SelectVoucherTypeMain.tsx b/packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/components/SelectVoucherTypePage/components/SelectVoucherTypeMain.tsx new file mode 100644 index 0000000..f0ea0a4 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/components/SelectVoucherTypePage/components/SelectVoucherTypeMain.tsx @@ -0,0 +1,107 @@ +import _ from 'lodash' + +import React, {useCallback} from 'react' +import {Flex, Image, HStack, Text, VStack} from '@chakra-ui/react' +import TransactionHistoryDrawerButton from 'pages/GroupPage/components/TransactionHistoryDrawerButton' +import VoucherTypeButton from './VoucherTypeButton' +import {useNavigateWithCurrentSearchParams} from 'helpers/navigate' +import {useTranslation} from 'react-i18next' +import {Voucher} from 'types/voucher' +import { + getColorSchemeForVoucherType, + getConfigForVoucherType, +} from 'helpers/vouchers' + +type VoucherTypeWithUnusedAmount = { + type: string + unusedAmount: number +} + +type SelectVoucherTypeMainProps = { + onClickOpen: () => void + vouchersGroupedByType: Record +} + +const SelectVoucherTypeMain = ({ + onClickOpen, + vouchersGroupedByType, +}: SelectVoucherTypeMainProps) => { + const {t} = useTranslation('subheader') + const navigateWithCurrentSearchParams = useNavigateWithCurrentSearchParams() + const onClickVoucherType = useCallback( + (voucherType: string) => + navigateWithCurrentSearchParams(`./${voucherType}/`), + [navigateWithCurrentSearchParams], + ) + // Sum up unused voucher value for each voucher type + const voucherTypesWithUnusedAmount: VoucherTypeWithUnusedAmount[] = _( + vouchersGroupedByType, + ) + .toPairs() + .map(([voucherType, vouchersOfType]) => { + return { + type: voucherType, + unusedAmount: _.sumBy(vouchersOfType, (voucher) => { + return voucher.state === 'unused' ? voucher.voucherValue : 0 + }), + } + }) + .orderBy(['type'], ['asc']) // Sort by ascending order. More explicit than sortBy comparator. + .value() + + return ( + + + + + {t('tap_to_use')} + + + + + {voucherTypesWithUnusedAmount.map((voucherObj) => { + const voucherType = voucherObj.type + const voucherTypeConfig = getConfigForVoucherType(voucherType) + return ( + + } + onClick={() => onClickVoucherType(voucherType)} + type={voucherTypeConfig.text} + /> + ) + })} + + + + ) +} + +export default React.memo(SelectVoucherTypeMain) diff --git a/packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/components/SelectVoucherTypePage/components/VoucherTypeButton.tsx b/packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/components/SelectVoucherTypePage/components/VoucherTypeButton.tsx new file mode 100644 index 0000000..b5bc9da --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/components/SelectVoucherTypePage/components/VoucherTypeButton.tsx @@ -0,0 +1,73 @@ +import {Button, Stack, Icon, HStack, Text} from '@chakra-ui/react' +import {BiChevronRight} from 'react-icons/bi' + +type VoucherTypeButtonProps = { + amountLeft: number | undefined + backgroundColor: string + id: string + image: React.ReactNode + onClick: () => void + type: string +} + +const VoucherTypeButton = ({ + amountLeft, + backgroundColor, + id, + image, + onClick, + type, +}: VoucherTypeButtonProps) => { + return ( + + ) +} + +export default VoucherTypeButton diff --git a/packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/components/SelectVoucherTypePage/index.ts b/packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/components/SelectVoucherTypePage/index.ts new file mode 100644 index 0000000..e355154 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/components/SelectVoucherTypePage/index.ts @@ -0,0 +1 @@ +export {default} from './SelectVoucherTypePage' diff --git a/packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/components/VoucherTypeVouchers/VoucherTypeVouchers.tsx b/packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/components/VoucherTypeVouchers/VoucherTypeVouchers.tsx new file mode 100644 index 0000000..edaac23 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/components/VoucherTypeVouchers/VoucherTypeVouchers.tsx @@ -0,0 +1,108 @@ +import React, {useEffect} from 'react' +import {AxiosError} from 'axios' +import RedemptionPage from 'pages/GroupPage/components/RedemptionPage' +import {useSelectableVouchers} from 'pages/GroupPage/hooks' +import {useCallback} from 'react' +import {Route, Routes, useParams} from 'react-router-dom' +import {Campaign} from 'types/campaign' +import {Voucher} from 'types/voucher' +import VoucherTypeSelectVouchersPage from './components/VoucherTypeSelectVouchersPage' +import {useNavigateWithCurrentSearchParams} from 'helpers/navigate' +import { + getColorSchemeForVoucherType, + getConfigForVoucherType, +} from 'helpers/vouchers' +import {getVouchersAmountLeft} from 'helpers/vouchers' +import _ from 'lodash' +import {REDEMPTION_PAGE_ROUTE_RELATIVE} from 'constants/routes' + +type VoucherTypeVouchersProps = { + sortedVouchersGroupedByType: Record + campaign: Campaign + errorStatus: unknown + voucherTypes: string[] +} + +const VoucherTypeVouchers = ({ + sortedVouchersGroupedByType, + campaign, + errorStatus, + voucherTypes, +}: VoucherTypeVouchersProps) => { + const navigateWithCurrentSearchParams = useNavigateWithCurrentSearchParams() + const navigateToHome = useCallback( + () => navigateWithCurrentSearchParams('..'), + [navigateWithCurrentSearchParams], + ) + const navigateHere = useCallback( + () => navigateWithCurrentSearchParams('.'), + [navigateWithCurrentSearchParams], + ) + + const {voucherType} = useParams() + + // Navigate back to main page if invalid voucher type passed in + useEffect(() => { + if (_.isUndefined(voucherType) || !voucherTypes.includes(voucherType)) { + return navigateWithCurrentSearchParams('..') + } + }, [voucherType, navigateWithCurrentSearchParams]) + + // TODO: Error boundary handle if passed in voucher type is not string + if (!_.isString(voucherType)) { + throw Error('Voucher type is not a string') + } + + const vouchersToRender = sortedVouchersGroupedByType[voucherType] || [] + const amountLeft = getVouchersAmountLeft(vouchersToRender) + const { + selectedVouchers, + toggleSelectVoucher: onClickVoucher, + isLimitReached, + unselectVouchersById, + } = useSelectableVouchers({ + vouchers: vouchersToRender, + }) + + const colorScheme = getColorSchemeForVoucherType(voucherType) + const voucherTypeText = getConfigForVoucherType(voucherType).text + + return ( + + + } + /> + + } + /> + + ) +} + +export default React.memo(VoucherTypeVouchers) diff --git a/packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/components/VoucherTypeVouchers/components/VoucherTypeSelectVouchersPage/VoucherTypeSelectVouchersPage.tsx b/packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/components/VoucherTypeVouchers/components/VoucherTypeSelectVouchersPage/VoucherTypeSelectVouchersPage.tsx new file mode 100644 index 0000000..f294837 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/components/VoucherTypeVouchers/components/VoucherTypeSelectVouchersPage/VoucherTypeSelectVouchersPage.tsx @@ -0,0 +1,103 @@ +import React, {useCallback} from 'react' +import {Flex, VStack} from '@chakra-ui/react' +import GroupPageMain from 'pages/GroupPage/components/GroupPageMain' +import {Voucher, VoucherColorScheme} from 'types/voucher' +import BrandmarkBackground from 'components/BrandmarkBackground' +import { + useGetIsVoucherSelected, + useUnselectUsedVouchers, +} from 'pages/GroupPage/hooks' +import {getVouchersAmountLeft} from 'helpers/vouchers' +import GroupPageBottomOverlay from 'pages/GroupPage/components/GroupPageBottomOverlay' +import {useNavigateWithCurrentSearchParams} from 'helpers/navigate' +import VoucherTypeSelectVouchersHeader from './components/VoucherTypeSelectVouchersHeader' +import {useIsShortDeviceInitial} from 'helpers/hooks' + +type VoucherTypeSelectVouchersPageProps = { + vouchersToRender: Voucher[] + selectedVouchers: Voucher[] + onBackClick: () => void + onClickVoucher: (voucher: Voucher) => void + isLimitReached: boolean + amountLeft: number + header: string + campaignAdvisoryUrl?: string | null + campaignTncUrl?: string | null + campaignMerchantListUrl?: string + colorScheme: VoucherColorScheme + unselectVouchersById: (voucherIds: string[]) => void +} + +const VoucherTypeSelectVouchersPage = ({ + vouchersToRender, + selectedVouchers, + onClickVoucher, + onBackClick, + isLimitReached, + amountLeft, + colorScheme, + header, + campaignAdvisoryUrl, + campaignTncUrl, + campaignMerchantListUrl, + unselectVouchersById, +}: VoucherTypeSelectVouchersPageProps) => { + const getIsVoucherSelected = useGetIsVoucherSelected(selectedVouchers) + useUnselectUsedVouchers({selectedVouchers, unselectVouchersById}) + const selectedVouchersTotalValue = getVouchersAmountLeft(selectedVouchers) + const navigateWithCurrentSearchParams = useNavigateWithCurrentSearchParams() + const onClickShowQr = useCallback( + () => navigateWithCurrentSearchParams('show'), + [navigateWithCurrentSearchParams], + ) + const isShortDevice = useIsShortDeviceInitial() + + return ( + <> + + + + + + + + + + ) +} + +export default React.memo(VoucherTypeSelectVouchersPage) diff --git a/packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/components/VoucherTypeVouchers/components/VoucherTypeSelectVouchersPage/components/VoucherTypeSelectVouchersHeader.tsx b/packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/components/VoucherTypeVouchers/components/VoucherTypeSelectVouchersPage/components/VoucherTypeSelectVouchersHeader.tsx new file mode 100644 index 0000000..5584503 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/components/VoucherTypeVouchers/components/VoucherTypeSelectVouchersPage/components/VoucherTypeSelectVouchersHeader.tsx @@ -0,0 +1,64 @@ +import React from 'react' +import {VStack, Text} from '@chakra-ui/react' +import {VoucherColorScheme} from 'types/voucher' +import {getTextColorForColorScheme} from 'helpers/vouchers' +import {useTranslation} from 'react-i18next' +import BackButton from 'pages/GroupPage/components/BackButton' +import WhereToUseButton from 'pages/GroupPage/components/WhereToUseButton' +import {useIsShortDeviceInitial} from 'helpers/hooks' +import {DDAction} from 'constants/datadog' + +type VoucherTypeSelectVouchersHeaderProps = { + campaignMerchantListUrl?: string + colorScheme: VoucherColorScheme + header: string + onBackClick: () => void +} + +const VoucherTypeSelectVouchersHeader = ({ + campaignMerchantListUrl, + colorScheme, + header, + onBackClick, +}: VoucherTypeSelectVouchersHeaderProps) => { + const {t} = useTranslation('voucherTypeSelectVouchers') + const isShortDevice = useIsShortDeviceInitial() + + return ( + + + + {header} + {!!campaignMerchantListUrl && ( + + )} + + + ) +} + +export default VoucherTypeSelectVouchersHeader diff --git a/packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/components/VoucherTypeVouchers/components/VoucherTypeSelectVouchersPage/index.tsx b/packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/components/VoucherTypeVouchers/components/VoucherTypeSelectVouchersPage/index.tsx new file mode 100644 index 0000000..e175d68 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/components/VoucherTypeVouchers/components/VoucherTypeSelectVouchersPage/index.tsx @@ -0,0 +1 @@ +export {default} from './VoucherTypeSelectVouchersPage' diff --git a/packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/components/VoucherTypeVouchers/index.ts b/packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/components/VoucherTypeVouchers/index.ts new file mode 100644 index 0000000..9bba9a7 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/components/VoucherTypeVouchers/index.ts @@ -0,0 +1 @@ +export {default} from './VoucherTypeVouchers' diff --git a/packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/index.ts b/packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/index.ts new file mode 100644 index 0000000..ce0cd51 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/GroupPageWithVoucherTypes/index.ts @@ -0,0 +1 @@ +export {default} from './GroupPageWithVoucherTypes' diff --git a/packages/voucher/src/pages/GroupPage/components/InfoAndHelpDrawer/InfoAndHelpDrawer.tsx b/packages/voucher/src/pages/GroupPage/components/InfoAndHelpDrawer/InfoAndHelpDrawer.tsx new file mode 100644 index 0000000..e56410f --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/InfoAndHelpDrawer/InfoAndHelpDrawer.tsx @@ -0,0 +1,83 @@ +import React from 'react' +import {useTranslation} from 'react-i18next' +import { + DrawerBody, + Drawer, + DrawerOverlay, + DrawerContent, + VStack, +} from '@chakra-ui/react' +import OrganiserContactSection from '../OrganiserContactSection' +import DrawerHeaderWithCloseButton from '../DrawerHeaderWithCloseButton' +import HowToSection from './components/HowToSection' + +type HelpDrawerProps = { + isOpen: boolean + onClickCopy?: () => void + onCloseClick: () => void + campaignAdvisoryUrl?: string | null + campaignOrganiserName?: string | null + campaignMerchantListUrl?: string | null + campaignOrganiserFeedbackUrl?: string | null + campaignOrganiserLocation?: string | null + campaignOrganiserContactNumber?: string | null + campaignTncUrl?: string | null +} + +function InfoAndHelpDrawer({ + isOpen, + onClickCopy, + onCloseClick, + campaignOrganiserName, + campaignOrganiserFeedbackUrl, + campaignOrganiserLocation, + campaignOrganiserContactNumber, + campaignAdvisoryUrl, + campaignTncUrl, +}: HelpDrawerProps) { + const {t} = useTranslation('infoAndHelp', { + keyPrefix: 'info_and_help', + }) + + return ( + // TODO: Consider useMultiStyleConfig + + + + {/* We want this drawer header to be sticky, so we have it ontop of DrawerBody. */} + + {/* DrawerBody comes with auto padding of 24px on top and bottom which we don't want. */} + + + + + + + + + ) +} + +export default React.memo(InfoAndHelpDrawer) diff --git a/packages/voucher/src/pages/GroupPage/components/InfoAndHelpDrawer/components/HowToSection/HowToSection.tsx b/packages/voucher/src/pages/GroupPage/components/InfoAndHelpDrawer/components/HowToSection/HowToSection.tsx new file mode 100644 index 0000000..bcaa9d9 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/InfoAndHelpDrawer/components/HowToSection/HowToSection.tsx @@ -0,0 +1,88 @@ +import {Icon, VStack} from '@chakra-ui/react' +import {useTranslation} from 'react-i18next' +import {customMonitorClick} from 'helpers/monitoring' +import {REDEEM_CONSTANTS} from 'constants/config' +import HelpLearnMoreButton from './components/HelpLearnMoreButton' + +import {BiChevronRight} from 'react-icons/bi' +import {DDAction} from 'constants/datadog' + +type HowToSectionProps = { + onClickCopy?: () => void + campaignAdvisoryUrl?: string | null +} + +// TODO: Ask about how to pass translation object down from HelpDrawer here. +const HowToSection = ({ + onClickCopy, + campaignAdvisoryUrl, +}: HowToSectionProps) => { + const {t} = useTranslation('infoAndHelp', { + keyPrefix: 'info_and_help', + }) + + return ( + + {!!campaignAdvisoryUrl && ( + { + customMonitorClick(DDAction.GENERAL_INFO_BUTTON) + }} + icon={ + + } + id='info-and-help-general-info-button' + href={campaignAdvisoryUrl} + /> + )} + + {/* Render the share vouchers button for generic campaign when onClickCopy is passed into this component as a prop. + TODO: Find a better way to do this. */} + {onClickCopy && ( + { + customMonitorClick('Share vouchers how to button') + onClickCopy() + }} + icon={ + + } + id='info-and-help-share-vouchers-button' + /> + )} + { + customMonitorClick('Give feedback how to button') + }} + icon={ + + } + id='info-and-help-give-feedback-button' + href={REDEEM_CONSTANTS.feedbackPage} + /> + + ) +} + +export default HowToSection diff --git a/packages/voucher/src/pages/GroupPage/components/InfoAndHelpDrawer/components/HowToSection/components/HelpLearnMoreButton/HelpLearnMoreButton.tsx b/packages/voucher/src/pages/GroupPage/components/InfoAndHelpDrawer/components/HowToSection/components/HelpLearnMoreButton/HelpLearnMoreButton.tsx new file mode 100644 index 0000000..c04acc4 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/InfoAndHelpDrawer/components/HowToSection/components/HelpLearnMoreButton/HelpLearnMoreButton.tsx @@ -0,0 +1,77 @@ +import {Button, HStack, Link, LinkProps, Text, VStack} from '@chakra-ui/react' + +type HelpDrawerLearnMoreButtonProps = { + description: string + href?: LinkProps['href'] + icon: React.ReactNode + id: string + title: string + onClick: () => void +} & LinkProps + +interface LinkWrapProps { + href?: LinkProps['href'] + wrap: (children: JSX.Element) => JSX.Element + children: JSX.Element +} + +// Helper component to wrap button in Link if href is provided. +const LinkWrap = ({href, wrap, children}: LinkWrapProps): JSX.Element => { + return href ? wrap(children) : <>{children} +} + +const HelpDrawerLearnMoreButton = ({ + description, + href, + icon, + id, + title, + onClick, + ...linkProps +}: HelpDrawerLearnMoreButtonProps) => { + return ( + ( + + {children} + + )} + > + + + ) +} + +export default HelpDrawerLearnMoreButton diff --git a/packages/voucher/src/pages/GroupPage/components/InfoAndHelpDrawer/components/HowToSection/components/HelpLearnMoreButton/index.ts b/packages/voucher/src/pages/GroupPage/components/InfoAndHelpDrawer/components/HowToSection/components/HelpLearnMoreButton/index.ts new file mode 100644 index 0000000..85f8b61 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/InfoAndHelpDrawer/components/HowToSection/components/HelpLearnMoreButton/index.ts @@ -0,0 +1 @@ +export {default} from './HelpLearnMoreButton' diff --git a/packages/voucher/src/pages/GroupPage/components/InfoAndHelpDrawer/components/HowToSection/index.ts b/packages/voucher/src/pages/GroupPage/components/InfoAndHelpDrawer/components/HowToSection/index.ts new file mode 100644 index 0000000..3ca8ecf --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/InfoAndHelpDrawer/components/HowToSection/index.ts @@ -0,0 +1 @@ +export {default} from './HowToSection' diff --git a/packages/voucher/src/pages/GroupPage/components/InfoAndHelpDrawer/index.ts b/packages/voucher/src/pages/GroupPage/components/InfoAndHelpDrawer/index.ts new file mode 100644 index 0000000..dc14791 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/InfoAndHelpDrawer/index.ts @@ -0,0 +1 @@ +export {default} from './InfoAndHelpDrawer' diff --git a/packages/voucher/src/pages/GroupPage/components/OrganiserContactSection/OrganiserContactSection.tsx b/packages/voucher/src/pages/GroupPage/components/OrganiserContactSection/OrganiserContactSection.tsx new file mode 100644 index 0000000..12947ae --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/OrganiserContactSection/OrganiserContactSection.tsx @@ -0,0 +1,142 @@ +import { + Link, + Text, + VStack, + Center, + Divider, + HStack, + Image, +} from '@chakra-ui/react' +import ViewTermsAndConditionsText from 'components/ViewTermsAndConditionsText' +import {formatContactNumberForDisplay} from 'helpers/contactNumber' +import {customMonitorClick} from 'helpers/monitoring' +import {Trans, useTranslation} from 'react-i18next' +import {BiBuildings, BiMessageSquareDetail, BiPhone} from 'react-icons/bi' +import HelpInfoEntry from './components/HelpInfoEntry' + +import questionMarkSvg from 'images/question-mark.svg' + +type OrganiserContactSectionProps = { + campaignOrganiserName?: string | null + campaignOrganiserLocation?: string | null + campaignOrganiserContactNumber?: string | null + campaignOrganiserFeedbackUrl?: string | null + campaignTncUrl?: string | null + backgroundColor: string +} + +const OrganiserContactSection = ({ + campaignOrganiserName, + campaignOrganiserLocation, + campaignOrganiserContactNumber, + campaignOrganiserFeedbackUrl, + campaignTncUrl, + backgroundColor, +}: OrganiserContactSectionProps) => { + const {t} = useTranslation('infoAndHelp', {keyPrefix: 'contact'}) + return ( + + + + question-mark + + {t('title')} + + + + + {campaignOrganiserName || 'Campaign Organiser'} + + + {!!campaignOrganiserFeedbackUrl && ( + + + + Submit a feedback form + + customMonitorClick('Submit enquiry to organiser button') + } + > + here + + + + + )} + {!!campaignOrganiserContactNumber && ( + + + + Call + + customMonitorClick( + 'Call organiser contact number button', + ) + } + > + {formatContactNumberForDisplay( + campaignOrganiserContactNumber, + )} + + + + + )} + {!!campaignOrganiserLocation && ( + + + {campaignOrganiserLocation} + + + )} + + + + {!!campaignTncUrl && ( +
+ + + + +
+ )} +
+ ) +} + +export default OrganiserContactSection diff --git a/packages/voucher/src/pages/GroupPage/components/OrganiserContactSection/components/HelpInfoEntry/HelpInfoEntry.tsx b/packages/voucher/src/pages/GroupPage/components/OrganiserContactSection/components/HelpInfoEntry/HelpInfoEntry.tsx new file mode 100644 index 0000000..ca96fbd --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/OrganiserContactSection/components/HelpInfoEntry/HelpInfoEntry.tsx @@ -0,0 +1,28 @@ +import {HStack, Icon} from '@chakra-ui/react' +import {IconType} from 'react-icons/lib' + +type HelpInfoEntryProps = { + icon: IconType + children: React.ReactNode + isFlipIcon?: boolean +} + +const HelpInfoEntry = ({ + icon, + children, + isFlipIcon = false, +}: HelpInfoEntryProps) => { + return ( + + + {children} + + ) +} + +export default HelpInfoEntry diff --git a/packages/voucher/src/pages/GroupPage/components/OrganiserContactSection/components/HelpInfoEntry/index.tsx b/packages/voucher/src/pages/GroupPage/components/OrganiserContactSection/components/HelpInfoEntry/index.tsx new file mode 100644 index 0000000..3604026 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/OrganiserContactSection/components/HelpInfoEntry/index.tsx @@ -0,0 +1 @@ +export {default} from './HelpInfoEntry' diff --git a/packages/voucher/src/pages/GroupPage/components/OrganiserContactSection/index.ts b/packages/voucher/src/pages/GroupPage/components/OrganiserContactSection/index.ts new file mode 100644 index 0000000..1be1dc2 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/OrganiserContactSection/index.ts @@ -0,0 +1 @@ +export {default} from './OrganiserContactSection' diff --git a/packages/voucher/src/pages/GroupPage/components/RedemptionPage/RedemptionPage.tsx b/packages/voucher/src/pages/GroupPage/components/RedemptionPage/RedemptionPage.tsx new file mode 100644 index 0000000..d3f84bb --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/RedemptionPage/RedemptionPage.tsx @@ -0,0 +1,144 @@ +import React, {useEffect, useState} from 'react' +import {AxiosError} from 'axios' +import {Voucher} from 'types/voucher' +import useNavigatorOnline from 'hooks/useNavigatorOffline' +import {is404Error} from 'helpers/utils' +import {Flex, VStack} from '@chakra-ui/react' +import useErrorStates from 'hooks/useErrorStates' +import {Campaign} from 'types/campaign' +import AlreadyRedeemedModal from './components/AlreadyRedeemedModal' +import { + getLastRedeemedTimestamp, + getRedeemedMerchantName, + getTransactionId, + getVouchersState, + getVouchersTotalValue, +} from 'helpers/vouchers' +import {useNavigateWithCurrentSearchParams} from 'helpers/navigate' +import RedemptionErrorModal from './components/RedemptionErrorModal' +import RedemptionPageHeader from './components/RedemptionPageHeader' +import RedemptionPageMain from './components/RedemptionPageMain' +import {useIsShortDeviceInitial} from 'helpers/hooks' + +const REDEEM_PREFIX = 'rsg' + +type RedemptionPageProps = { + onBackClick: () => void + vouchers: Voucher[] + errorStatus: AxiosError + campaign: Campaign + header?: string + colorScheme?: 'primary' | 'yellow' | 'teal' +} + +const RedemptionPage = ({ + onBackClick, + vouchers, + errorStatus, + campaign, + colorScheme = 'primary', + header, +}: RedemptionPageProps) => { + const navigateWithCurrentSearchParams = useNavigateWithCurrentSearchParams() + const errorStates = useErrorStates() + const isShortDevice = useIsShortDeviceInitial() + + // Navigate back to vouchers selector if no vouchers selected + useEffect(() => { + if (!vouchers.length) { + return navigateWithCurrentSearchParams('..') + } + }, [vouchers.length, navigateWithCurrentSearchParams]) + + if (!vouchers.length) { + onBackClick() + return <> + } + + // We dynamically generate the qr code's value based on voucher ids selected by the user. + // The rsg: prefix helps integrating merchants identify this is a Redeem voucher, + // to be sent to Redeem backend as they might be accepting other vouchers besides ours. + const extraQrPrefix = campaign.extraQrPrefix + const prefix = `${REDEEM_PREFIX}${extraQrPrefix ? `-${extraQrPrefix}` : ''}` + const qrCodeValue = `${prefix}:${vouchers + .map((voucher) => voucher.id) + .join(',')}` + + const vouchersState = getVouchersState(vouchers) + const lastRedeemedTimestamp = getLastRedeemedTimestamp(vouchers) + const transactionId = getTransactionId(vouchers) + const merchantName = getRedeemedMerchantName(vouchers) + const vouchersValue = getVouchersTotalValue(vouchers) + + // Error related objects + const [isError, setIsError] = useState(false) + const [errorObject, setErrorObject] = useState(errorStates.ServiceUnavailable) + + // Offline status checker API + const isOnline = useNavigatorOnline() + // For error handling within the redemption drawer. + useEffect(() => { + if (errorStatus) { + setIsError(true) + if (is404Error(errorStatus)) { + setErrorObject(errorStates.NotFoundError) + } else { + setErrorObject(errorStates.ServiceUnavailable) + } + } + // Handling no connection + if (!isOnline) { + setIsError(true) + setErrorObject(errorStates.ServiceUnavailable) + } + }, [errorStatus, isOnline]) + + return ( + <> + + + + + + + + + + ) +} + +export default React.memo(RedemptionPage) diff --git a/packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/AlreadyRedeemedModal/AlreadyRedeemedModal.tsx b/packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/AlreadyRedeemedModal/AlreadyRedeemedModal.tsx new file mode 100644 index 0000000..ee22a98 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/AlreadyRedeemedModal/AlreadyRedeemedModal.tsx @@ -0,0 +1,38 @@ +import React from 'react' +import {Icon} from '@chakra-ui/react' +import Modal from 'components/Modal' +import {useTranslation} from 'react-i18next' +import {BiRightArrowAlt} from 'react-icons/bi' + +type AlreadyRedeemedModalProps = { + isOpen: boolean + onCloseClick: () => void +} + +const AlreadyRedeemedModal = ({ + isOpen, + onCloseClick, +}: AlreadyRedeemedModalProps) => { + const {t} = useTranslation('redemption', { + keyPrefix: 'modals.already_redeemed', + }) + + return ( + + {t('body', { + interpolation: {escapeValue: false}, + })} + + + ) +} + +export default React.memo(AlreadyRedeemedModal) diff --git a/packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/AlreadyRedeemedModal/index.ts b/packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/AlreadyRedeemedModal/index.ts new file mode 100644 index 0000000..9fd36de --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/AlreadyRedeemedModal/index.ts @@ -0,0 +1 @@ +export {default} from './AlreadyRedeemedModal' diff --git a/packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/RedemptionErrorModal/RedemptionErrorModal.tsx b/packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/RedemptionErrorModal/RedemptionErrorModal.tsx new file mode 100644 index 0000000..fbadd83 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/RedemptionErrorModal/RedemptionErrorModal.tsx @@ -0,0 +1,40 @@ +import React from 'react' +import {Box, Icon} from '@chakra-ui/react' +import Modal from 'components/Modal' +import {BiRightArrowAlt} from 'react-icons/bi' +import {useTranslation} from 'react-i18next' + +type RedemptionErrorModalProps = { + errorObject: { + title: string + content: React.ReactNode + } + isOpen: boolean + onCloseClick: () => void +} + +const RedemptionErrorModal = ({ + errorObject, + isOpen, + onCloseClick, +}: RedemptionErrorModalProps) => { + const {t} = useTranslation('redemption') + return ( + + + {errorObject.content} + + + + ) +} + +export default React.memo(RedemptionErrorModal) diff --git a/packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/RedemptionErrorModal/index.ts b/packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/RedemptionErrorModal/index.ts new file mode 100644 index 0000000..25da5cf --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/RedemptionErrorModal/index.ts @@ -0,0 +1 @@ +export {default} from './RedemptionErrorModal' diff --git a/packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/RedemptionPageHeader/RedemptionPageHeader.tsx b/packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/RedemptionPageHeader/RedemptionPageHeader.tsx new file mode 100644 index 0000000..2d79d3c --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/RedemptionPageHeader/RedemptionPageHeader.tsx @@ -0,0 +1,50 @@ +import {VStack, Text} from '@chakra-ui/react' +import {getTextColorForColorScheme} from 'helpers/vouchers' +import React from 'react' +import BackButton from 'pages/GroupPage/components/BackButton' +import {useTranslation} from 'react-i18next' +import {VoucherColorScheme} from 'types/voucher' +import {useIsShortDeviceInitial} from 'helpers/hooks' + +type RedemptionPageHeaderProps = { + colorScheme: VoucherColorScheme + onBackClick: () => void + header?: string +} + +const RedemptionPageHeader = ({ + colorScheme, + onBackClick, + header, +}: RedemptionPageHeaderProps) => { + const {t} = useTranslation('redemption') + const isShortDevice = useIsShortDeviceInitial() + + return ( + + + + {header} + + + ) +} + +export default React.memo(RedemptionPageHeader) diff --git a/packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/RedemptionPageHeader/index.ts b/packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/RedemptionPageHeader/index.ts new file mode 100644 index 0000000..ff3101f --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/RedemptionPageHeader/index.ts @@ -0,0 +1 @@ +export {default} from './RedemptionPageHeader' diff --git a/packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/RedemptionPageMain/RedemptionPageMain.tsx b/packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/RedemptionPageMain/RedemptionPageMain.tsx new file mode 100644 index 0000000..982a5f7 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/RedemptionPageMain/RedemptionPageMain.tsx @@ -0,0 +1,59 @@ +import React from 'react' +import moment from 'moment-timezone' +import {VStack} from '@chakra-ui/react' +import {VouchersState} from 'types/voucher' +import {Campaign} from 'types/campaign' +import RedemptionCard from './components/RedemptionCard' + +type RedemptionPageMainProps = { + qrCodeValue: string + vouchersValue: number + vouchersState: VouchersState + lastRedeemedTimestamp?: moment.Moment + transactionId?: string + merchantName?: string + campaign: Campaign +} + +const RedemptionPageMain = ({ + qrCodeValue, + vouchersValue, + vouchersState, + campaign, + lastRedeemedTimestamp, + transactionId, + merchantName, +}: RedemptionPageMainProps) => { + return ( + + + + + + ) +} + +export default React.memo(RedemptionPageMain) diff --git a/packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/RedemptionPageMain/components/RedemptionCard/RedemptionCard.scss b/packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/RedemptionPageMain/components/RedemptionCard/RedemptionCard.scss new file mode 100644 index 0000000..5114d87 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/RedemptionPageMain/components/RedemptionCard/RedemptionCard.scss @@ -0,0 +1,252 @@ +@import 'src/styles/colors.scss'; +@import 'src/styles/constants.scss'; + +$redemption-card-cutout-radius: 8px; +$redemption-card-bottom-padding-top: 8px; +$redemption-card-bottom-padding-bottom: 8px; +$redemption-card-max-height: 420px; + +.redemption-card { + flex-grow: 1; + max-height: $redemption-card-max-height; + height: 100%; + display: flex; + flex-direction: column; + align-items: stretch; + filter: drop-shadow(0px 2px 4px rgba(0, 0, 0, 0.06)) + drop-shadow(0px 4px 6px rgba(0, 0, 0, 0.1)); + + &.vouchers-state-redeemed { + min-height: 0; + height: auto; + } + + .redemption-card-top { + box-sizing: border-box; + padding: 14px 28px; + display: flex; + align-items: center; + justify-content: space-between; + border-radius: 16px 16px 0 0; + background: radial-gradient( + circle at top left, + white #{$redemption-card-cutout-radius}, + white 0 + ) + top left, + radial-gradient( + circle at top right, + white #{$redemption-card-cutout-radius}, + white 0 + ) + top right, + radial-gradient( + circle at bottom right, + transparent #{$redemption-card-cutout-radius}, + white 0 + ) + bottom right, + radial-gradient( + circle at bottom left, + transparent #{$redemption-card-cutout-radius}, + white 0 + ) + bottom left; + background-repeat: no-repeat; + background-size: 60% 60%; + margin-bottom: -1px; + + .redemption-card-value-container { + display: flex; + align-items: center; + justify-content: center; + + span { + color: $palette-primary-700; // Primary 600 + } + + :not(:last-child) { + margin-right: 4px; + } + } + } + .redemption-card-border { + width: calc(100% - 2 * #{$redemption-card-cutout-radius} - 24px); + align-self: center; + z-index: 100; + border-top: 2px dashed $palette-primary-200; + color: transparent; + } + .redemption-card-bottom { + position: relative; + flex-grow: 1; + position: relative; + box-sizing: border-box; + padding: #{$redemption-card-bottom-padding-top} 16px #{$redemption-card-bottom-padding-bottom} + 16px; + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + border-radius: 0 0 16px 16px; + margin-top: -2px; + background: radial-gradient( + circle at top left, + transparent #{$redemption-card-cutout-radius}, + white 0 + ) + top left, + radial-gradient( + circle at top right, + transparent #{$redemption-card-cutout-radius}, + white 0 + ) + top right, + radial-gradient( + circle at bottom right, + white #{$redemption-card-cutout-radius}, + white 0 + ) + bottom right, + radial-gradient( + circle at bottom left, + white #{$redemption-card-cutout-radius}, + white 0 + ) + bottom left; + background-repeat: no-repeat; + background-size: 60% 60%; + + .voucher-logo-overlay { + position: absolute; + width: 35%; + max-height: 18%; + max-width: 157px; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + display: flex; + } + + .voucher-logo-redeem-voucher-overlay { + position: absolute; + top: 50%; + left: 50%; + max-height: calc(100% - 24px); + max-width: 157px; + transform: translate(-50%, -50%); + display: flex; + } + + .voucher-redeemed-stamp { + position: absolute; + width: 100%; + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + height: 100%; + background: rgba(255, 255, 255, 0.95); + color: $palette-danger-500; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 200; // arbitrary larger than the one zindex in e2e utils will do. + + > * { + transform: matrix(1, 0.06, -0.05, 1, 0, 0); + } + + .voucher-redeemed-stamp-top { + display: flex; + width: 91.3%; + justify-content: center; + align-items: center; + .voucher-redeemed-stamp-top-line { + height: 3px; + background: $palette-danger-500; + width: 34.5%; + } + svg { + color: $palette-danger-500; + } + :not(:first-child) { + margin-left: 8px; + } + } + .voucher-redeemed-stamp-main { + width: 100%; + display: flex; + justify-content: space-between; + align-items: center; + .voucher-redeemed-stamp-center-line { + background: $palette-danger-500; + height: 3px; + width: 8.5%; + margin-bottom: 16px; + } + .voucher-redeemed-stamp-text-container { + display: flex; + flex-direction: column; + width: fit-content; + align-items: center; + .voucher-redeemed-stamp-text-title { + font-family: Dosis; + font-style: normal; + font-weight: bold; + font-size: 1.625rem; + line-height: 100%; + /* or 26px */ + + display: flex; + letter-spacing: 0.03rem; + text-transform: uppercase; + + @media screen and (min-width: 360px) { + font-size: 2rem; + } + } + + .voucher-redeemed-stamp-timestamp { + font-family: Dosis; + font-style: normal; + font-weight: 600; + font-size: 1rem; + line-height: 100%; + /* or 9px */ + + display: flex; + align-items: center; + text-align: center; + letter-spacing: 0.12em; + text-transform: uppercase; + margin-top: 8px; + } + + .voucher-redeemed-stamp-location { + font-family: Dosis; + font-style: normal; + font-weight: 600; + font-size: 1rem; + line-height: 1.25rem; + margin-top: 4px; + /* or 9px */ + + display: flex; + align-items: center; + text-align: center; + letter-spacing: 0.12em; + text-transform: uppercase; + } + } + } + + .voucher-redeemed-stamp-bottom { + height: 3px; + background: $palette-danger-500; + width: 91.3%; + margin-top: 8px; + } + } + } +} diff --git a/packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/RedemptionPageMain/components/RedemptionCard/RedemptionCard.tsx b/packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/RedemptionPageMain/components/RedemptionCard/RedemptionCard.tsx new file mode 100644 index 0000000..b08396d --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/RedemptionPageMain/components/RedemptionCard/RedemptionCard.tsx @@ -0,0 +1,129 @@ +import moment from 'moment-timezone' +import React from 'react' + +import {ReactComponent as BxsCheckCircleDanger} from 'images/bxs-check-circle-danger.svg' + +import {Center, Flex, HStack, Text} from '@chakra-ui/react' +import {useTranslation} from 'react-i18next' +import {Campaign} from 'types/campaign' +import QrCode from 'components/QrCode' +import {formatDateString} from 'helpers/date' +import {VouchersState} from 'types/voucher' + +import CanvasWithImage from 'components/CanvasWithImage' +import RedemptionCardFooter from './RedemptionCardFooter' + +import './RedemptionCard.scss' + +type RedemptionCardProps = { + vouchersValue: number + vouchersState: VouchersState + qrCodeValue: string + lastRedeemedTimestamp?: moment.Moment + transactionId?: string + merchantName?: string + campaign: Campaign +} + +const RedemptionCard = ({ + vouchersState, + vouchersValue, + qrCodeValue, + lastRedeemedTimestamp, + transactionId, + merchantName, + campaign, +}: RedemptionCardProps) => { + const {t} = useTranslation('redemption') + const qrLogo = campaign.logoQrUrl + return ( + /// TODO: Refactor to use chakra +
+
+ + {t('instructions')} + + + $ + {vouchersValue} + +
+
+
+ + {qrCodeValue && } + {vouchersState === 'unused' && qrLogo && ( + + )} + {vouchersState === 'redeemed' && ( +
+
+
+ +
+
+
+
+
+
+ {t('redeemed_stamp_label')} +
+
+ {moment(lastRedeemedTimestamp).format('DD MMM YYYY h:mm a')} +
+ {!!merchantName && ( +
+ at {merchantName} +
+ )} +
+
+
+
+
+ )} + + {vouchersState === 'redeemed' && ( + + {transactionId} + + )} + {vouchersState === 'unused' && !!campaign?.validityEnd && ( + + {t('use_by', { + expiryDate: formatDateString(campaign.validityEnd), + })} + + )} +
+ {(!!campaign?.advisoryUrl || !!campaign?.tncUrl) && + vouchersState === 'unused' && ( +
+ +
+ )} +
+ ) +} + +export default React.memo(RedemptionCard) diff --git a/packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/RedemptionPageMain/components/RedemptionCard/RedemptionCardFooter.tsx b/packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/RedemptionPageMain/components/RedemptionCard/RedemptionCardFooter.tsx new file mode 100644 index 0000000..5c63212 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/RedemptionPageMain/components/RedemptionCard/RedemptionCardFooter.tsx @@ -0,0 +1,63 @@ +import {Divider, HStack, Text, Link} from '@chakra-ui/react' +import {DDAction} from 'constants/datadog' +import {customMonitorClick} from 'helpers/monitoring' +import {useTranslation} from 'react-i18next' + +type RedemptionCardFooterProps = { + campaignTncUrl?: string | null + campaignAdvisoryUrl?: string | null +} + +const RedemptionCardFooter = ({ + campaignAdvisoryUrl, + campaignTncUrl, +}: RedemptionCardFooterProps) => { + const {t} = useTranslation('redemption', {keyPrefix: 'footer'}) + + return ( + + } + spacing='20px' + > + {!!campaignTncUrl && ( + + { + customMonitorClick(DDAction.VIEW_TERMS_AND_CONDITIONS_BUTTON) + }} + > + {t('terms_and_conditions')} + + + )} + {!!campaignAdvisoryUrl && ( + + { + customMonitorClick(DDAction.GENERAL_INFO_BUTTON) + }} + > + {t('general_info')} + + + )} + + ) +} + +export default RedemptionCardFooter diff --git a/packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/RedemptionPageMain/components/RedemptionCard/index.ts b/packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/RedemptionPageMain/components/RedemptionCard/index.ts new file mode 100644 index 0000000..29b2d27 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/RedemptionPageMain/components/RedemptionCard/index.ts @@ -0,0 +1 @@ +export {default} from './RedemptionCard' diff --git a/packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/RedemptionPageMain/index.ts b/packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/RedemptionPageMain/index.ts new file mode 100644 index 0000000..e7ae3bd --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/RedemptionPage/components/RedemptionPageMain/index.ts @@ -0,0 +1 @@ +export {default} from './RedemptionPageMain' diff --git a/packages/voucher/src/pages/GroupPage/components/RedemptionPage/index.ts b/packages/voucher/src/pages/GroupPage/components/RedemptionPage/index.ts new file mode 100644 index 0000000..ff6a21c --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/RedemptionPage/index.ts @@ -0,0 +1 @@ +export {default} from './RedemptionPage' diff --git a/packages/voucher/src/pages/GroupPage/components/TransactionHistoryDrawer/TransactionHistoryDrawer.tsx b/packages/voucher/src/pages/GroupPage/components/TransactionHistoryDrawer/TransactionHistoryDrawer.tsx new file mode 100644 index 0000000..73b8ebc --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/TransactionHistoryDrawer/TransactionHistoryDrawer.tsx @@ -0,0 +1,74 @@ +import React from 'react' +import _ from 'lodash' +import {useTranslation} from 'react-i18next' +import {Drawer, DrawerOverlay, DrawerContent, Text} from '@chakra-ui/react' + +// Constants +import {ERROR, LOADING, PENDING, SUCCESS} from 'constants/requests' +import {REFETCH_GROUP_INTERVAL} from 'constants/intervals' + +// Hooks +import useFetchTransactionHistoryWithGroupId from 'hooks/useFetchTransactionHistoryWithGroupId' +import TransactionHistoryDrawerContent from './components/TransactionHistoryDrawerContent' +import TransactionHistoryDrawerEmptyContent from './components/TransactionHistoryDrawerEmptyContent' + +type TransactionHistoryDrawerProps = { + isOpen: boolean + onCloseClick: () => void + groupId: string +} + +function TransactionHistoryDrawer({ + onCloseClick, + isOpen, + groupId, +}: TransactionHistoryDrawerProps) { + const {groupedVoucherEvents, fetchGroupByIdStatus} = + useFetchTransactionHistoryWithGroupId({ + groupId, + refetchInterval: REFETCH_GROUP_INTERVAL, + enabled: isOpen, + }) + + const totalSpent = _.sumBy(groupedVoucherEvents, (event) => { + return event.data.totalVoucherValue + }) + const isEmptyTransactionHistory = groupedVoucherEvents?.length === 0 + + const {t} = useTranslation('transactionHistory') + return ( + + + + {/* TODO: Proper error screen for fetching transaction history. */} + {fetchGroupByIdStatus === ERROR && Placeholder error} + {(fetchGroupByIdStatus === LOADING || + fetchGroupByIdStatus === PENDING) && ( +
+

loading...

+
+
+ )} + {fetchGroupByIdStatus === SUCCESS && + (isEmptyTransactionHistory ? ( + + ) : ( + + ))} + + + ) +} + +export default React.memo(TransactionHistoryDrawer) diff --git a/packages/voucher/src/pages/GroupPage/components/TransactionHistoryDrawer/components/TransactionHistoryDrawerContent.tsx b/packages/voucher/src/pages/GroupPage/components/TransactionHistoryDrawer/components/TransactionHistoryDrawerContent.tsx new file mode 100644 index 0000000..96c428a --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/TransactionHistoryDrawer/components/TransactionHistoryDrawerContent.tsx @@ -0,0 +1,74 @@ +import React from 'react' +import _ from 'lodash' +import {DrawerBody, StackDivider, VStack} from '@chakra-ui/react' + +// General Components +import DrawerHeaderWithCloseButton from '../../DrawerHeaderWithCloseButton' +import TransactionHistorySubHeader from './TransactionHistorySubHeader' +import TransactionHistoryListing from './TransactionHistoryListing' + +// Utility +import moment from 'moment-timezone' +import {GroupedVoucherEvent} from 'types/voucher' +moment.tz.setDefault('Asia/Singapore') +function makeTimestampReadable(timestamp: string): string { + return moment(timestamp).format('Do MMM YYYY, LT') +} + +type TransactionHistoryDrawerContentProps = { + groupedVoucherEvents: GroupedVoucherEvent[] | undefined + headerTitle: string + onCloseClick: () => void + totalSpentText: string + totalSpentAmount: number +} + +const TransactionHistoryDrawerContent = ({ + groupedVoucherEvents, + headerTitle, + onCloseClick, + totalSpentText, + totalSpentAmount, +}: TransactionHistoryDrawerContentProps) => { + return ( + <> + {/* We want this drawer header to be sticky, so we have it ontop of DrawerBody. */} + + {/* DrawerBody comes with auto padding of 24px on top and bottom which we don't want. */} + + + + } + id='content-transaction-history-container' + spacing='0' + > + {_.map(groupedVoucherEvents, (event) => ( + + ))} + + + + + ) +} + +export default React.memo(TransactionHistoryDrawerContent) diff --git a/packages/voucher/src/pages/GroupPage/components/TransactionHistoryDrawer/components/TransactionHistoryDrawerEmptyContent.tsx b/packages/voucher/src/pages/GroupPage/components/TransactionHistoryDrawer/components/TransactionHistoryDrawerEmptyContent.tsx new file mode 100644 index 0000000..5759da9 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/TransactionHistoryDrawer/components/TransactionHistoryDrawerEmptyContent.tsx @@ -0,0 +1,77 @@ +import React from 'react' +import {BiRightArrowAlt} from 'react-icons/bi' +import { + DrawerBody, + Image, + VStack, + Text, + Icon, + HStack, + Button, + Center, +} from '@chakra-ui/react' +import emptyTransactionHistory from 'images/empty-transaction-history.svg' + +// General Components +import DrawerHeaderWithCloseButton from '../../DrawerHeaderWithCloseButton' + +type TransactionHistoryDrawerEmptyContentProps = { + backToHomeText: string + contentText: string + headerTitle: string + onCloseClick: () => void +} + +const TransactionHistoryDrawerEmptyContent = ({ + backToHomeText, + contentText, + headerTitle, + onCloseClick, +}: TransactionHistoryDrawerEmptyContentProps) => { + return ( + <> + + + +
+ + Empty Transaction History + + {contentText} + + +
+ +
+
+ + ) +} + +export default React.memo(TransactionHistoryDrawerEmptyContent) diff --git a/packages/voucher/src/pages/GroupPage/components/TransactionHistoryDrawer/components/TransactionHistoryListing.tsx b/packages/voucher/src/pages/GroupPage/components/TransactionHistoryDrawer/components/TransactionHistoryListing.tsx new file mode 100644 index 0000000..29c2038 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/TransactionHistoryDrawer/components/TransactionHistoryListing.tsx @@ -0,0 +1,46 @@ +import {HStack, Text, VStack} from '@chakra-ui/react' + +type TransactionHistoryListingProps = { + merchantShopName: string + timestamp: string + amountSpent: number + transactionId?: string +} + +const TransactionHistoryListing = ({ + merchantShopName, + timestamp, + amountSpent, + transactionId, +}: TransactionHistoryListingProps) => { + return ( + + + + {merchantShopName} + + + {timestamp} + + + {transactionId} + + + + + $ + + + {amountSpent} + + + + ) +} + +export default TransactionHistoryListing diff --git a/packages/voucher/src/pages/GroupPage/components/TransactionHistoryDrawer/components/TransactionHistorySubHeader.tsx b/packages/voucher/src/pages/GroupPage/components/TransactionHistoryDrawer/components/TransactionHistorySubHeader.tsx new file mode 100644 index 0000000..3be5ff1 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/TransactionHistoryDrawer/components/TransactionHistorySubHeader.tsx @@ -0,0 +1,35 @@ +import {HStack, Text} from '@chakra-ui/react' + +type TransactionHistorySubHeaderProps = { + totalSpentText: string + totalSpentAmount: number +} + +const TransactionHistorySubHeader = ({ + totalSpentText, + totalSpentAmount, +}: TransactionHistorySubHeaderProps) => { + return ( + + + {totalSpentText} + + + + $ + + + {totalSpentAmount} + + + + ) +} + +export default TransactionHistorySubHeader diff --git a/packages/voucher/src/pages/GroupPage/components/TransactionHistoryDrawer/index.ts b/packages/voucher/src/pages/GroupPage/components/TransactionHistoryDrawer/index.ts new file mode 100644 index 0000000..71220f5 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/TransactionHistoryDrawer/index.ts @@ -0,0 +1 @@ +export {default} from './TransactionHistoryDrawer' diff --git a/packages/voucher/src/pages/GroupPage/components/TransactionHistoryDrawerButton/TransactionHistoryDrawerButton.tsx b/packages/voucher/src/pages/GroupPage/components/TransactionHistoryDrawerButton/TransactionHistoryDrawerButton.tsx new file mode 100644 index 0000000..f957205 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/TransactionHistoryDrawerButton/TransactionHistoryDrawerButton.tsx @@ -0,0 +1,39 @@ +import {Button, HStack, Icon, Text} from '@chakra-ui/react' +import {DDAction} from 'constants/datadog' +import {useTranslation} from 'react-i18next' +import {BiHistory} from 'react-icons/bi' + +type TransactionHistoryListingProps = { + onClickHistoryButton: () => void +} + +const TransactionHistoryDrawerButton = ({ + onClickHistoryButton, +}: TransactionHistoryListingProps) => { + const {t} = useTranslation('transactionHistory') + return ( + + ) +} + +export default TransactionHistoryDrawerButton diff --git a/packages/voucher/src/pages/GroupPage/components/TransactionHistoryDrawerButton/index.ts b/packages/voucher/src/pages/GroupPage/components/TransactionHistoryDrawerButton/index.ts new file mode 100644 index 0000000..a5e3faa --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/TransactionHistoryDrawerButton/index.ts @@ -0,0 +1 @@ +export {default} from './TransactionHistoryDrawerButton' diff --git a/packages/voucher/src/pages/GroupPage/components/WhereToUseButton/WhereToUseButton.tsx b/packages/voucher/src/pages/GroupPage/components/WhereToUseButton/WhereToUseButton.tsx new file mode 100644 index 0000000..77a30cc --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/WhereToUseButton/WhereToUseButton.tsx @@ -0,0 +1,45 @@ +import React from 'react' +import {Button, Icon, Link, Text} from '@chakra-ui/react' +import {BiMap} from 'react-icons/bi' +import {useTranslation} from 'react-i18next' + +type WhereToUseButtonProps = { + campaignMerchantListUrl: string + colorScheme: string + datadogActionName: string + id: string +} + +const WhereToUseButton = ({ + campaignMerchantListUrl, + colorScheme, + datadogActionName, + id, +}: WhereToUseButtonProps) => { + const {t} = useTranslation('voucherTypeSelectVouchers') + return ( + + + + ) +} + +export default WhereToUseButton diff --git a/packages/voucher/src/pages/GroupPage/components/WhereToUseButton/index.ts b/packages/voucher/src/pages/GroupPage/components/WhereToUseButton/index.ts new file mode 100644 index 0000000..efedd9a --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/components/WhereToUseButton/index.ts @@ -0,0 +1 @@ +export {default} from './WhereToUseButton' diff --git a/packages/voucher/src/pages/GroupPage/hooks.tsx b/packages/voucher/src/pages/GroupPage/hooks.tsx new file mode 100644 index 0000000..88c7aa7 --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/hooks.tsx @@ -0,0 +1,188 @@ +import {useState, useEffect, useMemo, useCallback} from 'react' +import {Voucher} from 'types/voucher' +import _ from 'lodash' +import moment from 'moment-timezone' +import {SELECTED_VOUCHERS_LIMIT} from 'constants/limits' +import toast, {ToastOptions} from 'react-hot-toast' +import Toast, {ToastProps} from 'components/Toast' +import {useTranslation} from 'react-i18next' +import {logLimitReached} from '../../helpers/monitoring' + +type VoucherOrder = Record | null + +export const useSortedVouchersGroupedByType = ( + voucherGroup: Voucher[], +): Record => { + // Create sorting order for vouchers in group. Identified by their id. + // This is to preserve ordering even after a voucher has been redeemed. + const [voucherOrder, setVoucherOrder] = useState(null) + useEffect(() => { + if (_.size(voucherOrder)) { + return + } + const voucherOrderGroupedByType = _(voucherGroup) + .groupBy((voucher) => voucher.type) + .mapValues((vouchersOfSameType) => { + const usedVouchers = vouchersOfSameType.filter( + (voucher) => voucher.state === 'redeemed', + ) + const voidedVouchers = vouchersOfSameType.filter( + (voucher) => voucher.state === 'voided', + ) + const unusedVouchers = vouchersOfSameType.filter( + (voucher) => voucher.state === 'unused', + ) + + // Unused vouchers sorted by value in reverse order + const unusedVouchersSorted = _.sortBy( + unusedVouchers, + (voucher) => voucher.voucherValue, + ) + + // Voided vouchers sorted by value in reverse order + const voidedVouchersSorted = _.sortBy( + voidedVouchers, + (voucher) => voucher.voucherValue, + ) + + // Used vouchers sorted by last redeemed time + const usedVouchersSorted = _.sortBy(usedVouchers, (voucher) => + moment(voucher.lastRedeemedTimestamp).unix(), + ) + + const vouchersSorted = _.concat( + unusedVouchersSorted, + usedVouchersSorted, + voidedVouchersSorted, + ) + return _.map(vouchersSorted, (voucher) => voucher.id) + }) + .value() + + setVoucherOrder(voucherOrderGroupedByType) + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [!!voucherGroup?.length]) + + const sortedVouchersGroupedByType = useMemo(() => { + // Populate vouchersToRender array with vouchers in previously sorted order + // whenever the vouchers array changes. (e.g voucher has been redeemed) + const sortedVouchers = _.mapValues(voucherOrder, (voucherIds) => + // Create list of vouchers in sorted order based on order defined as voucherOrder + _(voucherIds) + .map((voucherId) => + _.find(voucherGroup, (voucher) => voucher.id === voucherId), + ) + .compact() + .value(), + ) + return sortedVouchers + }, [voucherGroup, voucherOrder]) + + return sortedVouchersGroupedByType +} + +// TODO: Find a way to split this hook further in a way that makes sense +export const useSelectableVouchers = ({vouchers}: {vouchers: Voucher[]}) => { + const [selectedVoucherIds, setSelectedVoucherIds] = useState([]) + const [isLimitReached, setIsLimitReached] = useState(false) + const {t} = useTranslation('toasts') + const selectedVouchers = useMemo( + () => + _.filter(vouchers, (unfilteredVoucher) => + selectedVoucherIds.includes(unfilteredVoucher.id), + ), + [vouchers, selectedVoucherIds], + ) + + // TODO: Consider useToast hook + const renderLimitSelectReached = useCallback( + ({id, visible}: Pick) => ( + { + toast.dismiss(id) + }} + /> + ), + [t], + ) + + const toggleSelectVoucher = useCallback((voucher: Voucher) => { + const voucherId = voucher.id + setSelectedVoucherIds((selectedVoucherIds) => { + if (selectedVoucherIds.includes(voucherId)) { + setIsLimitReached(false) + return selectedVoucherIds.filter( + (selectedVoucherId) => selectedVoucherId !== voucherId, + ) + } else { + if (selectedVoucherIds.length + 1 >= SELECTED_VOUCHERS_LIMIT) { + logLimitReached(SELECTED_VOUCHERS_LIMIT) + toast.custom(renderLimitSelectReached, {duration: 8000}) + setIsLimitReached(true) + } + return [...selectedVoucherIds, voucherId] + } + }) + }, []) + + useEffect(() => { + if (selectedVoucherIds.length < SELECTED_VOUCHERS_LIMIT) { + setIsLimitReached(false) + } + }, [selectedVoucherIds.length]) + + const unselectVouchersById = (voucherIdsToBeUnselected: string[]) => { + setSelectedVoucherIds((currentSelectedVoucherIds) => + _.filter( + currentSelectedVoucherIds, + (selectedVoucherId) => + !voucherIdsToBeUnselected.includes(selectedVoucherId), + ), + ) + } + + return { + toggleSelectVoucher, + unselectVouchersById, + selectedVouchers, + selectedVoucherIds, + isLimitReached, + } +} + +export const useUnselectUsedVouchers = ({ + selectedVouchers, + unselectVouchersById, +}: { + selectedVouchers: Voucher[] + unselectVouchersById: (voucherIds: string[]) => void +}) => { + useEffect(() => { + // Deselect any redeemed vouchers if RedemptionDrawer is not open + const voucherIdsToBeUnselected = _(selectedVouchers) + .filter((selectedVoucher) => selectedVoucher.state !== 'unused') + .map((voucher) => voucher.id) + .value() + + if (_.isEmpty(voucherIdsToBeUnselected)) { + return + } + + unselectVouchersById(voucherIdsToBeUnselected) + }, [selectedVouchers, unselectVouchersById]) +} + +export const useGetIsVoucherSelected = (selectedVouchers: Voucher[]) => { + return useCallback( + (voucher: Voucher) => + selectedVouchers.some( + (selectedVoucher) => voucher.id === selectedVoucher.id, + ), + [selectedVouchers], + ) +} diff --git a/packages/voucher/src/pages/GroupPage/index.ts b/packages/voucher/src/pages/GroupPage/index.ts new file mode 100644 index 0000000..734033c --- /dev/null +++ b/packages/voucher/src/pages/GroupPage/index.ts @@ -0,0 +1 @@ +export {default} from './GroupPage' diff --git a/packages/voucher/src/pages/TryAgainLaterPage/TryAgainLaterPage.tsx b/packages/voucher/src/pages/TryAgainLaterPage/TryAgainLaterPage.tsx new file mode 100644 index 0000000..21b4462 --- /dev/null +++ b/packages/voucher/src/pages/TryAgainLaterPage/TryAgainLaterPage.tsx @@ -0,0 +1,61 @@ +import {Center, VStack, Image, Text} from '@chakra-ui/react' +import {Footer} from 'components/Footer' +import Header from 'components/basic/Header' +import redeemLogo from 'images/redeem-logo.svg' +import voucherRedemptionGraphic from 'images/voucher-redemption-graphic.svg' + +type TryAgainLaterPageProps = { + title: string + message: string +} + +const TryAgainLaterPage = ({ + title, + message, +}: TryAgainLaterPageProps): JSX.Element => { + return ( + <> +
+ +
+ + + + + + {title} + + + {message} + + + + Left column image + +
+